| *** Settings *** |
| Library Collections |
| Library String |
| Library RequestsLibrary |
| Library OperatingSystem |
| Library Process |
| Library json |
| Resource common-library.robot |
| |
| *** Test Cases *** |
| Alive |
| [Documentation] Runs Policy PDP Alive Check |
| ${resp}= PeformGetRequest /policy/pdp/engine ${DROOLS_IP_2} 200 |
| Should Be Equal As Strings ${resp.json()['alive']} True |
| |
| Metrics |
| [Documentation] Verify drools-apps is exporting metrics |
| ${resp}= PeformGetRequest /metrics ${DROOLS_IP_2} 200 |
| Should Contain ${resp.text} jvm_threads_current |
| |
| Healthcheck |
| [Documentation] Runs Policy PDP-D Health check |
| ${resp}= PeformGetRequest /healthcheck ${DROOLS_IP} 200 |
| Should Be Equal As Strings ${resp.json()['healthy']} True |
| |
| Controller |
| [Documentation] Checks controller is up |
| Wait Until Keyword Succeeds 2 min 15 sec VerifyController |
| |
| MakeTopics |
| [Documentation] Creates the Policy topics |
| GetTopic POLICY-PDP-PAP |
| GetTopic POLICY-CL-MGT |
| |
| CreateVcpeXacmlPolicy |
| [Documentation] Create VCPE Policy for Xacml |
| PerformPostRequest /policy/api/v1/policies null ${POLICY_API_IP} vCPE.policy.monitoring.input.tosca.yaml ${DATA} yaml 200 |
| |
| CreateVcpeDroolsPolicy |
| [Documentation] Create VCPE Policy for Drools |
| PerformPostRequest /policy/api/v1/policies null ${POLICY_API_IP} vCPE.policy.operational.input.tosca.yaml ${DATA} yaml 200 |
| |
| CreateVdnsXacmlPolicy |
| [Documentation] Create VDNS Policy for Xacml |
| PerformPostRequest /policy/api/v1/policies null ${POLICY_API_IP} vDNS.policy.monitoring.input.tosca.yaml ${DATA} yaml 200 |
| |
| CreateVdnsDroolsPolicy |
| [Documentation] Create VDNS Policy for Drools |
| PerformPostRequest /policy/api/v1/policies null ${POLICY_API_IP} vDNS.policy.operational.input.tosca.json ${DATA} json 200 |
| |
| CreateVfwXacmlPolicy |
| [Documentation] Create VFW Policy for Xacml |
| PerformPostRequest /policy/api/v1/policies null ${POLICY_API_IP} vFirewall.policy.monitoring.input.tosca.yaml ${DATA} yaml 200 |
| |
| CreateVfwDroolsPolicy |
| [Documentation] Create VFW Policy for Drools |
| PerformPostRequest /policy/api/v1/policies null ${POLICY_API_IP} vFirewall.policy.operational.input.tosca.json ${DATA} json 200 |
| |
| DeployXacmlPolicies |
| [Documentation] Deploys the Policies to Xacml |
| PerformPostRequest /policy/pap/v1/pdps/deployments/batch null ${POLICY_PAP_IP} deploy.xacml.policies.json ${CURDIR}/data json 202 |
| ${result}= CheckTopic POLICY-PDP-PAP PDP_UPDATE |
| Sleep 5s |
| ${result}= CheckTopic POLICY-PDP-PAP ACTIVE |
| Should Contain ${result} responseTo |
| Should Contain ${result} xacml |
| Should Contain ${result} restart |
| Should Contain ${result} onap.restart.tca |
| Should Contain ${result} onap.scaleout.tca |
| Should Contain ${result} onap.vfirewall.tca |
| |
| DeployDroolsPolicies |
| [Documentation] Deploys the Policies to Drools |
| PerformPostRequest /policy/pap/v1/pdps/deployments/batch null ${POLICY_PAP_IP} deploy.drools.policies.json ${CURDIR}/data json 202 |
| ${result}= CheckTopic POLICY-PDP-PAP PDP_UPDATE |
| Sleep 5s |
| ${result}= CheckTopic POLICY-PDP-PAP ACTIVE |
| Should Contain ${result} responseTo |
| Should Contain ${result} drools |
| Should Contain ${result} operational.restart |
| Should Contain ${result} operational.scaleout |
| Should Contain ${result} operational.modifyconfig |
| |
| VcpeExecute |
| [Documentation] Executes VCPE Policy |
| OnSet ${CURDIR}/data/vcpeOnset.json |
| ${result}= CheckTopic POLICY-CL-MGT ACTIVE |
| Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e |
| ${result}= CheckTopic POLICY-CL-MGT OPERATION |
| Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e |
| Should Contain ${result} Sending guard query for APPC Restart |
| ${result}= CheckTopic POLICY-CL-MGT OPERATION |
| Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e |
| Should Contain ${result} Guard result for APPC Restart is Permit |
| ${result}= CheckTopic POLICY-CL-MGT OPERATION |
| Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e |
| Should Contain ${result} actor=APPC,operation=Restart |
| ${result}= CheckTopic POLICY-CL-MGT OPERATION: SUCCESS |
| Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e |
| Should Contain ${result} actor=APPC,operation=Restart |
| ${result}= CheckTopic POLICY-CL-MGT FINAL: SUCCESS |
| Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e |
| Should Contain ${result} APPC |
| Should Contain ${result} Restart |
| |
| VdnsExecute |
| [Documentation] Executes VDNS Policy |
| OnSet ${CURDIR}/data/vdnsOnset.json |
| ${result}= CheckTopic POLICY-CL-MGT ACTIVE |
| Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3 |
| ${result}= CheckTopic POLICY-CL-MGT OPERATION |
| Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3 |
| Should Contain ${result} Sending guard query for SO VF Module Create |
| ${result}= CheckTopic POLICY-CL-MGT OPERATION |
| Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3 |
| Should Contain ${result} Guard result for SO VF Module Create is Permit |
| ${result}= CheckTopic POLICY-CL-MGT OPERATION |
| Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3 |
| Should Contain ${result} actor=SO,operation=VF Module Create |
| ${result}= CheckTopic POLICY-CL-MGT OPERATION: SUCCESS |
| Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3 |
| Should Contain ${result} actor=SO,operation=VF Module Create |
| ${result}= CheckTopic POLICY-CL-MGT FINAL: SUCCESS |
| Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3 |
| Should Contain ${result} SO |
| Should Contain ${result} VF Module Create |
| |
| VfwExecute |
| [Documentation] Executes VFW Policy |
| OnSet ${CURDIR}/data/vfwOnset.json |
| ${result}= CheckTopic POLICY-CL-MGT ACTIVE |
| Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a |
| ${result}= CheckTopic POLICY-CL-MGT OPERATION |
| Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a |
| Should Contain ${result} Sending guard query for APPC ModifyConfig |
| ${result}= CheckTopic POLICY-CL-MGT OPERATION |
| Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a |
| Should Contain ${result} Guard result for APPC ModifyConfig is Permit |
| ${result}= CheckTopic POLICY-CL-MGT OPERATION |
| Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a |
| Should Contain ${result} actor=APPC,operation=ModifyConfig |
| ${result}= CheckTopic POLICY-CL-MGT OPERATION: SUCCESS |
| Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a |
| Should Contain ${result} actor=APPC,operation=ModifyConfig |
| ${result}= CheckTopic POLICY-CL-MGT FINAL: SUCCESS |
| Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a |
| Should Contain ${result} APPC |
| Should Contain ${result} ModifyConfig |
| |
| *** Keywords *** |
| |
| VerifyController |
| ${resp}= PeformGetRequest /policy/pdp/engine/controllers/usecases/drools/facts ${DROOLS_IP_2} 200 |
| Should Be Equal As Strings ${resp.json()['usecases']} 1 |
| |
| PeformGetRequest |
| [Arguments] ${url} ${domain} ${expectedstatus} |
| ${auth}= Create List demo@people.osaaf.org demo123456! |
| Log Creating session http://${domain} |
| ${session}= Create Session policy http://${domain} auth=${auth} |
| ${headers}= Create Dictionary Accept=application/json Content-Type=application/json |
| ${resp}= GET On Session policy ${url} headers=${headers} expected_status=${expectedstatus} |
| Log Received response from policy ${resp.text} |
| [return] ${resp} |
| |
| PerformPostRequest |
| [Arguments] ${url} ${params} ${domain} ${jsonfile} ${filepath} ${contenttype} ${expectedstatus} |
| ${auth}= Create List policyadmin zb!XztG34 |
| ${postjson}= Get file ${filepath}/${jsonfile} |
| Log Creating session http://${domain} |
| ${session}= Create Session policy http://${domain} auth=${auth} |
| ${headers}= Create Dictionary Accept=application/${contenttype} Content-Type=application/${contenttype} |
| ${resp}= POST On Session policy ${url} params=${params} data=${postjson} headers=${headers} expected_status=${expectedstatus} |
| Log Received response from policy ${resp.text} |
| [return] ${resp} |
| |
| OnSet |
| [Arguments] ${file} |
| ${data}= Get File ${file} |
| Create Session session http://${DMAAP_IP} max_retries=1 |
| ${headers}= Create Dictionary Content-Type=application/json |
| ${resp}= POST On Session session /events/unauthenticated.DCAE_CL_OUTPUT headers=${headers} data=${data} |
| Log Response from dmaap ${resp.text} |
| Status Should Be OK |
| [Return] ${resp.text} |