| *** Settings *** |
| Library Collections |
| Library RequestsLibrary |
| Library OperatingSystem |
| Library json |
| |
| *** Test Cases *** |
| |
| Healthcheck |
| [Documentation] Runs Apex PDP Health check |
| ${auth}= Create List healthcheck zb!XztG34 |
| Log Creating session https://${APEX_IP}:6969 |
| ${session}= Create Session policy https://${APEX_IP}:6969 auth=${auth} |
| ${headers}= Create Dictionary Accept=application/json Content-Type=application/json |
| ${resp}= GET On Session policy /policy/apex-pdp/v1/healthcheck headers=${headers} |
| Log Received response from policy ${resp.text} |
| Should Be Equal As Strings ${resp.status_code} 200 |
| Should Be Equal As Strings ${resp.json()['code']} 200 |
| Set Suite Variable ${pdpName} ${resp.json()['name']} |
| |
| ExecuteApexPolicy |
| Wait Until Keyword Succeeds 2 min 5 sec CreatePolicy |
| Wait Until Keyword Succeeds 3 min 5 sec VerifyPdpStatistics 0 0 0 0 |
| Wait Until Keyword Succeeds 2 min 5 sec DeployPolicy |
| Wait Until Keyword Succeeds 2 min 5 sec VerifyPolicyStatus |
| Wait Until Keyword Succeeds 3 min 5 sec VerifyPdpStatistics 1 1 0 0 |
| Wait Until Keyword Succeeds 4 min 10 sec RunEventOnApexEngine |
| Wait Until Keyword Succeeds 3 min 5 sec VerifyPdpStatistics 1 1 1 1 |
| |
| *** Keywords *** |
| |
| CreatePolicy |
| [Documentation] Create a new Apex policy |
| ${auth}= Create List healthcheck zb!XztG34 |
| ${postjson}= Get file ${CURDIR}/data/onap.policies.native.Apex.tosca.json |
| Log Creating session https://${POLICY_API_IP}:6969 |
| ${session}= Create Session policy https://${POLICY_API_IP}:6969 auth=${auth} |
| ${headers}= Create Dictionary Accept=application/json Content-Type=application/json |
| ${resp}= POST On Session policy /policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies data=${postjson} headers=${headers} |
| Log Received response from policy ${resp.text} |
| Should Be Equal As Strings ${resp.status_code} 200 |
| Dictionary Should Contain Key ${resp.json()} tosca_definitions_version |
| |
| DeployPolicy |
| [Documentation] Deploy the policy in apex-pdp engine |
| ${auth}= Create List healthcheck zb!XztG34 |
| ${postjson}= Get file ${CURDIR}/data/pdp_update.json |
| Log Creating session https://${POLICY_PAP_IP}:6969 |
| ${session}= Create Session policy https://${POLICY_PAP_IP}:6969 auth=${auth} |
| ${headers}= Create Dictionary Accept=application/json Content-Type=application/json |
| ${resp}= POST On Session policy /policy/pap/v1/pdps/deployments/batch data=${postjson} headers=${headers} |
| Log Received response from policy ${resp.text} |
| Should Be Equal As Strings ${resp.status_code} 202 |
| |
| VerifyPolicyStatus |
| [Documentation] Verify policy deployment status |
| ${auth}= Create List healthcheck zb!XztG34 |
| Log Creating session https://${POLICY_PAP_IP}:6969 |
| ${session}= Create Session policy https://${POLICY_PAP_IP}:6969 auth=${auth} |
| ${headers}= Create Dictionary Accept=application/json Content-Type=application/json |
| ${resp}= GET On Session policy /policy/pap/v1/policies/status headers=${headers} |
| Log Received response from policy ${resp.text} |
| Should Be Equal As Strings ${resp.status_code} 200 |
| Should Be Equal As Strings ${resp.json()[0]['pdpGroup']} defaultGroup |
| Should Be Equal As Strings ${resp.json()[0]['pdpType']} apex |
| Should Be Equal As Strings ${resp.json()[0]['pdpId']} ${pdpName} |
| Should Be Equal As Strings ${resp.json()[0]['policy']['name']} onap.policies.native.apex.Sampledomain |
| Should Be Equal As Strings ${resp.json()[0]['policy']['version']} 1.0.0 |
| Should Be Equal As Strings ${resp.json()[0]['policyType']['name']} onap.policies.native.Apex |
| Should Be Equal As Strings ${resp.json()[0]['policyType']['version']} 1.0.0 |
| Should Be Equal As Strings ${resp.json()[0]['deploy']} True |
| Should Be Equal As Strings ${resp.json()[0]['state']} SUCCESS |
| |
| RunEventOnApexEngine |
| [Documentation] Send event to verify policy execution |
| Create Session apexSession http://${APEX_IP}:23324 max_retries=1 |
| ${data}= Get Binary File ${CURDIR}${/}data${/}event.json |
| &{headers}= Create Dictionary Content-Type=application/json Accept=application/json |
| ${resp}= PUT On Session apexSession /apex/FirstConsumer/EventIn data=${data} headers=${headers} |
| Should Be Equal As Strings ${resp.status_code} 200 |
| |
| VerifyPdpStatistics |
| [Documentation] Verify pdp statistics after policy execution |
| [Arguments] ${deployCount} ${deploySuccessCount} ${executedCount} ${executedSuccessCount} |
| ${auth}= Create List healthcheck zb!XztG34 |
| Log Creating session https://${POLICY_PAP_IP}:6969 |
| ${session}= Create Session policy https://${POLICY_PAP_IP}:6969 auth=${auth} |
| ${headers}= Create Dictionary Accept=application/json Content-Type=application/json |
| ${resp}= GET On Session policy /policy/pap/v1/pdps/statistics/defaultGroup/apex/${pdpName} params=recordCount=1 headers=${headers} |
| Log Received response from policy ${resp.text} |
| Should Be Equal As Strings ${resp.status_code} 200 |
| Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['pdpInstanceId']} ${pdpName} |
| Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['pdpGroupName']} defaultGroup |
| Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['pdpSubGroupName']} apex |
| Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['policyDeployCount']} ${deployCount} |
| Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['policyDeploySuccessCount']} ${deploySuccessCount} |
| Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['policyDeployFailCount']} 0 |
| Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['policyExecutedCount']} ${executedCount} |
| Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['policyExecutedSuccessCount']} ${executedSuccessCount} |
| Should Be Equal As Strings ${resp.json()['defaultGroup']['apex'][0]['policyExecutedFailCount']} 0 |