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_HEALTHCHECK_IP_ADDR}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
14 ${POLICY_TEMPLATES} robot/assets/templates/policy
15 ${DROOLS_ENDPOINT} ${GLOBAL_POLICY_SERVER_PROTOCOL}://${GLOBAL_INJECTED_POLICY_IP_ADDR}:${GLOBAL_DROOLS_SERVER_PORT}
16 ${POLICY_API_IP} ${GLOBAL_INJECTED_POLICY_API_IP_ADDR}
17 ${POLICY_PAP_IP} ${GLOBAL_INJECTED_POLICY_PAP_IP_ADDR}
18 ${POLICY_DISTRIBUTION_IP} ${GLOBAL_INJECTED_POLICY_DISTRIBUTION_IP_ADDR}
19 ${POLICY_PDPX_IP} ${GLOBAL_INJECTED_POLICY_PDPX_IP_ADDR}
20 ${POLICY_APEX_PDP_IP} ${GLOBAL_INJECTED_POLICY_APEX_PDP_IP_ADDR}
21 ${POLICY_HEALTHCHECK_USERNAME} ${GLOBAL_POLICY_HEALTHCHECK_USERNAME}
22 ${POLICY_HEALTHCHECK_PASSWORD} ${GLOBAL_POLICY_HEALTHCHECK_PASSWORD}
26 Run Policy Health Check
27 [Documentation] Runs Policy Health check
28 ${auth}= Create List ${GLOBAL_POLICY_USERNAME} ${GLOBAL_POLICY_PASSWORD}
29 Log Creating session ${POLICY_ENDPOINT}
30 ${session}= Create Session policy ${POLICY_HEALTHCHECK_ENDPOINT} auth=${auth}
31 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
32 ${resp}= Get Request policy ${POLICY_HEALTH_CHECK_PATH} headers=${headers}
33 Log Received response from policy ${resp.text}
34 Should Be Equal As Strings ${resp.status_code} 200
35 Should Be True ${resp.json()['healthy']}
36 @{ITEMS}= Copy List ${resp.json()['details']}
37 :FOR ${ELEMENT} IN @{ITEMS}
38 \ Should Be Equal As Strings ${ELEMENT['code']} 200
39 \ Should Be True ${ELEMENT['healthy']}
41 Run Drools Get Request
42 [Documentation] Runs Drools Get Request
43 [Arguments] ${data_path}
44 ${auth}= Create List ${GLOBAL_DROOLS_USERNAME} ${GLOBAL_DROOLS_PASSWORD}
45 Log Creating session ${POLICY_ENDPOINT}
46 ${session}= Create Session policy ${DROOLS_ENDPOINT} auth=${auth}
47 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
48 ${resp}= Get Request policy ${data_path} headers=${headers}
49 Log Received response from policy ${resp.text}
50 Should Be Equal As Strings ${resp.status_code} 200
53 Run Policy Put Request
54 [Documentation] Runs Policy Put 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} Environment=TEST
59 ${resp}= Put Request policy ${data_path} data=${data} headers=${headers}
60 Log Received response from policy ${resp.text}
63 Run Policy Get Request
64 [Documentation] Runs Policy Get request
65 [Arguments] ${data_path}
66 Log Creating session ${POLICY_ENDPOINT}
67 ${session}= Create Session policy ${POLICY_ENDPOINT}
68 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} Environment=TEST
69 ${resp}= Get Request policy ${data_path} headers=${headers}
70 Log Received response from policy ${resp.text}
72 Run Policy Pap Get Request
73 [Documentation] Runs Policy Pap Get request
74 [Arguments] ${data_path}
75 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
76 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
77 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth} disable_warnings=1
78 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
79 ${resp}= Get Request policy ${data_path} headers=${headers}
80 Log Received response from Policy Pap ${resp.text}
84 Run Policy Post Request
85 [Documentation] Runs Policy Post request
86 [Arguments] ${data_path} ${data}
87 Log Creating session ${POLICY_ENDPOINT}
88 ${session}= Create Session policy ${POLICY_ENDPOINT}
89 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} Environment=TEST
90 ${resp}= Post Request policy ${data_path} data=${data} headers=${headers}
91 Log Received response from policy ${resp.text}
94 Run Policy Api Post Request
95 [Documentation] Runs Policy Api Post request
96 [Arguments] ${data_path} ${data}
97 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
98 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_API_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth} disable_warnings=1
99 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_API_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
100 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
101 ${resp}= Post Request policy ${data_path} data=${data} headers=${headers}
102 Log Received response from policy ${resp.text}
106 Run Policy Pap Post Request
107 [Documentation] Runs Policy Pap Post request
108 [Arguments] ${data_path} ${data}
109 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
110 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth} disable_warnings=1
111 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
112 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
113 ${resp}= Post Request policy ${data_path} data=${data} headers=${headers}
114 Log Received response from policy ${resp.text}
118 Run Policy Delete Request
119 [Documentation] Runs Policy Delete request
120 [Arguments] ${data_path} ${data}
121 Log Creating session ${POLICY_ENDPOINT}
122 ${session}= Create Session policy ${POLICY_ENDPOINT}
123 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} Environment=TEST
124 ${resp}= Delete Request policy ${data_path} data=${data} headers=${headers}
125 Log Received response from policy ${resp.text}
128 Run Policy Get Configs Request
129 [Documentation] Runs Policy Get Configs request
130 [Arguments] ${data_path} ${data}
131 Log Creating session ${POLICY_ENDPOINT}
132 ${session}= Create Session policy ${POLICY_ENDPOINT}
133 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH}
134 ${resp}= Post Request policy ${data_path} data=${data} headers=${headers}
135 Log Received response from policy ${resp.text}
140 Update vVFWCL Policy Old
141 [Arguments] ${resource_id}
142 Run Keyword and Ignore Error Delete vFWCL Policy
144 Log To Console Create vFWCL Policy
145 Create vFWCL Policy ${resource_id}
147 Log To Console Push vFWCL Policy
150 Log To Console Reboot Drools
153 Log To Console Validate vFWCL Policy
154 Validate the vFWCL Policy Old
157 [Arguments] ${resource_id}
158 Log To Console Create vFWCL Monitoring Policy
159 Create vFirewall Monitoring Policy
161 Log To Console Create vFWCL Operational Policy
162 Create vFirewall Operational Policy ${resource_id}
164 Log To Console Push vFWCL To PDP Group
165 Push vFirewall Policies To PDP Group
167 Log To Console Validate vFWCL Policy
168 Validate the vFWCL Policy
172 ${data}= OperatingSystem.Get File ${POLICY_TEMPLATES}/FirewallPolicy_delete.template
173 ${resp}= Run Policy Delete Request /pdp/api/deletePolicy ${data}
174 Should Be Equal As Strings ${resp.status_code} 200
177 [Arguments] ${resource_id}
178 ${dict}= Create Dictionary RESOURCE_ID=${resource_id}
179 ${data}= Fill JSON Template File ${POLICY_TEMPLATES}/FirewallPolicy_update.template ${dict}
180 ${resp}= Run Policy Put Request /pdp/api/updatePolicy ${data}
181 Should Be Equal As Strings ${resp.status_code} 200
184 ${dict}= Create Dictionary
185 ${data}= Fill JSON Template File ${POLICY_TEMPLATES}/FirewallPolicy_push.template ${dict}
186 ${resp}= Run Policy Put Request /pdp/api/pushPolicy ${data}
187 Should Be Equal As Strings ${resp.status_code} 200
190 ${stop}= Catenate docker exec -t -u policy drools bash -c "source /opt/app/policy/etc/profile.d/env.sh; policy stop"
191 ${start}= Catenate docker exec -t -u policy drools bash -c "source /opt/app/policy/etc/profile.d/env.sh; policy start"
192 Wait Until Keyword Succeeds 120 5 sec Open Connection And Log In ${GLOBAL_INJECTED_POLICY_IP_ADDR} root ${GLOBAL_VM_PRIVATE_KEY}
194 ${status} ${stdout}= Run Keyword And Ignore Error SSHLibrary.Read Until Regexp has stopped
195 Log ${status}: stdout=${stdout}
196 ${ctrlc}= Evaluate '\x03'
197 Run Keyword If '${status}' == 'FAIL' Write ${ctrlc}
200 ${stdout}= SSHLibrary.Read Until Regexp is running
202 Should Contain ${stdout} is running
204 Validate the vFWCL Policy Old
205 ${resp}= Run Drools Get Request /policy/pdp/engine/controllers/amsterdam/drools
206 Should Be Equal As Strings ${resp.status_code} 200
207 ${resp}= Run Drools Get Request /policy/pdp/engine/controllers/amsterdam/drools/facts/closedloop-amsterdam/org.onap.policy.controlloop.Params
208 Should Be Equal As Strings ${resp.status_code} 200
210 Validate the vFWCL Policy
211 ${resp}= Run Policy Pap Get Request /policy/pap/v1/pdps
212 Log Received response from policy ${resp.text}
213 Should Be Equal As Strings ${resp.status_code} 200
215 Create vFirewall Monitoring Policy
216 ${dict}= Create Dictionary
217 ${data}= Fill JSON Template File ${POLICY_TEMPLATES}/vFirewall_policy_monitoring_input_tosca.template ${dict}
218 ${resp}= Run Policy Api Post Request /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies ${data}
219 Should Be Equal As Strings ${resp.status_code} 200
222 Create vFirewall Operational Policy
223 [Arguments] ${resource_id}
224 ${dict}= Create Dictionary RESOURCE_ID=${resource_id}
225 ${data}= Fill JSON Template File ${POLICY_TEMPLATES}/vFirewall_policy_operational_input.template ${dict}
226 ${resp}= Run Policy Api Post Request /policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies ${data}
227 Should Be Equal As Strings ${resp.status_code} 200
230 Push vFirewall Policies To PDP Group
231 ${dict}= Create Dictionary
232 ${data}= Fill JSON Template File ${POLICY_TEMPLATES}/vFirewall_push.template ${dict}
233 #${resp}= Run Policy Post Request /policy/pap/v1/pdps/policies ${data}
234 ${resp}= Run Policy Pap Post Request /policy/pap/v1/pdps/policies ${data}
235 #Should Be Equal As Strings ${resp.status_code} 200
237 Run Policy API Healthcheck
238 [Documentation] Runs Policy Api Health check
239 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
240 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_API_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
241 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_API_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth} disable_warnings=1
242 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
243 ${resp}= Get Request policy /policy/api/v1/healthcheck headers=${headers}
244 Log Received response from policy ${resp.text}
245 Should Be Equal As Strings ${resp.status_code} 200
246 Should Be Equal As Strings ${resp.json()['code']} 200
248 Run Policy PAP Healthcheck
249 [Documentation] Runs Policy PAP Health check
250 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
251 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
252 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth} disable_warnings=1
253 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
254 ${resp}= Get Request policy /policy/pap/v1/healthcheck headers=${headers}
255 Log Received response from policy ${resp.text}
256 Should Be Equal As Strings ${resp.status_code} 200
257 Should Be Equal As Strings ${resp.json()['code']} 200
259 Run Policy Distribution Healthcheck
260 [Documentation] Runs Policy Distribution Health check
261 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
262 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_DISTRIBUTION_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
263 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_DISTRIBUTION_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth} disable_warnings=1
264 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
265 ${resp}= Get Request policy /healthcheck headers=${headers}
266 Log Received response from policy ${resp.text}
267 Should Be Equal As Strings ${resp.status_code} 200
268 Should Be Equal As Strings ${resp.json()['code']} 200
270 Run Policy XACML PDP Healthcheck
271 [Documentation] Runs Policy Xacml PDP Health check
272 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
273 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PDPX_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
274 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PDPX_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth}
275 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
276 ${resp}= Get Request policy /policy/pdpx/v1/healthcheck headers=${headers}
277 Log Received response from policy ${resp.text}
278 Should Be Equal As Strings ${resp.status_code} 200
279 Should Be Equal As Strings ${resp.json()['code']} 200
281 Run Policy APEX PDP Healthcheck
282 [Documentation] Runs Policy Apex PDP Health check
283 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
284 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_APEX_PDP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
285 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_APEX_PDP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth} disable_warnings=1
286 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
287 ${resp}= Get Request policy /policy/apex-pdp/v1/healthcheck headers=${headers}
288 Log Received response from policy ${resp.text}
289 Should Be Equal As Strings ${resp.status_code} 200
290 Should Be Equal As Strings ${resp.json()['code']} 200