Add testcases for policy status and pdp statistics 88/121088/1
authorRam Krishna Verma <ram_krishna.verma@bell.ca>
Tue, 4 May 2021 20:30:16 +0000 (16:30 -0400)
committerRam Krishna Verma <ram_krishna.verma@bell.ca>
Tue, 4 May 2021 20:30:24 +0000 (16:30 -0400)
Adding testcases to validate policy status and pdp statistics api's.

Issue-ID: POLICY-3257
Change-Id: I730451c4abb19bab6ddf10cba58f63ab5ca3a11a
Signed-off-by: Ram Krishna Verma <ram_krishna.verma@bell.ca>
csit/tests/apex-pdp-test.robot

index 54838a3..e538e6f 100644 (file)
@@ -12,15 +12,19 @@ Healthcheck
      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 Request     policy  /policy/apex-pdp/v1/healthcheck     headers=${headers}
-     Log    Received response from policy1 ${resp.text}
+     ${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
 
 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 ***
 
@@ -31,12 +35,10 @@ CreatePolicy
      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 Request   policy  /policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies  data=${postjson}   headers=${headers}
-     Log    Received response from policy4 ${resp.text}
-     ${postjsonobject}   To Json    ${postjson}
+     ${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
-     Dictionary Should Contain Key    ${postjsonobject}    tosca_definitions_version
 
 DeployPolicy
      [Documentation]    Deploy the policy in apex-pdp engine
@@ -45,14 +47,53 @@ DeployPolicy
      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 Request   policy  /policy/pap/v1/pdps/deployments/batch  data=${postjson}   headers=${headers}
-     Log    Received response from policy5 ${resp.text}
-     ${postjsonobject}   To Json    ${postjson}
+     ${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']}  policy-apex-pdp
+     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 Request    apexSession    /apex/FirstConsumer/EventIn    data=${data}   headers=${headers}
+    ${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/policy-apex-pdp    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']}  policy-apex-pdp
+     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