aboutsummaryrefslogtreecommitdiffstats
path: root/csit/apex-pdp/tests/apex-pdp-test.robot
diff options
context:
space:
mode:
authora.sreekumar <ajith.sreekumar@bell.ca>2021-07-08 15:32:52 +0100
committera.sreekumar <ajith.sreekumar@bell.ca>2021-07-12 11:55:28 +0100
commit9a12d024fe42fd3c57477c513382c3b78983b9ce (patch)
tree18b5b6627d1cbb37c26ea98915795166b6f6070e /csit/apex-pdp/tests/apex-pdp-test.robot
parent78850b54b98e8bdc27d186035910126dd2ac826e (diff)
Update APEX CSIT tests to cover multiple outputs
As part of this review, a new policy is executed in APEX-PDP that interacts with AAI and CDS simulators. At each execution phase, along with sending a request to AAI/CDS, a log event is also sent to DMaaP notifying every action taken. This is done using the multiple output support. Change-Id: If34df13823196f9ece9b5ce6448b6652507f0b63 Issue-ID: POLICY-3466 Signed-off-by: a.sreekumar <ajith.sreekumar@bell.ca>
Diffstat (limited to 'csit/apex-pdp/tests/apex-pdp-test.robot')
-rw-r--r--csit/apex-pdp/tests/apex-pdp-test.robot62
1 files changed, 49 insertions, 13 deletions
diff --git a/csit/apex-pdp/tests/apex-pdp-test.robot b/csit/apex-pdp/tests/apex-pdp-test.robot
index 62a01b94..f2f82e9c 100644
--- a/csit/apex-pdp/tests/apex-pdp-test.robot
+++ b/csit/apex-pdp/tests/apex-pdp-test.robot
@@ -3,6 +3,7 @@ Library Collections
Library RequestsLibrary
Library OperatingSystem
Library json
+Library Process
*** Test Cases ***
@@ -19,20 +20,30 @@ Healthcheck
Set Suite Variable ${pdpName} ${resp.json()['name']}
ExecuteApexPolicy
+ Set Test Variable ${policyName} onap.policies.native.apex.Sampledomain
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 4 min 5 sec RunEventOnApexEngine
Wait Until Keyword Succeeds 3 min 5 sec VerifyPdpStatistics 1 1 1 1
+ExecuteApexControlLoopPolicy
+ Set Test Variable ${policyName} onap.policies.apex.Simplecontrolloop
+ Wait Until Keyword Succeeds 2 min 5 sec CreatePolicy
+ Wait Until Keyword Succeeds 2 min 5 sec DeployPolicy
+ Wait Until Keyword Succeeds 2 min 5 sec VerifyPolicyStatus
+ ${result}= Run Process ${SCRIPTS}/make_topic.sh APEX-CL-MGT
+ Should Be Equal As Integers ${result.rc} 0
+ Wait Until Keyword Succeeds 2 min 5 sec TriggerAndVerifyControlLoopPolicy
+
*** 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
+ ${postjson}= Get file ${CURDIR}/data/${policyName}.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
@@ -44,7 +55,10 @@ CreatePolicy
DeployPolicy
[Documentation] Deploy the policy in apex-pdp engine
${auth}= Create List healthcheck zb!XztG34
- ${postjson}= Get file ${CURDIR}/data/pdp_update.json
+ ${postjson}= Get file ${CURDIR}/data/policy_deploy.json
+ ${postjson}= evaluate json.loads('''${postjson}''') json
+ set to dictionary ${postjson['groups'][0]['deploymentSubgroups'][0]['policies'][0]} name=${policyName}
+ ${postjson}= evaluate json.dumps(${postjson}) 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
@@ -57,19 +71,22 @@ VerifyPolicyStatus
${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
+ ${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}
+ FOR ${responseEntry} IN @{resp.json()}
+ Exit For Loop IF '${responseEntry['policy']['name']}'=='${policyName}'
+ END
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
+ Should Be Equal As Strings ${responseEntry['pdpGroup']} defaultGroup
+ Should Be Equal As Strings ${responseEntry['pdpType']} apex
+ Should Be Equal As Strings ${responseEntry['pdpId']} ${pdpName}
+ Should Be Equal As Strings ${responseEntry['policy']['name']} ${policyName}
+ Should Be Equal As Strings ${responseEntry['policy']['version']} 1.0.0
+ Should Be Equal As Strings ${responseEntry['policyType']['name']} onap.policies.native.Apex
+ Should Be Equal As Strings ${responseEntry['policyType']['version']} 1.0.0
+ Should Be Equal As Strings ${responseEntry['deploy']} True
+ Should Be Equal As Strings ${responseEntry['state']} SUCCESS
RunEventOnApexEngine
[Documentation] Send event to verify policy execution
@@ -79,6 +96,25 @@ RunEventOnApexEngine
${resp}= PUT On Session apexSession /apex/FirstConsumer/EventIn data=${data} headers=${headers}
Should Be Equal As Strings ${resp.status_code} 200
+TriggerAndVerifyControlLoopPolicy
+ [Documentation] Send event to DMaaP and read notifications to verify policy execution
+ Create Session apexSession https://${DMAAP_IP}:3905 max_retries=1
+ ${data}= Get Binary File ${CURDIR}/data/VesEvent.json
+ &{headers}= Create Dictionary Content-Type=application/json Accept=application/json
+ ${resp}= POST On Session apexSession /events/unauthenticated.DCAE_CL_OUTPUT data=${data} headers=${headers}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Run Keyword CheckLogMessage VES event has been received. Going to fetch details from AAI.
+ Run Keyword CheckLogMessage Received response from AAI successfully. Hostname in AAI matches with the one in Ves event. Going to make the update-config request to CDS.
+ Run Keyword CheckLogMessage Successfully processed the VES event. Hostname is updated.
+
+CheckLogMessage
+ [Documentation] Read log messages received and check for expected content.
+ [Arguments] ${expectedMsg}
+ ${result}= Run Process ${SCRIPTS}/wait_topic.sh APEX-CL-MGT PNF101
+ Log Received log event on APEX-CL-MGT topic ${result.stdout}
+ Should Be Equal As Integers ${result.rc} 0
+ Should Contain ${result.stdout} ${expectedMsg}
+
VerifyPdpStatistics
[Documentation] Verify pdp statistics after policy execution
[Arguments] ${deployCount} ${deploySuccessCount} ${executedCount} ${executedSuccessCount}