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 RequestsLibrary
7 Library OperatingSystem
8 Library ONAPLibrary.Templating WITH NAME Templating
9 Resource global_properties.robot
10 Resource ssh/files.robot
13 ${POLICY_HEALTH_CHECK_PATH} /healthcheck
14 ${POLICY_NEW_HEALTHCHECK_PATH} /policy/pap/v1/components/healthcheck
15 ${POLICY_ENDPOINT} ${GLOBAL_POLICY_SERVER_PROTOCOL}://${GLOBAL_INJECTED_POLICY_IP_ADDR}:${GLOBAL_POLICY_SERVER_PORT}
16 ${POLICY_HEALTHCHECK_ENDPOINT} ${GLOBAL_POLICY_SERVER_PROTOCOL}://${GLOBAL_INJECTED_POLICY_DROOLS_IP_ADDR}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
17 ${POLICY_NEW_HEALTHCHECK_ENDPOINT} ${GLOBAL_POLICY_SERVER_PROTOCOL}://${GLOBAL_INJECTED_POLICY_PAP_IP_ADDR}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
18 ${POLICY_TEMPLATES} policy
19 ${DROOLS_ENDPOINT} ${GLOBAL_POLICY_SERVER_PROTOCOL}://${GLOBAL_INJECTED_POLICY_DROOLS_IP_ADDR}:${GLOBAL_DROOLS_SERVER_PORT}
20 ${POLICY_API_IP} ${GLOBAL_INJECTED_POLICY_API_IP_ADDR}
21 ${POLICY_PAP_IP} ${GLOBAL_INJECTED_POLICY_PAP_IP_ADDR}
22 ${POLICY_DISTRIBUTION_IP} ${GLOBAL_INJECTED_POLICY_DISTRIBUTION_IP_ADDR}
23 ${POLICY_PDPX_IP} ${GLOBAL_INJECTED_POLICY_PDPX_IP_ADDR}
24 ${POLICY_APEX_PDP_IP} ${GLOBAL_INJECTED_POLICY_APEX_PDP_IP_ADDR}
25 ${POLICY_HEALTHCHECK_USERNAME} ${GLOBAL_POLICY_HEALTHCHECK_USERNAME}
26 ${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 Policy New Healthcheck
47 [Documentation] Runs New Policy Health check
48 ${auth}= Create List ${GLOBAL_POLICY_HEALTHCHECK_USERNAME} ${GLOBAL_POLICY_HEALTHCHECK_PASSWORD}
49 Log Creating session ${POLICY_NEW_HEALTHCHECK_ENDPOINT}
50 ${session}= Create Session policy ${POLICY_NEW_HEALTHCHECK_ENDPOINT} auth=${auth}
51 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
52 ${resp}= Get Request policy ${POLICY_NEW_HEALTHCHECK_PATH} headers=${headers}
53 Log Received response from policy ${resp.text}
54 Should Be Equal As Strings ${resp.status_code} 200
55 Should Be True ${resp.json()['healthy']}
57 Run Drools Get Request
58 [Documentation] Runs Drools Get Request
59 [Arguments] ${data_path}
60 Log Creating session ${DROOLS_ENDPOINT}
61 ${session}= Create Session policy ${DROOLS_ENDPOINT} auth=${GLOBAL_DROOLS_AUTHENTICATION}
62 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
63 ${resp}= Get Request policy ${data_path} headers=${headers}
64 Log Received response from policy ${resp.text}
65 Should Be Equal As Strings ${resp.status_code} 200
68 Run Policy Put Request
69 [Documentation] Runs Policy Put request
70 [Arguments] ${data_path} ${data}
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}= Put Request policy ${data_path} data=${data} headers=${headers}
75 Log Received response from policy ${resp.text}
78 Run Policy Get Request
79 [Documentation] Runs Policy Get request
80 [Arguments] ${data_path}
81 Log Creating session ${POLICY_ENDPOINT}
82 ${session}= Create Session policy ${POLICY_ENDPOINT}
83 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} Environment=TEST
84 ${resp}= Get Request policy ${data_path} headers=${headers}
85 Log Received response from policy ${resp.text}
87 Run Policy Pap Get Request
88 [Documentation] Runs Policy Pap Get request
89 [Arguments] ${data_path}
90 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
91 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
92 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth}
93 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
94 ${resp}= Get Request policy ${data_path} headers=${headers}
95 Log Received response from Policy Pap ${resp.text}
99 Run Policy Post Request
100 [Documentation] Runs Policy Post request
101 [Arguments] ${data_path} ${data}
102 Log Creating session ${POLICY_ENDPOINT}
103 ${session}= Create Session policy ${POLICY_ENDPOINT}
104 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} Environment=TEST
105 ${resp}= Post Request policy ${data_path} data=${data} headers=${headers}
106 Log Received response from policy ${resp.text}
109 Run Policy Api Post Request
110 [Documentation] Runs Policy Api Post request
111 [Arguments] ${data_path} ${data}
112 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
113 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_API_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth}
114 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_API_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
115 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
116 ${resp}= Post Request policy ${data_path} data=${data} headers=${headers}
117 Log Received response from policy ${resp.text}
121 Run Policy Pap Post Request
122 [Documentation] Runs Policy Pap Post request
123 [Arguments] ${data_path} ${data}
124 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
125 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth}
126 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
127 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
128 ${resp}= Post Request policy ${data_path} data=${data} headers=${headers}
129 Log Received response from policy ${resp.text}
133 [Documentation] Runs Policy PAP Undeploy a Policy from PDP Groups
134 [Arguments] ${policy_name}
135 ${auth}= Create List ${POLICY_HEALTHCHECK_USERNAME} ${POLICY_HEALTHCHECK_PASSWORD}
136 ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT} auth=${auth}
137 Log Creating session ${GLOBAL_POLICY_SERVER_PROTOCOL}://${POLICY_PAP_IP}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
138 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
139 ${resp}= Delete Request policy /policy/pap/v1/pdps/policies/${policy_name} headers=${headers}
140 Log Received response from policy ${resp.text}
141 Should Be Equal As Strings ${resp.status_code} 200
144 Run Policy Delete Request
145 [Documentation] Runs Policy Delete request
146 [Arguments] ${data_path} ${data}
147 Log Creating session ${POLICY_ENDPOINT}
148 ${session}= Create Session policy ${POLICY_ENDPOINT}
149 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} Environment=TEST
150 ${resp}= Delete Request policy ${data_path} data=${data} headers=${headers}
151 Log Received response from policy ${resp.text}
154 Run Policy Get Configs Request
155 [Documentation] Runs Policy Get Configs request
156 [Arguments] ${data_path} ${data}
157 Log Creating session ${POLICY_ENDPOINT}
158 ${session}= Create Session policy ${POLICY_ENDPOINT}
159 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH}
160 ${resp}= Post Request policy ${data_path} data=${data} headers=${headers}
161 Log Received response from policy ${resp.text}
165 [Arguments] ${resource_id}
166 Log Create vFWCL Monitoring Policy
167 Create vFirewall Monitoring Policy
169 Log Create vFWCL Operational Policy
170 ${op_policy_version}= Create vFirewall Operational Policy ${resource_id}
172 Log Push vFWCL To PDP Group
173 Push vFirewall Policies To PDP Group ${op_policy_version}
175 Log Validate vFWCL Policy
176 Validate the vFWCL Policy
180 Templating.Create Environment policy ${GLOBAL_TEMPLATE_FOLDER}
181 ${dict}= Create Dictionary policyName=com.BRMSParamvFirewall
182 ${data}= Templating.Apply Template policy ${POLICY_TEMPLATES}/FirewallPolicy_delete.jinja ${dict}
183 ${resp}= Run Policy Delete Request /pdp/api/deletePolicy ${data}
184 Should Be Equal As Strings ${resp.status_code} 200
187 [Arguments] ${resource_id}
188 ${dict}= Create Dictionary RESOURCE_ID=${resource_id}
189 Templating.Create Environment policy ${GLOBAL_TEMPLATE_FOLDER}
190 ${data}= Templating.Apply Template policy ${POLICY_TEMPLATES}/FirewallPolicy_update.jinja ${dict}
191 ${resp}= Run Policy Put Request /pdp/api/updatePolicy ${data}
192 Should Be Equal As Strings ${resp.status_code} 200
195 Templating.Create Environment policy ${GLOBAL_TEMPLATE_FOLDER}
196 ${dict}= Create Dictionary
197 ${data}= Templating.Apply Template policy ${POLICY_TEMPLATES}/FirewallPolicy_push.jinja ${dict}
198 ${resp}= Run Policy Put Request /pdp/api/pushPolicy ${data}
199 Should Be Equal As Strings ${resp.status_code} 200
201 Validate the vFWCL Policy Old
202 ${resp}= Run Drools Get Request /policy/pdp/engine/controllers/amsterdam/drools
203 Should Be Equal As Strings ${resp.status_code} 200
204 ${resp}= Run Drools Get Request /policy/pdp/engine/controllers/amsterdam/drools/facts/closedloop-amsterdam/org.onap.policy.controlloop.Params
205 Should Be Equal As Strings ${resp.status_code} 200
207 Validate the vFWCL Policy
208 ${resp}= Run Policy Pap Get Request /policy/pap/v1/pdps
209 Log Received response from policy ${resp.text}
210 Should Be Equal As Strings ${resp.status_code} 200
212 Create vFirewall Monitoring Policy
213 ${dict}= Create Dictionary
214 Templating.Create Environment policy ${GLOBAL_TEMPLATE_FOLDER}
215 ${data}= Templating.Apply Template policy ${POLICY_TEMPLATES}/vFirewall_policy_monitoring_input_tosca.jinja ${dict}
216 ${resp}= Run Policy Api Post Request /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies ${data}
217 Should Be Equal As Strings ${resp.status_code} 200
219 Create vFirewall Operational Policy
220 [Arguments] ${resource_id}
221 ${dict}= Create Dictionary RESOURCE_ID=${resource_id}
222 Templating.Create Environment policy ${GLOBAL_TEMPLATE_FOLDER}
223 #${content_data} OperatingSystem.Get File ${GLOBAL_TEMPLATE_FOLDER}/${POLICY_TEMPLATES}/vFirewall_policy_operational_content.yaml
224 ${content_data} OperatingSystem.Get File ${GLOBAL_ASSETS_FOLDER}/policy/vFirewall_policy_operational_content.yaml
225 ${content_data}= Replace String Using Regexp ${content_data} __RESOURCE_ID__ ${resource_id}
226 ${encoded_content_data}= Evaluate urllib.quote_plus('''${content_data}''') urllib
227 ${content_dictionary}= Create Dictionary URL_ENCODED_CONTENT ${encoded_content_data}
228 ${data_2}= Templating.Apply Template policy ${POLICY_TEMPLATES}/vFirewall_policy_operational_url_enc_content_input.jinja ${content_dictionary}
230 ${resp}= Run Policy Api Post Request /policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies ${data_2}
231 Should Be Equal As Strings ${resp.status_code} 200
232 [Return] ${resp.json()['policy-version']}
234 Push vFirewall Policies To PDP Group
235 [Arguments] ${op_policy_version}
236 ${dict}= Create Dictionary OP_POLICY_VERSION=${op_policy_version}
237 Templating.Create Environment policy ${GLOBAL_TEMPLATE_FOLDER}
238 ${data}= Templating.Apply Template policy ${POLICY_TEMPLATES}/vFirewall_push.jinja ${dict}
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}
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}
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}
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}
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