Update CSITs for metrics + refactoring 17/123417/6
authora.sreekumar <ajith.sreekumar@bell.ca>
Fri, 20 Aug 2021 16:39:53 +0000 (17:39 +0100)
committera.sreekumar <ajith.sreekumar@bell.ca>
Wed, 25 Aug 2021 09:37:51 +0000 (10:37 +0100)
Change-Id: I5d090765ff29143f689c6754a7a1ad55dae1c1b4
Issue-ID: POLICY-3524
Signed-off-by: a.sreekumar <ajith.sreekumar@bell.ca>
16 files changed:
csit/apex-pdp/tests/apex-pdp-test.robot
csit/api/tests/api-test.robot
csit/common-library.robot [new file with mode: 0644]
csit/config/apex-pdp/OnapPfConfig.json
csit/config/distribution/defaultConfig.json
csit/config/drools-apps/custom/engine.properties
csit/config/drools-apps/env/base.conf
csit/config/drools/custom/engine.properties
csit/config/drools/env/base.conf
csit/config/pap/defaultConfig.json
csit/config/xacml-pdp/defaultConfig.json
csit/distribution/tests/distribution-test.robot
csit/drools-applications/tests/drools-applications-test.robot
csit/drools-pdp/tests/drools-pdp-test.robot
csit/pap/tests/pap-test.robot
csit/xacml-pdp/tests/xacml-pdp-test.robot

index f2f82e9..6049722 100644 (file)
@@ -4,89 +4,53 @@ Library     RequestsLibrary
 Library     OperatingSystem
 Library     json
 Library     Process
+Resource    ${CURDIR}/../../common-library.robot
+
 
 *** 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
+     ${resp}=    PerformGetRequest    ${APEX_IP}    /policy/apex-pdp/v1/healthcheck    200    null
+     Should Be Equal As Strings    ${resp.json()['code']}    200
      Set Suite Variable    ${pdpName}    ${resp.json()['name']}
 
-ExecuteApexPolicy
+Metrics
+     [Documentation]  Verify policy-apex-pdp is exporting prometheus metrics
+     ${resp}=  PerformGetRequest  ${APEX_IP}  /metrics  200  null
+     Should Contain  ${resp.text}  jvm_threads_current
+
+ExecuteApexSampleDomainPolicy
      Set Test Variable    ${policyName}    onap.policies.native.apex.Sampledomain
-     Wait Until Keyword Succeeds    2 min    5 sec    CreatePolicy
+     ${postjson}=  Get file  ${CURDIR}/data/${policyName}.json
+     CreatePolicy  /policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies  200  ${postjson}  ${policyName}  1.0.0
      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
+     DeployPolicy
+     Wait Until Keyword Succeeds    2 min    5 sec    QueryPolicyStatus  ${policyName}  defaultGroup  apex  ${pdpName}  onap.policies.native.Apex
      Wait Until Keyword Succeeds    3 min    5 sec    VerifyPdpStatistics    1    1    0    0
      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
