summaryrefslogtreecommitdiffstats
path: root/robot/resources/policy_interface.robot
diff options
context:
space:
mode:
Diffstat (limited to 'robot/resources/policy_interface.robot')
-rw-r--r--robot/resources/policy_interface.robot80
1 files changed, 73 insertions, 7 deletions
diff --git a/robot/resources/policy_interface.robot b/robot/resources/policy_interface.robot
index a622ae6c..e38d9445 100644
--- a/robot/resources/policy_interface.robot
+++ b/robot/resources/policy_interface.robot
@@ -4,19 +4,26 @@ Library RequestsClientCert
Library RequestsLibrary
Library String
Library JSONUtils
-Library Collections
+Library Collections
+Library OperatingSystem
+Library SSHLibrary
Resource global_properties.robot
+Resource json_templater.robot
+Resource ssh/files.robot
*** Variables ***
${POLICY_HEALTH_CHECK_PATH} /healthcheck
${POLICY_ENDPOINT} ${GLOBAL_POLICY_SERVER_PROTOCOL}://${GLOBAL_INJECTED_POLICY_IP_ADDR}:${GLOBAL_POLICY_SERVER_PORT}
+${DROOLS_ENDPOINT} http://${GLOBAL_INJECTED_POLICY_IP_ADDR}:9696
${POLICY_HEALTHCHECK_ENDPOINT} ${GLOBAL_POLICY_SERVER_PROTOCOL}://${GLOBAL_INJECTED_POLICY_IP_ADDR}:${GLOBAL_POLICY_HEALTHCHECK_PORT}
+${POLICY_TEMPLATES} robot/assets/templates/policy
+${POLICY_PVT_KEY} robotassets/keys/onap_dev.pvt
*** Keywords ***
Run Policy Health Check
[Documentation] Runs Policy Health check
- ${auth}= Create List ${GLOBAL_POLICY_USERNAME} ${GLOBAL_POLICY_PASSWORD}
+ ${auth}= Create List ${GLOBAL_POLICY_USERNAME} ${GLOBAL_POLICY_PASSWORD}
Log Creating session ${POLICY_ENDPOINT}
${session}= Create Session policy ${POLICY_HEALTHCHECK_ENDPOINT} auth=${auth}
${headers}= Create Dictionary Accept=application/json Content-Type=application/json
@@ -28,7 +35,7 @@ Run Policy Health Check
:FOR ${ELEMENT} IN @{ITEMS}
\ Should Be Equal As Strings ${ELEMENT['code']} 200
\ Should Be True ${ELEMENT['healthy']}
-
+
Run Policy Put Request
[Documentation] Runs Policy Put request
[Arguments] ${data_path} ${data}
@@ -38,7 +45,7 @@ Run Policy Put Request
${resp}= Put Request policy ${data_path} data=${data} headers=${headers}
Log Received response from policy ${resp.text}
[Return] ${resp}
-
+
Run Policy Delete Request
[Documentation] Runs Policy Delete request
[Arguments] ${data_path} ${data}
@@ -48,13 +55,72 @@ Run Policy Delete Request
${resp}= Delete Request policy ${data_path} data=${data} headers=${headers}
Log Received response from policy ${resp.text}
[Return] ${resp}
-
+
+Run Drools Get Request
+ [Documentation] Runs Policy Delete request
+ [Arguments] ${data_path}
+ Log Creating session ${POLICY_ENDPOINT}
+ ${auth}= Create List ${GLOBAL_DROOLS_USERNAME} ${GLOBAL_DROOLS_PASSWORD}
+ ${session}= Create Session policy ${DROOLS_ENDPOINT} auth=${auth}
+ ${resp}= Get Request policy ${data_path}
+ Log Received response from policy ${resp.text}
+ [Return] ${resp}
+
+
Run Policy Get Configs Request
[Documentation] Runs Policy Get Configs request
[Arguments] ${data_path} ${data}
Log Creating session ${POLICY_ENDPOINT}
${session}= Create Session policy ${POLICY_ENDPOINT}
- ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH}
${resp}= Post Request policy ${data_path} data=${data} headers=${headers}
Log Received response from policy ${resp.text}
- [Return] ${resp} \ No newline at end of file
+ [Return] ${resp}
+
+
+
+Update vVFWCL Policy
+ [Arguments] ${resource_id}
+ Delete vFWCL Policy
+ Create vFWCL Policy ${resource_id}
+ Push vFWCL Policy
+ Reboot Drools
+ Validate the vFWCL Policy
+
+Delete vFWCL Policy
+ ${data}= OperatingSystem.Get File ${POLICY_TEMPLATES}/FirewallPolicy_delete.template
+ ${resp}= Run Policy Delete Request /pdp/api/deletePolicy ${data}
+ Should Be Equal As Strings ${resp.status_code} 200
+
+Create vFWCL Policy
+ [Arguments] ${resource_id}
+ ${dict}= Create Dictionary RESOURCE_ID=${resource_id}
+ ${data}= Fill JSON Template File ${POLICY_TEMPLATES}/FirewallPolicy_update.template ${dict}
+ ${resp}= Run Policy Put Request /pdp/api/updatePolicy ${data}
+ Should Be Equal As Strings ${resp.status_code} 200
+
+Push vFWCL Policy
+ ${data}= OperatingSystem.Get File ${POLICY_TEMPLATES}/FirewallPolicy_push.template
+ ${resp}= Run Policy Put Request /pdp/api/pushPolicy ${data}
+ Should Be Equal As Strings ${resp.status_code} 200
+
+Reboot Drools
+ ${stop}= Catenate docker exec -t -u policy drools bash -c "source /opt/app/policy/etc/profile.d/env.sh; policy stop"
+ ${start}= Catenate docker exec -t -u policy drools bash -c "source /opt/app/policy/etc/profile.d/env.sh; policy start"
+ Wait Until Keyword Succeeds 120 5 sec Open Connection And Log In ${GLOBAL_INJECTED_POLICY_IP_ADDR} root ${GLOBAL_VM_PRIVATE_KEY}
+ Write ${stop}
+ ${status} ${stdout}= Run Keyword And Ignore Error SSHLibrary.Read Until Regexp is running
+ Log ${status}: stdout=${stdout}
+ ${ctrlc}= Evaluate '\x03'
+ Run Keyword If '${status}' == 'FAIL' Write ${ctrlc}
+ Sleep 5s
+ Write ${start}
+ ${stdout}= SSHLibrary.Read Until Regexp is running
+ Log stdout=${stdout}
+ Should Contain ${stdout} is running
+
+Validate the vFWCL Policy
+ ${resp}= Run Drools Get Request /policy/pdp/engine/controllers/amsterdam/drools
+ Should Be Equal As Strings ${resp.status_code} 200
+ ${resp}= Run Drools Get Request /policy/pdp/engine/controllers/amsterdam/drools/facts/closedloop-amsterdam/org.onap.policy.controlloop.Params
+ Should Be Equal As Strings ${resp.status_code} 200 \ No newline at end of file