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}
19 Run Policy Health Check
20 [Documentation] Runs Policy Health check
21 ${auth}= Create List ${GLOBAL_POLICY_USERNAME} ${GLOBAL_POLICY_PASSWORD}
22 Log Creating session ${POLICY_ENDPOINT}
23 ${session}= Create Session policy ${POLICY_HEALTHCHECK_ENDPOINT} auth=${auth}
24 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
25 ${resp}= Get Request policy ${POLICY_HEALTH_CHECK_PATH} headers=${headers}
26 Log Received response from policy ${resp.text}
27 Should Be Equal As Strings ${resp.status_code} 200
28 Should Be True ${resp.json()['healthy']}
29 @{ITEMS}= Copy List ${resp.json()['details']}
30 :FOR ${ELEMENT} IN @{ITEMS}
31 \ Should Be Equal As Strings ${ELEMENT['code']} 200
32 \ Should Be True ${ELEMENT['healthy']}
34 Run Drools Get Request
35 [Documentation] Runs Drools Get Request
36 [Arguments] ${data_path}
37 ${auth}= Create List ${GLOBAL_DROOLS_USERNAME} ${GLOBAL_DROOLS_PASSWORD}
38 Log Creating session ${POLICY_ENDPOINT}
39 ${session}= Create Session policy ${DROOLS_ENDPOINT} auth=${auth}
40 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
41 ${resp}= Get Request policy ${data_path} headers=${headers}
42 Log Received response from policy ${resp.text}
43 Should Be Equal As Strings ${resp.status_code} 200
46 Run Policy Put Request
47 [Documentation] Runs Policy Put request
48 [Arguments] ${data_path} ${data}
49 Log Creating session ${POLICY_ENDPOINT}
50 ${session}= Create Session policy ${POLICY_ENDPOINT}
51 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} Environment=TEST
52 ${resp}= Put Request policy ${data_path} data=${data} headers=${headers}
53 Log Received response from policy ${resp.text}
56 Run Policy Delete Request
57 [Documentation] Runs Policy Delete request
58 [Arguments] ${data_path} ${data}
59 Log Creating session ${POLICY_ENDPOINT}
60 ${session}= Create Session policy ${POLICY_ENDPOINT}
61 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} Environment=TEST
62 ${resp}= Delete Request policy ${data_path} data=${data} headers=${headers}
63 Log Received response from policy ${resp.text}
66 Run Policy Get Configs Request
67 [Documentation] Runs Policy Get Configs request
68 [Arguments] ${data_path} ${data}
69 Log Creating session ${POLICY_ENDPOINT}
70 ${session}= Create Session policy ${POLICY_ENDPOINT}
71 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH}
72 ${resp}= Post Request policy ${data_path} data=${data} headers=${headers}
73 Log Received response from policy ${resp.text}
79 [Arguments] ${resource_id}
80 Run Keyword and Ignore Error Delete vFWCL Policy
82 Log To Console Create vFWCL Policy
83 Create vFWCL Policy ${resource_id}
85 Log To Console Push vFWCL Policy
88 Log To Console Reboot Drools
91 Log To Console Validate vFWCL Policy
92 Validate the vFWCL Policy
95 ${data}= OperatingSystem.Get File ${POLICY_TEMPLATES}/FirewallPolicy_delete.template
96 ${resp}= Run Policy Delete Request /pdp/api/deletePolicy ${data}
97 Should Be Equal As Strings ${resp.status_code} 200
100 [Arguments] ${resource_id}
101 ${dict}= Create Dictionary RESOURCE_ID=${resource_id}
102 ${data}= Fill JSON Template File ${POLICY_TEMPLATES}/FirewallPolicy_update.template ${dict}
103 ${resp}= Run Policy Put Request /pdp/api/updatePolicy ${data}
104 Should Be Equal As Strings ${resp.status_code} 200
107 ${dict}= Create Dictionary
108 ${data}= Fill JSON Template File ${POLICY_TEMPLATES}/FirewallPolicy_push.template ${dict}
109 ${resp}= Run Policy Put Request /pdp/api/pushPolicy ${data}
110 Should Be Equal As Strings ${resp.status_code} 200
113 ${stop}= Catenate docker exec -t -u policy drools bash -c "source /opt/app/policy/etc/profile.d/env.sh; policy stop"
114 ${start}= Catenate docker exec -t -u policy drools bash -c "source /opt/app/policy/etc/profile.d/env.sh; policy start"
115 Wait Until Keyword Succeeds 120 5 sec Open Connection And Log In ${GLOBAL_INJECTED_POLICY_IP_ADDR} root ${GLOBAL_VM_PRIVATE_KEY}
117 ${status} ${stdout}= Run Keyword And Ignore Error SSHLibrary.Read Until Regexp has stopped
118 Log ${status}: stdout=${stdout}
119 ${ctrlc}= Evaluate '\x03'
120 Run Keyword If '${status}' == 'FAIL' Write ${ctrlc}
123 ${stdout}= SSHLibrary.Read Until Regexp is running
125 Should Contain ${stdout} is running
127 Validate the vFWCL Policy
128 ${resp}= Run Drools Get Request /policy/pdp/engine/controllers/amsterdam/drools
129 Should Be Equal As Strings ${resp.status_code} 200
130 ${resp}= Run Drools Get Request /policy/pdp/engine/controllers/amsterdam/drools/facts/closedloop-amsterdam/org.onap.policy.controlloop.Params
131 Should Be Equal As Strings ${resp.status_code} 200