+     ${postjson}=  Get file  ${CURDIR}/data/${policyName}.json
+     CreatePolicy  /policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies  200  ${postjson}  ${policyName}  1.0.0
+     DeployPolicy
+     Wait Until Keyword Succeeds    2 min    5 sec    QueryPolicyStatus  ${policyName}  defaultGroup  apex  ${pdpName}  onap.policies.native.Apex
      ${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/${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
-     ${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/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
-     ${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}
-     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    ${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
+     PerformPostRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps/deployments/batch  202  ${postjson}  null
 
 RunEventOnApexEngine
     [Documentation]    Send event to verify policy execution
@@ -118,12 +82,7 @@ CheckLogMessage
 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}
+     ${resp}=  PerformGetRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps/statistics/defaultGroup/apex/${pdpName}  200  null
      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
index 2123b1e..1f94c9c 100644 (file)
@@ -3,17 +3,23 @@ Library     Collections
 Library     RequestsLibrary
 Library     OperatingSystem
 Library     json
+Resource    ${CURDIR}/../../common-library.robot
 
 *** Test Cases ***
 
 Healthcheck
      [Documentation]  Verify policy api health check
-     ${resp}=  PeformGetRequest  /policy/api/v1/healthcheck  200
+     ${resp}=  PerformGetRequest  ${POLICY_API_IP}  /policy/api/v1/healthcheck  200  null
      Should Be Equal As Strings  ${resp.json()['code']}  200
 
+Metrics
+    [Documentation]  Verify policy-api is exporting prometheus metrics
+    ${resp}=  PerformGetRequest  ${POLICY_API_IP}  /metrics  200  null
+    Should Contain  ${resp.text}  jvm_threads_current
+
 Statistics
      [Documentation]  Verify policy api statistics
-     ${resp}=  PeformGetRequest  /policy/api/v1/statistics  200
+     ${resp}=  PerformGetRequest  ${POLICY_API_IP}  /policy/api/v1/statistics  200  null
      Should Be Equal As Strings  ${resp.json()['code']}  200
 
 RetrievePolicyTypes
@@ -34,15 +40,18 @@ RetrieveMonitoringPolicyTypes
 
 CreateNewMonitoringPolicyV1
      [Documentation]  Create a policy named 'onap.restart.tca' and version '1.0.0' using specific api
-     CreatePolicy  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies  200  vCPE.policy.monitoring.input.tosca.json  onap.restart.tca  1.0.0
+     ${postjson}=  Get file  ${DATA}/vCPE.policy.monitoring.input.tosca.json
+     CreatePolicy  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies  200  ${postjson}  onap.restart.tca  1.0.0
 
 CreateNewMonitoringPolicyV1Again
      [Documentation]  Create an existing policy with modification and keeping the same version should result in error.
-     CreatePolicy  /policy/api/v1/policies  406  vCPE.policy.monitoring.input.tosca.v1_2.json  null  null
+     ${postjson}=  Get file  ${DATA}/vCPE.policy.monitoring.input.tosca.v1_2.json
+     CreatePolicy  /policy/api/v1/policies  406  ${postjson}  null  null
 
 CreateNewMonitoringPolicyV2
      [Documentation]  Create a policy named 'onap.restart.tca' and version '2.0.0' using generic api
-     CreatePolicy  /policy/api/v1/policies  200  vCPE.policy.monitoring.input.tosca.v2.json  onap.restart.tca  2.0.0
+     ${postjson}=  Get file  ${DATA}/vCPE.policy.monitoring.input.tosca.v2.json
+     CreatePolicy  /policy/api/v1/policies  200  ${postjson}  onap.restart.tca  2.0.0
 
 RetrievePoliciesOfType
      [Documentation]  Retrieve all policies belonging to a specific Policy Type
@@ -58,81 +67,48 @@ RetrieveSpecificPolicy
 
 DeleteSpecificPolicy
      [Documentation]  Delete a policy named 'onap.restart.tca' and version '1.0.0' using generic api
-     PeformDeleteRequest  /policy/api/v1/policies/onap.restart.tca/versions/1.0.0
+     PerformDeleteRequest  ${POLICY_API_IP}  /policy/api/v1/policies/onap.restart.tca/versions/1.0.0  200
+     PerformDeleteRequest  ${POLICY_API_IP}  /policy/api/v1/policies/onap.restart.tca/versions/1.0.0  404
 
 DeleteSpecificPolicyV2
      [Documentation]  Delete a policy named 'onap.restart.tca' and version '2.0.0' using specific api
-     PeformDeleteRequest  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies/onap.restart.tca/versions/2.0.0
+     PerformDeleteRequest  ${POLICY_API_IP}  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies/onap.restart.tca/versions/2.0.0  200
+     PerformDeleteRequest  ${POLICY_API_IP}  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies/onap.restart.tca/versions/2.0.0  404
 
 DeleteSpecificPolicyTypeV1
      [Documentation]  Delete a policy type named 'onap.policies.monitoring.tcagen2' and version '1.0.0'
-     PeformDeleteRequest  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0
+     PerformDeleteRequest  ${POLICY_API_IP}  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0  200
+     PerformDeleteRequest  ${POLICY_API_IP}  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0  404
 
 DeleteSpecificPolicyTypeV2
      [Documentation]  Delete a policy type named 'onap.policies.monitoring.tcagen2' and version '2.0.0'
-     PeformDeleteRequest  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/2.0.0
+     PerformDeleteRequest  ${POLICY_API_IP}  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/2.0.0  200
+     PerformDeleteRequest  ${POLICY_API_IP}  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/2.0.0  404
 
 *** Keywords ***
 
 CreatePolicyType
      [Arguments]  ${url}  ${expectedstatus}  ${jsonfile}  ${policytypename}  ${policytypeversion}
      [Documentation]  Create the specific policy type
-     ${resp}=  PerformCreateRequest  ${url}  ${expectedstatus}  ${jsonfile}  ${CURDIR}/data
+     ${postjson}=  Get file  ${CURDIR}/data/${jsonfile}
+     ${resp}=  PerformPostRequest  ${POLICY_API_IP}  ${url}  ${expectedstatus}  ${postjson}  null
      Run Keyword If  ${expectedstatus}==200  List Should Contain Value  ${resp.json()['policy_types']}  ${policytypename}
      Run Keyword If  ${expectedstatus}==200  Should Be Equal As Strings  ${resp.json()['policy_types']['${policytypename}']['version']}  ${policytypeversion}
 
 FetchPolicyTypes
      [Arguments]  ${url}  ${expectedLength}
      [Documentation]  Fetch all policy types
-     ${resp}=  PeformGetRequest  ${url}  200
+     ${resp}=  PerformGetRequest  ${POLICY_API_IP}  ${url}  200  null
      Length Should Be  ${resp.json()['policy_types']}  ${expectedLength}
 
-CreatePolicy
-     [Arguments]  ${url}  ${expectedstatus}  ${jsonfile}  ${policyname}  ${policyversion}
-     [Documentation]  Create the specific policy
-     ${resp}=  PerformCreateRequest  ${url}  ${expectedstatus}  ${jsonfile}  ${DATA}
-     Run Keyword If  ${expectedstatus}==200  Dictionary Should Contain Key  ${resp.json()['topology_template']['policies'][0]}  ${policyname}
-     Run Keyword If  ${expectedstatus}==200  Should Be Equal As Strings  ${resp.json()['topology_template']['policies'][0]['${policyname}']['version']}  ${policyversion}
-
 FetchPolicy
      [Arguments]  ${url}  ${keyword}
      [Documentation]  Fetch the specific policy
-     ${resp}=  PeformGetRequest  ${url}  200
+     ${resp}=  PerformGetRequest  ${POLICY_API_IP}  ${url}  200  null
      Dictionary Should Contain Key  ${resp.json()['topology_template']['policies'][0]}  ${keyword}
 
 FetchPolicies
      [Arguments]  ${url}  ${expectedLength}
      [Documentation]  Fetch all policies
-     ${resp}=  PeformGetRequest  ${url}  200
+     ${resp}=  PerformGetRequest  ${POLICY_API_IP}  ${url}  200  null
      Length Should Be  ${resp.json()['topology_template']['policies']}  ${expectedLength}
-
-PerformCreateRequest
-     [Arguments]  ${url}  ${expectedstatus}  ${jsonfile}  ${filepath}
-     ${auth}=  Create List  healthcheck  zb!XztG34
-     ${postjson}=  Get file  ${filepath}/${jsonfile}
-     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  ${url}  data=${postjson}  headers=${headers}  expected_status=${expectedstatus}
-     Log  Received response from policy ${resp.text}
-     [return]  ${resp}
-
-PeformGetRequest
-     [Arguments]  ${url}  ${expectedstatus}
-     ${auth}=  Create List  healthcheck  zb!XztG34
-     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}=  GET On Session  policy  ${url}  headers=${headers}  expected_status=${expectedstatus}
-     Log  Received response from policy ${resp.text}
-     [return]  ${resp}
-
-PeformDeleteRequest
-     [Arguments]  ${url}
-     ${auth}=  Create List  healthcheck  zb!XztG34
-     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}=  DELETE On Session  policy  ${url}  headers=${headers}  expected_status=200
-     Log  Received response from policy ${resp.text}
-     ${resp}=  DELETE On Session  policy  ${url}  headers=${headers}  expected_status=404
diff --git a/csit/common-library.robot b/csit/common-library.robot
new file mode 100644 (file)
index 0000000..639d32a
--- /dev/null
@@ -0,0 +1,94 @@
+*** Settings ***
+Library    Collections
+Library    RequestsLibrary
+Library    OperatingSystem
+Library    json
+
+
+*** Keywords ***
+
+CreatePolicy
+    [Arguments]  ${url}  ${expectedstatus}  ${postjson}  ${policyname}  ${policyversion}
+    [Documentation]  Create the specific policy
+    ${resp}=  PerformPostRequest  ${POLICY_API_IP}  ${url}  ${expectedstatus}  ${postjson}  null
+    Run Keyword If  ${expectedstatus}==200  Dictionary Should Contain Key  ${resp.json()['topology_template']['policies'][0]}  ${policyname}
+    Run Keyword If  ${expectedstatus}==200  Should Be Equal As Strings  ${resp.json()['topology_template']['policies'][0]['${policyname}']['version']}  ${policyversion}
+
+QueryPdpGroups
+    [Documentation]    Verify pdp group query - supports upto 2 groups
+    [Arguments]  ${groupsLength}  ${group1Name}  ${group1State}  ${policiesLengthInGroup1}  ${group2Name}  ${group2State}  ${policiesLengthInGroup2}
+    ${resp}=  PerformGetRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps  200  null
+    Length Should Be  ${resp.json()['groups']}  ${groupsLength}
+    Should Be Equal As Strings  ${resp.json()['groups'][0]['name']}  ${group1Name}
+    Should Be Equal As Strings  ${resp.json()['groups'][0]['pdpGroupState']}  ${group1State}
+    Length Should Be  ${resp.json()['groups'][0]['pdpSubgroups'][0]['policies']}  ${policiesLengthInGroup1}
+    Run Keyword If  ${groupsLength}>1  Should Be Equal As Strings  ${resp.json()['groups'][1]['name']}  ${group2Name}
+    Run Keyword If  ${groupsLength}>1  Should Be Equal As Strings  ${resp.json()['groups'][1]['pdpGroupState']}  ${group2State}
+    Run Keyword If  ${groupsLength}>1  Length Should Be  ${resp.json()['groups'][1]['pdpSubgroups'][0]['policies']}  ${policiesLengthInGroup2}
+
+QueryPolicyAudit
+    [Arguments]  ${url}  ${expectedstatus}  ${pdpGroup}  ${pdpType}  ${policyName}  ${expectedAction}
+    ${resp}=  PerformGetRequest  ${POLICY_PAP_IP}  ${url}  ${expectedstatus}  recordCount=1
+    Should Be Equal As Strings    ${resp.json()[0]['pdpGroup']}  ${pdpGroup}
+    Should Be Equal As Strings    ${resp.json()[0]['pdpType']}  ${pdpType}
+    Should Be Equal As Strings    ${resp.json()[0]['policy']['name']}  ${policyName}
+    Should Be Equal As Strings    ${resp.json()[0]['policy']['version']}  1.0.0
+    Should Be Equal As Strings    ${resp.json()[0]['action']}  ${expectedAction}
+    Should Be Equal As Strings    ${resp.json()[0]['user']}  healthcheck
+
+QueryPolicyStatus
+     [Documentation]    Verify policy deployment status
+     [Arguments]  ${policyName}  ${pdpGroup}  ${pdpType}  ${pdpName}  ${policyTypeName}
+     ${resp}=  PerformGetRequest  ${POLICY_PAP_IP}  /policy/pap/v1/policies/status  200  null
+     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    ${responseEntry['pdpGroup']}  ${pdpGroup}
+     Should Be Equal As Strings    ${responseEntry['pdpType']}  ${pdpType}
+     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']}  ${policyTypeName}
+     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
+
+PerformPostRequest
+    [Arguments]  ${hostname}  ${url}  ${expectedstatus}  ${postjson}  ${params}
+    ${auth}=  Create List  healthcheck  zb!XztG34
+    Log  Creating session https://${hostname}:6969
+    ${session}=  Create Session  policy  https://${hostname}:6969  auth=${auth}
+    ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
+    ${resp}=  POST On Session  policy  ${url}  data=${postjson}  params=${params}  headers=${headers}  expected_status=${expectedstatus}
+    Log  Received response from policy ${resp.text}
+    [return]  ${resp}
+
+PerformPutRequest
+    [Arguments]  ${hostname}  ${url}  ${expectedstatus}  ${params}
+    ${auth}=  Create List  healthcheck  zb!XztG34
+    Log  Creating session https://${hostname}:6969
+    ${session}=  Create Session  policy  https://${hostname}:6969  auth=${auth}
+    ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
+    ${resp}=  PUT On Session  policy  ${url}  params=${params}  headers=${headers}  expected_status=${expectedstatus}
+    Log  Received response from policy ${resp.text}
+    [return]  ${resp}
+
+PerformGetRequest
+    [Arguments]  ${hostname}  ${url}  ${expectedstatus}  ${params}
+    ${auth}=  Create List  healthcheck  zb!XztG34
+    Log  Creating session https://${hostname}:6969
+    ${session}=  Create Session  policy  https://${hostname}:6969  auth=${auth}
+    ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
+    ${resp}=  GET On Session  policy  ${url}  params=${params}  headers=${headers}  expected_status=${expectedstatus}
+    Log  Received response from policy ${resp.text}
+    [return]  ${resp}
+
+PerformDeleteRequest
+    [Arguments]  ${hostname}  ${url}  ${expectedstatus}
+    ${auth}=  Create List  healthcheck  zb!XztG34
+    Log  Creating session https://${hostname}:6969
+    ${session}=  Create Session  policy  https://${hostname}:6969  auth=${auth}
+    ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
+    ${resp}=  DELETE On Session  policy  ${url}  headers=${headers}  expected_status=${expectedstatus}
+    Log  Received response from policy ${resp.text}
index 7d4f740..d46a8b2 100644 (file)
@@ -5,7 +5,8 @@
         "port": 6969,
         "userName": "healthcheck",
         "password": "zb!XztG34",
-        "https": true
+        "https": true,
+        "prometheus": true
     },
     "pdpStatusParameters":{
         "pdpGroup": "defaultGroup",
index b4cc1ea..ba1a682 100644 (file)
@@ -5,7 +5,8 @@
         "port":6969,
         "userName":"healthcheck",
         "password":"zb!XztG34",
-        "https": true
+        "https": true,
+        "prometheus": true
     },
     "receptionHandlerParameters":{
         "FileReceptionHandler":{
index 8915385..ee55f28 100644 (file)
@@ -3,6 +3,7 @@
 # ONAP
 # ================================================================================
 # Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -40,10 +41,10 @@ http.server.services.SECURED-CONFIG.password=${envd:TELEMETRY_PASSWORD}
 http.server.services.SECURED-CONFIG.restPackages=org.onap.policy.drools.server.restful
 http.server.services.SECURED-CONFIG.managed=false
 http.server.services.SECURED-CONFIG.swagger=true
-http.server.services.SECURED-CONFIG.https=true
+http.server.services.SECURED-CONFIG.https=${envd:HTTP_SERVER_HTTPS:false}
+http.server.services.SECURED-CONFIG.prometheus=${envd:PROMETHEUS:true}
 http.server.services.SECURED-CONFIG.aaf=${envd:AAF:false}
 http.server.services.SECURED-CONFIG.serialization.provider=org.onap.policy.common.gson.JacksonHandler,org.onap.policy.common.endpoints.http.server.YamlJacksonHandler
 
 aaf.namespace=${envd:AAF_NAMESPACE:false}
 aaf.root.permission=${envd:AAF_NAMESPACE:org.onap.policy}.pdpd
-
index d6abeb9..8674961 100644 (file)
@@ -1,5 +1,6 @@
 # ============LICENSE_START==================================================
 # Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
 # ===========================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -55,14 +56,14 @@ AAF=false
 AAF_NAMESPACE=org.onap.policy
 AAF_HOST=aaf.api.simpledemo.onap.org
 
-# Prometheus
-
-PROMETHEUS=false
-
 # HTTP Servers https enabled
 
 HTTP_SERVER_HTTPS=true
 
+# Prometheus
+
+PROMETHEUS=true
+
 # PDP-D DMaaP configuration channel
 
 PDPD_CONFIGURATION_TOPIC=PDPD-CONFIGURATION
index dfc6a7d..4d00d64 100644 (file)
@@ -3,6 +3,7 @@
 # ONAP
 # ================================================================================
 # Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -29,7 +30,8 @@ http.server.services.SECURED-CONFIG.password=${envd:TELEMETRY_PASSWORD}
 http.server.services.SECURED-CONFIG.restPackages=org.onap.policy.drools.server.restful
 http.server.services.SECURED-CONFIG.managed=false
 http.server.services.SECURED-CONFIG.swagger=true
-http.server.services.SECURED-CONFIG.https=true
+http.server.services.SECURED-CONFIG.https=${envd:HTTP_SERVER_HTTPS:false}
+http.server.services.SECURED-CONFIG.prometheus=${envd:PROMETHEUS:true}
 http.server.services.SECURED-CONFIG.aaf=${envd:AAF:false}
 http.server.services.SECURED-CONFIG.serialization.provider=org.onap.policy.common.gson.JacksonHandler,org.onap.policy.common.endpoints.http.server.YamlJacksonHandler
 
index cbb7186..769f8fb 100644 (file)
@@ -1,5 +1,6 @@
 # ============LICENSE_START=======================================================
 # Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -55,14 +56,14 @@ AAF=false
 AAF_NAMESPACE=org.onap.policy
 AAF_HOST=aaf.api.simpledemo.onap.org
 
-# # Prometheus
-
-PROMETHEUS=false
-
 # HTTP Servers https enabled
 
 HTTP_SERVER_HTTPS=true
 
+# Prometheus
+
+PROMETHEUS=true
+
 # PDP-D DMaaP configuration channel
 
 PDPD_CONFIGURATION_TOPIC=PDPD-CONFIGURATION
index 06eb781..b7c5b31 100644 (file)
@@ -6,7 +6,8 @@
         "userName": "healthcheck",
         "password": "zb!XztG34",
         "https": true,
-        "aaf": false
+        "aaf": false,
+        "prometheus": true
     },
     "pdpParameters": {
         "heartBeatMs": 20000,
index a6c502d..f6ee81a 100644 (file)
@@ -8,7 +8,8 @@
         "userName": "healthcheck",
         "password": "zb!XztG34",
         "https": true,
-        "aaf": false
+        "aaf": false,
+        "prometheus": true
     },
     "policyApiParameters": {
         "hostname": "policy-api",
index 64a77e0..2513a6c 100644 (file)
@@ -3,19 +3,25 @@ Library     Collections
 Library     RequestsLibrary
 Library     OperatingSystem
 Library     json
+Resource    ${CURDIR}/../../common-library.robot
 
 *** Test Cases ***
 
 Healthcheck
      [Documentation]  Verify policy distribution health check
-     ${resp}=  PeformGetRequest  /healthcheck  200
+     ${resp}=  PerformGetRequest  ${POLICY_DISTRIBUTION_IP}  /healthcheck  200  null
      Should Be Equal As Strings  ${resp.json()['code']}  200
 
 Statistics
      [Documentation]  Verify policy distribution statistics
-     ${resp}=  PeformGetRequest  /statistics  200
+     ${resp}=  PerformGetRequest  ${POLICY_DISTRIBUTION_IP}  /statistics  200  null
      Should Be Equal As Strings  ${resp.json()['code']}  200
 
+Metrics
+    [Documentation]  Verify policy-distribution is exporting prometheus metrics
+    ${resp}=  PerformGetRequest  ${POLICY_DISTRIBUTION_IP}  /metrics  200  null
+    Should Contain  ${resp.text}  jvm_threads_current
+
 InvokeDistributionAndRunEventOnEngine
      Wait Until Keyword Succeeds  5 min  30 sec  InvokeDistributionUsingFile And RunEventOnApexEngine
 
@@ -30,13 +36,3 @@ InvokeDistributionUsingFile And RunEventOnApexEngine
     &{headers}=  Create Dictionary  Content-Type=application/json  Accept=application/json
     ${resp}=  PUT On Session  apexSession  /apex/FirstConsumer/EventIn  data=${data}  headers=${headers}  expected_status=200
     Remove Files  ${SCRIPT_DIR}/temp/sample_csar_with_apex_policy.csar
-
-PeformGetRequest
-     [Arguments]  ${url}  ${expectedstatus}
-     ${auth}=  Create List  healthcheck  zb!XztG34
-     Log  Creating session https://${POLICY_DISTRIBUTION_IP}:6969
-     ${session}=  Create Session  policy  https://${POLICY_DISTRIBUTION_IP}:6969  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}
index 627ae1b..60bccfe 100644 (file)
@@ -12,6 +12,11 @@ Alive
     ${resp}=  PeformGetRequest  /policy/pdp/engine  ${DROOLS_IP}  9696  200
     Should Be Equal As Strings    ${resp.json()['alive']}  True
 
+Metrics
+    [Documentation]    Verify drools-apps is exporting metrics
+    ${resp}=  PeformGetRequest  /metrics  ${DROOLS_IP}  9696  200
+    Should Contain  ${resp.text}  jvm_threads_current
+
 Healthcheck
     [Documentation]    Runs Policy PDP-D Health check
     ${resp}=  PeformGetRequest  /healthcheck  ${DROOLS_IP}  6969  200
index d819a80..68dc4ea 100644 (file)
@@ -14,3 +14,13 @@ Alive
    ${resp}=  GET On Session  policy  /policy/pdp/engine  headers=${headers}  expected_status=200
    Log  Received response from policy ${resp.text}
    Should Be Equal As Strings  ${resp.json()['alive']}  True
+
+Metrics
+   [Documentation]  Verify drools-pdp is exporting metrics
+   ${auth}=  Create List  demo@people.osaaf.org  demo123456!
+   Log  Creating session https://${POLICY_DROOLS_IP}:9696
+   ${session}=  Create Session  policy  https://${POLICY_DROOLS_IP}:9696  auth=${auth}
+   ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
+   ${resp}=  GET On Session  policy  /metrics  headers=${headers}  expected_status=200
+   Log  Received response from policy ${resp.text}
+   Should Contain  ${resp.text}  jvm_threads_current
index 9b44fe7..a595914 100644 (file)
@@ -3,135 +3,79 @@ Library    Collections
 Library    RequestsLibrary
 Library    OperatingSystem
 Library    json
+Resource    ${CURDIR}/../../common-library.robot
 
 *** Test Cases ***
 LoadPolicy
     [Documentation]  Create a policy named 'onap.restart.tca' and version '1.0.0' using specific api
-    CreatePolicy  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies  200  vCPE.policy.monitoring.input.tosca.json  onap.restart.tca  1.0.0
+    ${postjson}=  Get file  ${DATA}/vCPE.policy.monitoring.input.tosca.json
+    CreatePolicy  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies  200  ${postjson}  onap.restart.tca  1.0.0
 
 Healthcheck
     [Documentation]  Verify policy pap health check
-    ${resp}=  PeformGetRequest  /policy/pap/v1/healthcheck  200  null
+    ${resp}=  PerformGetRequest  ${POLICY_PAP_IP}  /policy/pap/v1/healthcheck  200  null
     Should Be Equal As Strings  ${resp.json()['code']}  200
 
+Metrics
+    [Documentation]  Verify policy pap is exporting prometheus metrics
+    ${resp}=  PerformGetRequest  ${POLICY_PAP_IP}  /metrics  200  null
+    Should Contain  ${resp.text}  jvm_threads_current
+
 Statistics
     [Documentation]  Verify policy pap statistics
-    ${resp}=  PeformGetRequest  /policy/pap/v1/statistics  200  null
+    ${resp}=  PerformGetRequest  ${POLICY_PAP_IP}  /policy/pap/v1/statistics  200  null
     Should Be Equal As Strings  ${resp.json()['code']}  200
 
 AddPdpGroup
     [Documentation]  Add a new PdpGroup named 'testGroup' in the policy database
-    PerformPostRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps/groups/batch  200  create.group.request.json  ${CURDIR}/data
+    ${postjson}=  Get file  ${CURDIR}/data/create.group.request.json
+    PerformPostRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps/groups/batch  200  ${postjson}  null
+
+QueryPdpGroupsBeforeActivation
+    [Documentation]  Verify PdpGroups before activation
+    QueryPdpGroups  2  defaultGroup  ACTIVE  0  testGroup  PASSIVE  0
 
 ActivatePdpGroup
     [Documentation]  Change the state of PdpGroup named 'testGroup' to ACTIVE
-    PerformPutRequest  /policy/pap/v1/pdps/groups/testGroup  200  ACTIVE
+    PerformPutRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps/groups/testGroup  200  state=ACTIVE
 
 QueryPdpGroupsAfterActivation
     [Documentation]  Verify PdpGroups after activation
-    QueryPdpGroups  2  0
+    QueryPdpGroups  2  defaultGroup  ACTIVE  0  testGroup  ACTIVE  0
 
 DeployPdpGroups
     [Documentation]  Deploy policies in PdpGroups
-    PerformPostRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps/deployments/batch  202  deploy.group.request.json  ${CURDIR}/data
+    ${postjson}=  Get file  ${CURDIR}/data/deploy.group.request.json
+    PerformPostRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps/deployments/batch  202  ${postjson}  null
 
 QueryPdpGroupsAfterDeploy
     [Documentation]  Verify PdpGroups after undeploy
-    QueryPdpGroups  2  1
+    QueryPdpGroups  2  defaultGroup  ACTIVE  0  testGroup  ACTIVE  1
 
 QueryPolicyAuditAfterDeploy
     [Documentation]  Verify policy audit record after deploy
-    QueryPolicyAudit  /policy/pap/v1/policies/audit  200  DEPLOYMENT
+    QueryPolicyAudit  /policy/pap/v1/policies/audit  200  testGroup  pdpTypeA  onap.restart.tca  DEPLOYMENT
 
 UndeployPolicy
     [Documentation]  Undeploy a policy named 'onap.restart.tca' from PdpGroups
-    PeformDeleteRequest  /policy/pap/v1/pdps/policies/onap.restart.tca  202
+    PerformDeleteRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps/policies/onap.restart.tca  202
 
 QueryPdpGroupsAfterUndeploy
     [Documentation]  Verify PdpGroups after undeploy
-    QueryPdpGroups  2  0
+    QueryPdpGroups  2  defaultGroup  ACTIVE  0  testGroup  ACTIVE  0
 
 QueryPolicyAuditAfterUnDeploy
     [Documentation]  Verify policy audit record after undeploy
-    QueryPolicyAudit  /policy/pap/v1/policies/audit  200  UNDEPLOYMENT
+    QueryPolicyAudit  /policy/pap/v1/policies/audit  200  testGroup  pdpTypeA  onap.restart.tca  UNDEPLOYMENT
 
 DeactivatePdpGroup
     [Documentation]  Change the state of PdpGroup named 'testGroup' to PASSIVE
-    PerformPutRequest  /policy/pap/v1/pdps/groups/testGroup  200  PASSIVE
+    PerformPutRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps/groups/testGroup  200  state=PASSIVE
 
 DeletePdpGroups
     [Documentation]  Delete the PdpGroup named 'testGroup' from policy database
-    PeformDeleteRequest  /policy/pap/v1/pdps/groups/testGroup  200
+    PerformDeleteRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps/groups/testGroup  200
 
 QueryPdpGroupsAfterDelete
     [Documentation]    Verify PdpGroups after delete
-    QueryPdpGroups  1  0
-
-*** Keywords ***
-
-CreatePolicy
-    [Arguments]  ${url}  ${expectedstatus}  ${jsonfile}  ${policyname}  ${policyversion}
-    [Documentation]  Create the specific policy
-    ${resp}=  PerformPostRequest  ${POLICY_API_IP}  ${url}  ${expectedstatus}  ${jsonfile}  ${DATA}
-    Run Keyword If  ${expectedstatus}==200  Dictionary Should Contain Key  ${resp.json()['topology_template']['policies'][0]}  ${policyname}
-    Run Keyword If  ${expectedstatus}==200  Should Be Equal As Strings  ${resp.json()['topology_template']['policies'][0]['${policyname}']['version']}  ${policyversion}
-
-QueryPdpGroups
-    [Arguments]  ${groupsLength}  ${policiesLength}
-    ${resp}=  PeformGetRequest  /policy/pap/v1/pdps  200  null
-    Length Should Be  ${resp.json()['groups']}  ${groupsLength}
-    Should Be Equal As Strings  ${resp.json()['groups'][0]['name']}  defaultGroup
-    Should Be Equal As Strings  ${resp.json()['groups'][0]['pdpGroupState']}  ACTIVE
-    Run Keyword If  ${groupsLength}>1  Should Be Equal As Strings  ${resp.json()['groups'][1]['name']}  testGroup
-    Run Keyword If  ${groupsLength}>1  Should Be Equal As Strings  ${resp.json()['groups'][1]['pdpGroupState']}  ACTIVE
-    Run Keyword If  ${groupsLength}>1  Length Should Be  ${resp.json()['groups'][1]['pdpSubgroups'][0]['policies']}  ${policiesLength}
-
-QueryPolicyAudit
-    [Arguments]  ${url}  ${expectedstatus}  ${expectedAction}
-    ${resp}=  PeformGetRequest  ${url}  ${expectedstatus}  recordCount=1
-    Should Be Equal As Strings    ${resp.json()[0]['pdpGroup']}  testGroup
-    Should Be Equal As Strings    ${resp.json()[0]['pdpType']}  pdpTypeA
-    Should Be Equal As Strings    ${resp.json()[0]['policy']['name']}  onap.restart.tca
-    Should Be Equal As Strings    ${resp.json()[0]['policy']['version']}  1.0.0
-    Should Be Equal As Strings    ${resp.json()[0]['action']}  ${expectedAction}
-    Should Be Equal As Strings    ${resp.json()[0]['user']}  healthcheck
-
-PerformPostRequest
-    [Arguments]  ${hostname}  ${url}  ${expectedstatus}  ${jsonfile}  ${filepath}
-    ${auth}=  Create List  healthcheck  zb!XztG34
-    ${postjson}=  Get file  ${filepath}/${jsonfile}
-    Log  Creating session https://${hostname}:6969
-    ${session}=  Create Session  policy  https://${hostname}:6969  auth=${auth}
-    ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
-    ${resp}=  POST On Session  policy  ${url}  data=${postjson}  headers=${headers}  expected_status=${expectedstatus}
-    Log  Received response from policy ${resp.text}
-    [return]  ${resp}
-
-PerformPutRequest
-    [Arguments]  ${url}  ${expectedstatus}  ${state}
-    ${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}=  PUT On Session  policy  ${url}  params=state=${state}  headers=${headers}  expected_status=${expectedstatus}
-    Log  Received response from policy ${resp.text}
-    [return]  ${resp}
-
-PeformGetRequest
-    [Arguments]  ${url}  ${expectedstatus}  ${params}
-    ${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  ${url}  params=${params}  headers=${headers}  expected_status=${expectedstatus}
-    Log  Received response from policy ${resp.text}
-    [return]  ${resp}
-
-PeformDeleteRequest
-    [Arguments]  ${url}  ${expectedstatus}
-    ${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}=  DELETE On Session  policy  ${url}  headers=${headers}  expected_status=${expectedstatus}
-    Log  Received response from policy ${resp.text}
+    QueryPdpGroups  1  defaultGroup  ACTIVE  0  null  null  null
index c88959d..c1bba0a 100644 (file)
@@ -4,69 +4,80 @@ Library     RequestsLibrary
 Library     OperatingSystem
 Library     Process
 Library     json
+Resource    ${CURDIR}/../../common-library.robot
 
 *** Test Cases ***
 Healthcheck
      [Documentation]  Verify policy xacml-pdp health check
-     ${resp}=  PeformGetRequest  /policy/pdpx/v1/healthcheck  200
+     ${resp}=  PerformGetRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/healthcheck  200  null
      Should Be Equal As Strings    ${resp.json()['code']}  200
 
 Statistics
      [Documentation]  Verify policy xacml-pdp statistics
-     ${resp}=  PeformGetRequest  /policy/pdpx/v1/statistics  200
+     ${resp}=  PerformGetRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/statistics  200  null
      Should Be Equal As Strings    ${resp.json()['code']}  200
 
+Metrics
+    [Documentation]  Verify policy-xacml-pdp is exporting prometheus metrics
+    ${resp}=  PerformGetRequest  ${POLICY_PDPX_IP}  /metrics  200  null
+    Should Contain  ${resp.text}  jvm_threads_current
+
 MakeTopics
      [Documentation]    Creates the Policy topics
      ${result}=     Run Process     ${SCR_DMAAP}/make_topic.sh   POLICY-PDP-PAP
      Should Be Equal As Integers        ${result.rc}    0
 
 ExecuteXacmlPolicy
-     Wait Until Keyword Succeeds    1 min   15 sec  CreateMonitorPolicy
-     Wait Until Keyword Succeeds    1 min   15 sec  CreateOptimizationPolicy
+     CreateMonitorPolicy
+     CreateOptimizationPolicy
      Wait Until Keyword Succeeds    1 min   15 sec  GetDefaultDecision
-     Wait Until Keyword Succeeds    1 min   15 sec  DeployPolicies
+     DeployPolicies
      Wait Until Keyword Succeeds    1 min   15 sec  GetStatisticsAfterDeployed
      Wait Until Keyword Succeeds    1 min   15 sec  GetAbbreviatedDecisionResult
      Wait Until Keyword Succeeds    1 min   15 sec  GetMonitoringDecision
      Wait Until Keyword Succeeds    1 min   15 sec  GetNamingDecision
      Wait Until Keyword Succeeds    1 min   15 sec  GetOptimizationDecision
      Wait Until Keyword Succeeds    1 min   15 sec  GetStatisticsAfterDecision
-     Wait Until Keyword Succeeds    1 min   15 sec  UndeployMonitorPolicy
+     UndeployMonitorPolicy
      Wait Until Keyword Succeeds    1 min   15 sec  GetStatisticsAfterUndeploy
 
 *** Keywords ***
 
 CreateMonitorPolicy
      [Documentation]  Create a Monitoring policy
-     CreatePolicy  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies  200  vCPE.policy.monitoring.input.tosca.json  onap.restart.tca  1.0.0
+     ${postjson}=  Get file  ${DATA2}/vCPE.policy.monitoring.input.tosca.json
+     CreatePolicy  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies  200  ${postjson}  onap.restart.tca  1.0.0
 
 CreateOptimizationPolicy
      [Documentation]  Create an Optimization policy
-     CreatePolicy  /policy/api/v1/policytypes/onap.policies.optimization.resource.AffinityPolicy/versions/1.0.0/policies  200  vCPE.policies.optimization.input.tosca.json  OSDF_CASABLANCA.Affinity_Default  1.0.0
+     ${postjson}=  Get file  ${DATA2}/vCPE.policies.optimization.input.tosca.json
+     CreatePolicy  /policy/api/v1/policytypes/onap.policies.optimization.resource.AffinityPolicy/versions/1.0.0/policies  200  ${postjson}  OSDF_CASABLANCA.Affinity_Default  1.0.0
 
 GetDefaultDecision
-    [Documentation]  Get Default Decision with no policies in Xacml PDP
-     ${resp}=  PerformPostRequest  /policy/pdpx/v1/decision  abbrev=true  ${POLICY_PDPX_IP}  200  onap.policy.guard.decision.request.json  ${CURDIR}/data
+     [Documentation]  Get Default Decision with no policies in Xacml PDP
+     ${postjson}=  Get file  ${CURDIR}/data/onap.policy.guard.decision.request.json
+     ${resp}=  PerformPostRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/decision  200  ${postjson}  abbrev=true
      ${status}=  Get From Dictionary  ${resp.json()}  status
      Should Be Equal As Strings  ${status}  Permit
 
 DeployPolicies
      [Documentation]   Runs Policy PAP to deploy a policy
-     ${resp}=  PerformPostRequest  /policy/pap/v1/pdps/policies  null  ${POLICY_PAP_IP}  202  vCPE.policy.input.tosca.deploy.json  ${CURDIR}/data
+     ${postjson}=  Get file  ${CURDIR}/data/vCPE.policy.input.tosca.deploy.json
+     PerformPostRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps/policies  202  ${postjson}  null
      ${result}=     Run Process    ${SCR_DMAAP}/wait_topic.sh    POLICY-PDP-PAP
      ...            responseTo    xacml    ACTIVE    onap.restart.tca
      Should Be Equal As Integers        ${result.rc}    0
 
 GetStatisticsAfterDeployed
      [Documentation]  Verify policy xacml-pdp statistics after policy is deployed
-     ${resp}=  PeformGetRequest  /policy/pdpx/v1/statistics  200
+     ${resp}=  PerformGetRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/statistics  200  null
      Should Be Equal As Strings  ${resp.json()['code']}  200
      Should Be Equal As Strings  ${resp.json()['totalPoliciesCount']}  3
 
 GetAbbreviatedDecisionResult
-    [Documentation]    Get Decision with abbreviated results from Policy Xacml PDP
-     ${resp}=  PerformPostRequest  /policy/pdpx/v1/decision  abbrev=true  ${POLICY_PDPX_IP}  200  onap.policy.monitoring.decision.request.json  ${CURDIR}/data
+     [Documentation]    Get Decision with abbreviated results from Policy Xacml PDP
+     ${postjson}=  Get file  ${CURDIR}/data/onap.policy.monitoring.decision.request.json
+     ${resp}=  PerformPostRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/decision  200  ${postjson}  abbrev=true
      ${policy}=    Get From Dictionary    ${resp.json()['policies']}   onap.restart.tca
      Dictionary Should Contain Key    ${policy}    type
      Dictionary Should Contain Key    ${policy}    metadata
@@ -76,8 +87,9 @@ GetAbbreviatedDecisionResult
      Dictionary Should Not Contain Key    ${policy}    version
 
 GetMonitoringDecision
-    [Documentation]    Get Decision from Monitoring Policy Xacml PDP
-     ${resp}=  PerformPostRequest  /policy/pdpx/v1/decision  null  ${POLICY_PDPX_IP}  200  onap.policy.monitoring.decision.request.json  ${CURDIR}/data
+     [Documentation]    Get Decision from Monitoring Policy Xacml PDP
+     ${postjson}=  Get file  ${CURDIR}/data/onap.policy.monitoring.decision.request.json
+     ${resp}=  PerformPostRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/decision  200  ${postjson}  null
      ${policy}=    Get From Dictionary    ${resp.json()['policies']}   onap.restart.tca
      Dictionary Should Contain Key    ${policy}    type
      Dictionary Should Contain Key    ${policy}    metadata
@@ -87,8 +99,9 @@ GetMonitoringDecision
      Dictionary Should Contain Key    ${policy}    version
 
 GetNamingDecision
-    [Documentation]    Get Decision from Naming Policy Xacml PDP
-     ${resp}=  PerformPostRequest  /policy/pdpx/v1/decision  null  ${POLICY_PDPX_IP}  200  onap.policy.naming.decision.request.json  ${CURDIR}/data
+     [Documentation]    Get Decision from Naming Policy Xacml PDP
+     ${postjson}=  Get file  ${CURDIR}/data/onap.policy.naming.decision.request.json
+     ${resp}=  PerformPostRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/decision  200  ${postjson}  null
      ${policy}=    Get From Dictionary    ${resp.json()['policies']}   SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP
      Dictionary Should Contain Key    ${policy}    type
      Dictionary Should Contain Key    ${policy}    type_version
@@ -96,8 +109,9 @@ GetNamingDecision
      Dictionary Should Contain Key    ${policy}    name
 
 GetOptimizationDecision
-    [Documentation]    Get Decision from Optimization Policy Xacml PDP
-     ${resp}=  PerformPostRequest  /policy/pdpx/v1/decision  null  ${POLICY_PDPX_IP}  200  onap.policy.optimization.decision.request.json  ${CURDIR}/data
+     [Documentation]    Get Decision from Optimization Policy Xacml PDP
+     ${postjson}=  Get file  ${CURDIR}/data/onap.policy.optimization.decision.request.json
+     ${resp}=  PerformPostRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/decision  200  ${postjson}  null
      ${policy}=    Get From Dictionary    ${resp.json()['policies']}   OSDF_CASABLANCA.Affinity_Default
      Dictionary Should Contain Key    ${policy}    type
      Dictionary Should Contain Key    ${policy}    type_version
@@ -106,54 +120,17 @@ GetOptimizationDecision
 
 GetStatisticsAfterDecision
      [Documentation]    Runs Policy Xacml PDP Statistics after Decision request
-     ${resp}=  PeformGetRequest  /policy/pdpx/v1/statistics  200
+     ${resp}=  PerformGetRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/statistics  200  null
      Should Be Equal As Strings    ${resp.json()['code']}  200
      Should Be Equal As Strings    ${resp.json()['permitDecisionsCount']}     4
      Should Be Equal As Strings    ${resp.json()['notApplicableDecisionsCount']}     1
 
 UndeployMonitorPolicy
      [Documentation]    Runs Policy PAP to undeploy a policy
-     PeformDeleteRequest  /policy/pap/v1/pdps/policies/onap.restart.tca  202
+     PerformDeleteRequest  ${POLICY_PAP_IP}  /policy/pap/v1/pdps/policies/onap.restart.tca  202
 
 GetStatisticsAfterUndeploy
      [Documentation]    Runs Policy Xacml PDP Statistics after policy is undeployed
-     ${resp}=  PeformGetRequest  /policy/pdpx/v1/statistics  200
+     ${resp}=  PerformGetRequest  ${POLICY_PDPX_IP}  /policy/pdpx/v1/statistics  200  null
      Should Be Equal As Strings    ${resp.json()['code']}  200
      Should Be Equal As Strings    ${resp.json()['totalPoliciesCount']}     2
-
-CreatePolicy
-     [Arguments]  ${url}  ${expectedstatus}  ${jsonfile}  ${policyname}  ${policyversion}
-     [Documentation]  Create the specific policy
-     ${resp}=  PerformPostRequest  ${url}  null  ${POLICY_API_IP}  ${expectedstatus}  ${jsonfile}  ${DATA2}
-     Run Keyword If  ${expectedstatus}==200  Dictionary Should Contain Key  ${resp.json()['topology_template']['policies'][0]}  ${policyname}
-     Run Keyword If  ${expectedstatus}==200  Should Be Equal As Strings  ${resp.json()['topology_template']['policies'][0]['${policyname}']['version']}  ${policyversion}
-
-PerformPostRequest
-     [Arguments]  ${url}  ${params}  ${hostname}  ${expectedstatus}  ${jsonfile}  ${filepath}
-     ${auth}=  Create List  healthcheck  zb!XztG34
-     ${postjson}=  Get file  ${filepath}/${jsonfile}
-     Log  Creating session https://${hostname}:6969
-     ${session}=  Create Session  policy  https://${hostname}:6969  auth=${auth}
-     ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
-     ${resp}=  POST On Session  policy  ${url}  params=${params}  data=${postjson}  headers=${headers}  expected_status=${expectedstatus}
-     Log  Received response from policy ${resp.text}
-     [return]  ${resp}
-
-PeformGetRequest
-     [Arguments]  ${url}  ${expectedstatus}
-     ${auth}=  Create List  healthcheck  zb!XztG34
-     Log  Creating session https://${POLICY_PDPX_IP}:6969
-     ${session}=  Create Session  policy  https://${POLICY_PDPX_IP}:6969  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}
-
-PeformDeleteRequest
-     [Arguments]  ${url}  ${expectedstatus}
-     ${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}=  DELETE On Session  policy  ${url}  headers=${headers}  expected_status=${expectedstatus}
-     Log  Received response from policy ${resp.text}