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
10 Library OperatingSystem
11 Resource json_templater.robot
12 Resource global_properties.robot
13 Resource ssh/files.robot
16 ${POLICY_HEALTH_CHECK_PATH} /healthcheck
17 ${POLICY_ENDPOINT} ${GLOBAL_POLICY_SERVER_PROTOCOL}://${GLOBAL_INJECTED_POLICY_IP_ADDR}:${GLOBAL_POLICY_SERVER_PORT}
18 ${POLICY_HEALTHCHECK_ENDPOINT} ${GLOBAL_POLICY_SERVER_PROTOCOL}://${GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
19 ${POLICY_TEMPLATES} robot/assets/templates/policy
20 ${DROOLS_ENDPOINT} ${GLOBAL_POLICY_SERVER_PROTOCOL}://${GLOBAL_INJECTED_POLICY_IP_ADDR}:${GLOBAL_DROOLS_SERVER_PORT}
21 ${POLICY_API_IP} ${GLOBAL_INJECTED_POLICY_API_IP_ADDR}
22 ${POLICY_PAP_IP} ${GLOBAL_INJECTED_POLICY_PAP_IP_ADDR}
23 ${POLICY_DISTRIBUTION_IP} ${GLOBAL_INJECTED_POLICY_DISTRIBUTION_IP_ADDR}
24 ${POLICY_PDPX_IP} ${GLOBAL_INJECTED_POLICY_PDPX_IP_ADDR}
25 ${POLICY_APEX_PDP_IP} ${GLOBAL_INJECTED_POLICY_APEX_PDP_IP_ADDR}
26 ${POLICY_HEALTHCHECK_USERNAME} ${GLOBAL_POLICY_HEALTHCHECK_USERNAME}
27 ${POLICY_HEALTHCHECK_PASSWORD} ${GLOBAL_POLICY_HEALTHCHECK_PASSWORD}
31 Run Policy Health Check
32 [Documentation] Runs Policy Health check
33 ${auth}= Create List ${GLOBAL_POLICY_USERNAME} ${GLOBAL_POLICY_PASSWORD}
34 Log Creating session ${POLICY_ENDPOINT}
35 ${session}= Create Session policy ${POLICY_HEALTHCHECK_ENDPOINT} auth=${auth}
36 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
37 ${resp}= Get Request policy ${POLICY_HEALTH_CHECK_PATH} headers=${headers}
38 Log Received response from policy ${resp.text}
39 Should Be Equal As Strings ${resp.status_code} 200
40 Should Be True ${resp.json()['healthy']}
41 @{ITEMS}= Copy List ${resp.json()['details']}
42 :FOR ${ELEMENT} IN @{ITEMS}
43 \ Should Be Equal As Strings ${ELEMENT['code']} 200
44 \ Should Be True ${ELEMENT['healthy']}
46 Run Drools Get Request
47 [Documentation] Runs Drools Get Request
48 [Arguments] ${data_path}
49 ${auth}= Create List ${GLOBAL_DROOLS_USERNAME} ${GLOBAL_DROOLS_PASSWORD}
50 Log Creating session ${POLICY_ENDPOINT}
51 ${session}= Create Session policy ${DROOLS_ENDPOINT} auth=${auth}
52 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
53 ${resp}= Get Request policy ${data_path} headers=${headers}
54 Log Received response from policy ${resp.text}
55 Should Be Equal As Strings ${resp.status_code} 200
58 Run Policy Put Request
59 [Documentation] Runs Policy Put request
60 [Arguments] ${data_path} ${data}
61 Log Creating session ${POLICY_ENDPOINT}
62 ${session}= Create Session policy ${POLICY_ENDPOINT}
63 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} Environment=TEST
64 ${resp}= Put Request policy ${data_path} data=${data} headers=${headers}
65 Log Received response from policy ${resp.text}
68 Run Policy Get Request
69 [Documentation] Runs Policy Get request
70 [Arguments] ${data_path}
71 Log Creating session ${POLICY_ENDPOINT}
72 ${session}= Create Session policy ${POLICY_ENDPOINT}
73 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} Environment=TEST
74 ${resp}= Get Request policy ${data_path} headers=${headers}
75 Log Received response from policy ${resp.text}
77 Run Policy Pap Get Request
78 [Documentation] Runs Policy Pap Get request
79 [Arguments] ${data_path}
80 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
81 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
82 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth} disable_warnings=1
83 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
84 ${resp}= Get Request policy ${data_path} headers=${headers}
85 Log Received response from Policy Pap ${resp.text}
89 Run Policy Post Request
90 [Documentation] Runs Policy Post request
91 [Arguments] ${data_path} ${data}
92 Log Creating session ${POLICY_ENDPOINT}
93 ${session}= Create Session policy ${POLICY_ENDPOINT}
94 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} Environment=TEST
95 ${resp}= Post Request policy ${data_path} data=${data} headers=${headers}
96 Log Received response from policy ${resp.text}
99 Run Policy Api Post Request
100 [Documentation] Runs Policy Api Post request
101 [Arguments] ${data_path} ${data}
102 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
103 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_API_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth} disable_warnings=1
104 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_API_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
105 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
106 ${resp}= Post Request policy ${data_path} data=${data} headers=${headers}
107 Log Received response from policy ${resp.text}
111 Run Policy Pap Post Request
112 [Documentation] Runs Policy Pap Post request
113 [Arguments] ${data_path} ${data}
114 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
115 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth} disable_warnings=1
116 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
117 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
118 ${resp}= Post Request policy ${data_path} data=${data} headers=${headers}
119 Log Received response from policy ${resp.text}
123 Run Policy Delete Request
124 [Documentation] Runs Policy Delete request
125 [Arguments] ${data_path} ${data}
126 Log Creating session ${POLICY_ENDPOINT}
127 ${session}= Create Session policy ${POLICY_ENDPOINT}
128 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} Environment=TEST
129 ${resp}= Delete Request policy ${data_path} data=${data} headers=${headers}
130 Log Received response from policy ${resp.text}
133 Run Policy Get Configs Request
134 [Documentation] Runs Policy Get Configs request
135 [Arguments] ${data_path} ${data}
136 Log Creating session ${POLICY_ENDPOINT}
137 ${session}= Create Session policy ${POLICY_ENDPOINT}
138 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH}
139 ${resp}= Post Request policy ${data_path} data=${data} headers=${headers}
140 Log Received response from policy ${resp.text}
145 Update vVFWCL Policy Old
146 [Arguments] ${resource_id}
147 Run Keyword and Ignore Error Delete vFWCL Policy
149 Log To Console Create vFWCL Policy
150 Create vFWCL Policy ${resource_id}
152 Log To Console Push vFWCL Policy
155 Log To Console Reboot Drools
158 Log To Console Validate vFWCL Policy
159 Validate the vFWCL Policy Old
162 [Arguments] ${resource_id}
163 Log To Console Create vFWCL Monitoring Policy
164 Create vFirewall Monitoring Policy
166 Log To Console Create vFWCL Operational Policy
167 Create vFirewall Operational Policy ${resource_id}
169 Log To Console Push vFWCL To PDP Group
170 Push vFirewall Policies To PDP Group
172 Log To Console Validate vFWCL Policy
173 Validate the vFWCL Policy
177 ${data}= OperatingSystem.Get File ${POLICY_TEMPLATES}/FirewallPolicy_delete.template
178 ${resp}= Run Policy Delete Request /pdp/api/deletePolicy ${data}
179 Should Be Equal As Strings ${resp.status_code} 200
182 [Arguments] ${resource_id}
183 ${dict}= Create Dictionary RESOURCE_ID=${resource_id}
184 ${data}= Fill JSON Template File ${POLICY_TEMPLATES}/FirewallPolicy_update.template ${dict}
185 ${resp}= Run Policy Put Request /pdp/api/updatePolicy ${data}
186 Should Be Equal As Strings ${resp.status_code} 200
189 ${dict}= Create Dictionary
190 ${data}= Fill JSON Template File ${POLICY_TEMPLATES}/FirewallPolicy_push.template ${dict}
191 ${resp}= Run Policy Put Request /pdp/api/pushPolicy ${data}
192 Should Be Equal As Strings ${resp.status_code} 200
195 ${stop}= Catenate docker exec -t -u policy drools bash -c "source /opt/app/policy/etc/profile.d/env.sh; policy stop"
196 ${start}= Catenate docker exec -t -u policy drools bash -c "source /opt/app/policy/etc/profile.d/env.sh; policy start"
197 Wait Until Keyword Succeeds 120 5 sec Open Connection And Log In ${GLOBAL_INJECTED_POLICY_IP_ADDR} root ${GLOBAL_VM_PRIVATE_KEY}
199 ${status} ${stdout}= Run Keyword And Ignore Error SSHLibrary.Read Until Regexp has stopped
200 Log ${status}: stdout=${stdout}
201 ${ctrlc}= Evaluate '\x03'
202 Run Keyword If '${status}' == 'FAIL' Write ${ctrlc}
205 ${stdout}= SSHLibrary.Read Until Regexp is running
207 Should Contain ${stdout} is running
209 Validate the vFWCL Policy Old
210 ${resp}= Run Drools Get Request /policy/pdp/engine/controllers/amsterdam/drools
211 Should Be Equal As Strings ${resp.status_code} 200
212 ${resp}= Run Drools Get Request /policy/pdp/engine/controllers/amsterdam/drools/facts/closedloop-amsterdam/org.onap.policy.controlloop.Params
213 Should Be Equal As Strings ${resp.status_code} 200
215 Validate the vFWCL Policy
216 ${resp}= Run Policy Pap Get Request /policy/pap/v1/pdps
217 Log Received response from policy ${resp.text}
218 Should Be Equal As Strings ${resp.status_code} 200
220 Create vFirewall Monitoring Policy
221 ${dict}= Create Dictionary
222 ${data}= Fill JSON Template File ${POLICY_TEMPLATES}/vFirewall_policy_monitoring_input_tosca.template ${dict}
223 ${resp}= Run Policy Api Post Request /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies ${data}
224 Should Be Equal As Strings ${resp.status_code} 200
227 Create vFirewall Operational Policy
228 [Arguments] ${resource_id}
229 ${dict}= Create Dictionary RESOURCE_ID=${resource_id}
230 ${data}= Fill JSON Template File ${POLICY_TEMPLATES}/vFirewall_policy_operational_input.template ${dict}
231 ${resp}= Run Policy Api Post Request /policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies ${data}
232 Should Be Equal As Strings ${resp.status_code} 200
235 Push vFirewall Policies To PDP Group
236 ${dict}= Create Dictionary
237 ${data}= Fill JSON Template File ${POLICY_TEMPLATES}/vFirewall_push.template ${dict}
238 #${resp}= Run Policy Post Request /policy/pap/v1/pdps/policies ${data}
239 ${resp}= Run Policy Pap Post Request /policy/pap/v1/pdps/policies ${data}
240 #Should Be Equal As Strings ${resp.status_code} 200
242 Run Policy API Healthcheck
243 [Documentation] Runs Policy Api Health check
244 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
245 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_API_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
246 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_API_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth} disable_warnings=1
247 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
248 ${resp}= Get Request policy /policy/api/v1/healthcheck headers=${headers}
249 Log Received response from policy ${resp.text}
250 Should Be Equal As Strings ${resp.status_code} 200
251 Should Be Equal As Strings ${resp.json()['code']} 200
253 Run Policy PAP Healthcheck
254 [Documentation] Runs Policy PAP Health check
255 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
256 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
257 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth} disable_warnings=1
258 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
259 ${resp}= Get Request policy /policy/pap/v1/healthcheck headers=${headers}
260 Log Received response from policy ${resp.text}
261 Should Be Equal As Strings ${resp.status_code} 200
262 Should Be Equal As Strings ${resp.json()['code']} 200
264 Run Policy Distribution Healthcheck
265 [Documentation] Runs Policy Distribution Health check
266 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
267 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_DISTRIBUTION_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
268 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_DISTRIBUTION_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth} disable_warnings=1
269 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
270 ${resp}= Get Request policy /healthcheck headers=${headers}
271 Log Received response from policy ${resp.text}
272 Should Be Equal As Strings ${resp.status_code} 200
273 Should Be Equal As Strings ${resp.json()['code']} 200
275 Run Policy XACML PDP Healthcheck
276 [Documentation] Runs Policy Xacml PDP Health check
277 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
278 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PDPX_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
279 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PDPX_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth}
280 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
281 ${resp}= Get Request policy /policy/pdpx/v1/healthcheck headers=${headers}
282 Log Received response from policy ${resp.text}
283 Should Be Equal As Strings ${resp.status_code} 200
284 Should Be Equal As Strings ${resp.json()['code']} 200
286 Run Policy APEX PDP Healthcheck
287 [Documentation] Runs Policy Apex PDP Health check
288 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
289 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_APEX_PDP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
290 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_APEX_PDP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth} disable_warnings=1
291 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
292 ${resp}= Get Request policy /policy/apex-pdp/v1/healthcheck headers=${headers}
293 Log Received response from policy ${resp.text}
294 Should Be Equal As Strings ${resp.status_code} 200
295 Should Be Equal As Strings ${resp.json()['code']} 200