2 Documentation The main interface for interacting with Policy. It handles low level stuff like managing the http request library and Policy required fields
3 Library RequestsClientCert
4 Library RequestsLibrary
8 Resource global_properties.robot
11 ${POLICY_HEALTH_CHECK_PATH} /healthcheck
12 ${POLICY_ENDPOINT} ${GLOBAL_POLICY_SERVER_PROTOCOL}://${GLOBAL_INJECTED_POLICY_IP_ADDR}:${GLOBAL_POLICY_SERVER_PORT}
13 ${POLICY_HEALTHCHECK_ENDPOINT} ${GLOBAL_POLICY_SERVER_PROTOCOL}://${GLOBAL_INJECTED_POLICY_IP_ADDR}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
14 ${POLICY_TEMPLATES} robot/assets/templates/policy
18 Run Policy Health Check
19 [Documentation] Runs Policy Health check
20 ${auth}= Create List ${GLOBAL_POLICY_USERNAME} ${GLOBAL_POLICY_PASSWORD}
21 Log Creating session ${POLICY_ENDPOINT}
22 ${session}= Create Session policy ${POLICY_HEALTHCHECK_ENDPOINT} auth=${auth}
23 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
24 ${resp}= Get Request policy ${POLICY_HEALTH_CHECK_PATH} headers=${headers}
25 Log Received response from policy ${resp.text}
26 Should Be Equal As Strings ${resp.status_code} 200
27 Should Be True ${resp.json()['healthy']}
28 @{ITEMS}= Copy List ${resp.json()['details']}
29 :FOR ${ELEMENT} IN @{ITEMS}
30 \ Should Be Equal As Strings ${ELEMENT['code']} 200
31 \ Should Be True ${ELEMENT['healthy']}
33 Run Policy Put Request
34 [Documentation] Runs Policy Put request
35 [Arguments] ${data_path} ${data}
36 Log Creating session ${POLICY_ENDPOINT}
37 ${session}= Create Session policy ${POLICY_ENDPOINT}
38 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} Environment=TEST
39 ${resp}= Put Request policy ${data_path} data=${data} headers=${headers}
40 Log Received response from policy ${resp.text}
43 Run Policy Delete Request
44 [Documentation] Runs Policy Delete request
45 [Arguments] ${data_path} ${data}
46 Log Creating session ${POLICY_ENDPOINT}
47 ${session}= Create Session policy ${POLICY_ENDPOINT}
48 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} Environment=TEST
49 ${resp}= Delete Request policy ${data_path} data=${data} headers=${headers}
50 Log Received response from policy ${resp.text}
53 Run Policy Get Configs Request
54 [Documentation] Runs Policy Get Configs request
55 [Arguments] ${data_path} ${data}
56 Log Creating session ${POLICY_ENDPOINT}
57 ${session}= Create Session policy ${POLICY_ENDPOINT}
58 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH}
59 ${resp}= Post Request policy ${data_path} data=${data} headers=${headers}
60 Log Received response from policy ${resp.text}
66 [Arguments] ${resource_id}
67 Run Keyword and Ignore Error Delete vFWCL Policy
69 Create vFWCL Policy ${resource_id}
75 Validate the vFWCL Policy
78 ${data}= OperatingSystem.Get File ${POLICY_TEMPLATES}/FirewallPolicy_delete.template
79 ${resp}= Run Policy Delete Request /pdp/api/deletePolicy ${data}
80 Should Be Equal As Strings ${resp.status_code} 200
83 [Arguments] ${resource_id}
84 ${dict}= Create Dictionary RESOURCE_ID=${resource_id}
85 ${data}= Fill JSON Template File ${POLICY_TEMPLATES}/FirewallPolicy_update.template ${dict}
86 ${resp}= Run Policy Put Request /pdp/api/updatePolicy ${data}
87 Should Be Equal As Strings ${resp.status_code} 200
90 ${dict}= Create Dictionary
91 ${data}= Fill JSON Template File ${POLICY_TEMPLATES}/FirewallPolicy_push.template ${dict}
92 ${resp}= Run Policy Put Request /pdp/api/pushPolicy ${data}
93 Should Be Equal As Strings ${resp.status_code} 200
96 ${stop}= Catenate docker exec -t -u policy drools bash -c "source /opt/app/policy/etc/profile.d/env.sh; policy stop"
97 ${start}= Catenate docker exec -t -u policy drools bash -c "source /opt/app/policy/etc/profile.d/env.sh; policy start"
98 Wait Until Keyword Succeeds 120 5 sec Open Connection And Log In ${GLOBAL_INJECTED_POLICY_IP_ADDR} root ${GLOBAL_VM_PRIVATE_KEY}
100 ${status} ${stdout}= Run Keyword And Ignore Error SSHLibrary.Read Until Regexp has stopped
101 Log ${status}: stdout=${stdout}
102 ${ctrlc}= Evaluate '\x03'
103 Run Keyword If '${status}' == 'FAIL' Write ${ctrlc}
106 ${stdout}= SSHLibrary.Read Until Regexp is running
108 Should Contain ${stdout} is running
110 Validate the vFWCL Policy
111 ${resp}= Run Drools Get Request /policy/pdp/engine/controllers/amsterdam/drools
112 Should Be Equal As Strings ${resp.status_code} 200
113 ${resp}= Run Drools Get Request /policy/pdp/engine/controllers/amsterdam/drools/facts/closedloop-amsterdam/org.onap.policy.controlloop.Params
114 Should Be Equal As Strings ${resp.status_code} 200