summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--csit/apex-pdp/tests/apex-pdp-test.robot81
-rw-r--r--csit/api/tests/api-test.robot78
-rw-r--r--csit/common-library.robot94
-rw-r--r--csit/config/apex-pdp/OnapPfConfig.json3
-rw-r--r--csit/config/distribution/defaultConfig.json3
-rw-r--r--csit/config/drools-apps/custom/engine.properties5
-rw-r--r--csit/config/drools-apps/env/base.conf9
-rw-r--r--csit/config/drools/custom/engine.properties4
-rw-r--r--csit/config/drools/env/base.conf9
-rw-r--r--csit/config/pap/defaultConfig.json3
-rw-r--r--csit/config/xacml-pdp/defaultConfig.json3
-rw-r--r--csit/distribution/tests/distribution-test.robot20
-rw-r--r--csit/drools-applications/tests/drools-applications-test.robot5
-rw-r--r--csit/drools-pdp/tests/drools-pdp-test.robot10
-rw-r--r--csit/pap/tests/pap-test.robot112
-rw-r--r--csit/xacml-pdp/tests/xacml-pdp-test.robot97
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0100-pdp.sql (renamed from policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0120-pdp.sql)0
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0110-idx_tsidx1.sql (renamed from policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0130-idx_tsidx1.sql)0
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0120-pk_pdpstatistics.sql (renamed from policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0160-pk_pdpstatistics.sql)4
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0130-pdpstatistics.sql20
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0140-pk_pdpstatistics.sql4
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0150-pdpstatistics.sql2
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0160-jpapdpstatistics_enginestats.sql (renamed from policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0110-jpapdpstatistics_enginestats.sql)0
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0170-jpapdpstatistics_enginestats.sql22
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0180-jpapdpstatistics_enginestats.sql (renamed from policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0100-jpapdpstatistics_enginestats.sql)0
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0190-jpapolicyaudit.sql (renamed from policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0180-jpapolicyaudit.sql)0
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0200-JpaPolicyAuditIndex_timestamp.sql (renamed from policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0190-JpaPolicyAuditIndex_timestamp.sql)0
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0210-sequence.sql2
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0220-sequence.sql (renamed from policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0200-sequence.sql)2
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0100-pdp.sql (renamed from policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0120-pdp.sql)0
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0110-idx_tsidx1.sql (renamed from policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0130-idx_tsidx1.sql)0
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0120-pk_pdpstatistics.sql (renamed from policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0170-pdpstatistics.sql)2
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0130-pdpstatistics.sql20
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0140-pk_pdpstatistics.sql4
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0150-pdpstatistics.sql2
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0160-jpapdpstatistics_enginestats.sql (renamed from policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0110-jpapdpstatistics_enginestats.sql)0
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0160-pk_pdpstatistics.sql22
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0170-jpapdpstatistics_enginestats.sql22
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0180-jpapdpstatistics_enginestats.sql (renamed from policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0100-jpapdpstatistics_enginestats.sql)0
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0190-jpapolicyaudit.sql (renamed from policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0180-jpapolicyaudit.sql)0
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0200-JpaPolicyAuditIndex_timestamp.sql (renamed from policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0190-JpaPolicyAuditIndex_timestamp.sql)0
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0200-sequence.sql20
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0210-sequence.sql2
-rw-r--r--policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0220-sequence.sql (renamed from policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0170-pdpstatistics.sql)2
44 files changed, 351 insertions, 337 deletions
diff --git a/csit/apex-pdp/tests/apex-pdp-test.robot b/csit/apex-pdp/tests/apex-pdp-test.robot
index f2f82e9c..60497229 100644
--- a/csit/apex-pdp/tests/apex-pdp-test.robot
+++ b/csit/apex-pdp/tests/apex-pdp-test.robot
@@ -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
diff --git a/csit/api/tests/api-test.robot b/csit/api/tests/api-test.robot
index 2123b1e5..1f94c9ce 100644
--- a/csit/api/tests/api-test.robot
+++ b/csit/api/tests/api-test.robot
@@ -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
index 00000000..639d32a8
--- /dev/null
+++ b/csit/common-library.robot
@@ -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}
diff --git a/csit/config/apex-pdp/OnapPfConfig.json b/csit/config/apex-pdp/OnapPfConfig.json
index 7d4f7409..d46a8b20 100644
--- a/csit/config/apex-pdp/OnapPfConfig.json
+++ b/csit/config/apex-pdp/OnapPfConfig.json
@@ -5,7 +5,8 @@
"port": 6969,
"userName": "healthcheck",
"password": "zb!XztG34",
- "https": true
+ "https": true,
+ "prometheus": true
},
"pdpStatusParameters":{
"pdpGroup": "defaultGroup",
diff --git a/csit/config/distribution/defaultConfig.json b/csit/config/distribution/defaultConfig.json
index b4cc1ea5..ba1a682c 100644
--- a/csit/config/distribution/defaultConfig.json
+++ b/csit/config/distribution/defaultConfig.json
@@ -5,7 +5,8 @@
"port":6969,
"userName":"healthcheck",
"password":"zb!XztG34",
- "https": true
+ "https": true,
+ "prometheus": true
},
"receptionHandlerParameters":{
"FileReceptionHandler":{
diff --git a/csit/config/drools-apps/custom/engine.properties b/csit/config/drools-apps/custom/engine.properties
index 8915385d..ee55f28a 100644
--- a/csit/config/drools-apps/custom/engine.properties
+++ b/csit/config/drools-apps/custom/engine.properties
@@ -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
-
diff --git a/csit/config/drools-apps/env/base.conf b/csit/config/drools-apps/env/base.conf
index d6abeb9b..86749619 100644
--- a/csit/config/drools-apps/env/base.conf
+++ b/csit/config/drools-apps/env/base.conf
@@ -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
diff --git a/csit/config/drools/custom/engine.properties b/csit/config/drools/custom/engine.properties
index dfc6a7db..4d00d647 100644
--- a/csit/config/drools/custom/engine.properties
+++ b/csit/config/drools/custom/engine.properties
@@ -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
diff --git a/csit/config/drools/env/base.conf b/csit/config/drools/env/base.conf
index cbb7186a..769f8fb9 100644
--- a/csit/config/drools/env/base.conf
+++ b/csit/config/drools/env/base.conf
@@ -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
diff --git a/csit/config/pap/defaultConfig.json b/csit/config/pap/defaultConfig.json
index 06eb7813..b7c5b310 100644
--- a/csit/config/pap/defaultConfig.json
+++ b/csit/config/pap/defaultConfig.json
@@ -6,7 +6,8 @@
"userName": "healthcheck",
"password": "zb!XztG34",
"https": true,
- "aaf": false
+ "aaf": false,
+ "prometheus": true
},
"pdpParameters": {
"heartBeatMs": 20000,
diff --git a/csit/config/xacml-pdp/defaultConfig.json b/csit/config/xacml-pdp/defaultConfig.json
index a6c502d4..f6ee81a4 100644
--- a/csit/config/xacml-pdp/defaultConfig.json
+++ b/csit/config/xacml-pdp/defaultConfig.json
@@ -8,7 +8,8 @@
"userName": "healthcheck",
"password": "zb!XztG34",
"https": true,
- "aaf": false
+ "aaf": false,
+ "prometheus": true
},
"policyApiParameters": {
"hostname": "policy-api",
diff --git a/csit/distribution/tests/distribution-test.robot b/csit/distribution/tests/distribution-test.robot
index 64a77e06..2513a6ca 100644
--- a/csit/distribution/tests/distribution-test.robot
+++ b/csit/distribution/tests/distribution-test.robot
@@ -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}
diff --git a/csit/drools-applications/tests/drools-applications-test.robot b/csit/drools-applications/tests/drools-applications-test.robot
index 627ae1b0..60bccfed 100644
--- a/csit/drools-applications/tests/drools-applications-test.robot
+++ b/csit/drools-applications/tests/drools-applications-test.robot
@@ -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
diff --git a/csit/drools-pdp/tests/drools-pdp-test.robot b/csit/drools-pdp/tests/drools-pdp-test.robot
index d819a808..68dc4ead 100644
--- a/csit/drools-pdp/tests/drools-pdp-test.robot
+++ b/csit/drools-pdp/tests/drools-pdp-test.robot
@@ -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
diff --git a/csit/pap/tests/pap-test.robot b/csit/pap/tests/pap-test.robot
index 9b44fe77..a5959141 100644
--- a/csit/pap/tests/pap-test.robot
+++ b/csit/pap/tests/pap-test.robot
@@ -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
diff --git a/csit/xacml-pdp/tests/xacml-pdp-test.robot b/csit/xacml-pdp/tests/xacml-pdp-test.robot
index c88959d0..c1bba0af 100644
--- a/csit/xacml-pdp/tests/xacml-pdp-test.robot
+++ b/csit/xacml-pdp/tests/xacml-pdp-test.robot
@@ -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}
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0120-pdp.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0100-pdp.sql
index f10c8501..f10c8501 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0120-pdp.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0100-pdp.sql
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0130-idx_tsidx1.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0110-idx_tsidx1.sql
index bf9927a3..bf9927a3 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0130-idx_tsidx1.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0110-idx_tsidx1.sql
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0160-pk_pdpstatistics.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0120-pk_pdpstatistics.sql
index 012344b9..b3d4767d 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0160-pk_pdpstatistics.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0120-pk_pdpstatistics.sql
@@ -17,6 +17,4 @@
* ============LICENSE_END=========================================================
*/
-ALTER TABLE pdpstatistics DROP CONSTRAINT PRIMARY KEY;
-
-UPDATE pdpstatistics set ID = 0;
+ALTER TABLE pdpstatistics ADD CONSTRAINT PK_PDPSTATISTICS PRIMARY KEY (timeStamp, name, version);
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0130-pdpstatistics.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0130-pdpstatistics.sql
new file mode 100644
index 00000000..461f147b
--- /dev/null
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0130-pdpstatistics.sql
@@ -0,0 +1,20 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+ALTER TABLE pdpstatistics DROP COLUMN POLICYUNDEPLOYCOUNT, DROP COLUMN POLICYUNDEPLOYFAILCOUNT, DROP COLUMN POLICYUNDEPLOYSUCCESSCOUNT, DROP COLUMN ID;
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0140-pk_pdpstatistics.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0140-pk_pdpstatistics.sql
index b3d4767d..012344b9 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0140-pk_pdpstatistics.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0140-pk_pdpstatistics.sql
@@ -17,4 +17,6 @@
* ============LICENSE_END=========================================================
*/
-ALTER TABLE pdpstatistics ADD CONSTRAINT PK_PDPSTATISTICS PRIMARY KEY (timeStamp, name, version);
+ALTER TABLE pdpstatistics DROP CONSTRAINT PRIMARY KEY;
+
+UPDATE pdpstatistics set ID = 0;
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0150-pdpstatistics.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0150-pdpstatistics.sql
index 461f147b..4bf55e84 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0150-pdpstatistics.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0150-pdpstatistics.sql
@@ -17,4 +17,4 @@
* ============LICENSE_END=========================================================
*/
-ALTER TABLE pdpstatistics DROP COLUMN POLICYUNDEPLOYCOUNT, DROP COLUMN POLICYUNDEPLOYFAILCOUNT, DROP COLUMN POLICYUNDEPLOYSUCCESSCOUNT, DROP COLUMN ID;
+ALTER TABLE pdpstatistics MODIFY COLUMN timeStamp datetime NOT NULL;
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0110-jpapdpstatistics_enginestats.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0160-jpapdpstatistics_enginestats.sql
index e3b5a487..e3b5a487 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0110-jpapdpstatistics_enginestats.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0160-jpapdpstatistics_enginestats.sql
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0170-jpapdpstatistics_enginestats.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0170-jpapdpstatistics_enginestats.sql
new file mode 100644
index 00000000..7163431b
--- /dev/null
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0170-jpapdpstatistics_enginestats.sql
@@ -0,0 +1,22 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+UPDATE jpapdpstatistics_enginestats a
+ JOIN pdpstatistics b
+ ON a.name = b.name AND a.version = b.version AND a.id = b.id
+ SET a.timeStamp = b.timeStamp;
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0100-jpapdpstatistics_enginestats.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0180-jpapdpstatistics_enginestats.sql
index 64b1ad54..64b1ad54 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0100-jpapdpstatistics_enginestats.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0180-jpapdpstatistics_enginestats.sql
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0180-jpapolicyaudit.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0190-jpapolicyaudit.sql
index b51d8769..b51d8769 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0180-jpapolicyaudit.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0190-jpapolicyaudit.sql
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0190-JpaPolicyAuditIndex_timestamp.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0200-JpaPolicyAuditIndex_timestamp.sql
index 68265c5b..68265c5b 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0190-JpaPolicyAuditIndex_timestamp.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0200-JpaPolicyAuditIndex_timestamp.sql
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0210-sequence.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0210-sequence.sql
index 6e3eb083..553b1f16 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0210-sequence.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0210-sequence.sql
@@ -17,4 +17,4 @@
* ============LICENSE_END=========================================================
*/
-DELETE from sequence;
+DROP TABLE IF EXISTS `sequence`;
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0200-sequence.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0220-sequence.sql
index 553b1f16..6e3eb083 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0200-sequence.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0220-sequence.sql
@@ -17,4 +17,4 @@
* ============LICENSE_END=========================================================
*/
-DROP TABLE IF EXISTS `sequence`;
+DELETE from sequence;
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0120-pdp.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0100-pdp.sql
index 57a551da..57a551da 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0120-pdp.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0100-pdp.sql
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0130-idx_tsidx1.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0110-idx_tsidx1.sql
index 864e4f03..864e4f03 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0130-idx_tsidx1.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0110-idx_tsidx1.sql
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0170-pdpstatistics.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0120-pk_pdpstatistics.sql
index 98e26993..4066c012 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0170-pdpstatistics.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0120-pk_pdpstatistics.sql
@@ -17,4 +17,4 @@
* ============LICENSE_END=========================================================
*/
-ALTER TABLE pdpstatistics MODIFY COLUMN timeStamp datetime NULL;
+ALTER TABLE pdpstatistics DROP PRIMARY KEY;
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0130-pdpstatistics.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0130-pdpstatistics.sql
new file mode 100644
index 00000000..c4a1123e
--- /dev/null
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0130-pdpstatistics.sql
@@ -0,0 +1,20 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+ALTER TABLE pdpstatistics ADD COLUMN POLICYUNDEPLOYCOUNT BIGINT DEFAULT NULL NULL AFTER POLICYEXECUTEDSUCCESSCOUNT, ADD COLUMN POLICYUNDEPLOYFAILCOUNT BIGINT DEFAULT NULL NULL, ADD COLUMN POLICYUNDEPLOYSUCCESSCOUNT BIGINT DEFAULT NULL NULL, ADD COLUMN ID BIGINT NOT NULL;
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0140-pk_pdpstatistics.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0140-pk_pdpstatistics.sql
index 4066c012..b8a96b68 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0140-pk_pdpstatistics.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0140-pk_pdpstatistics.sql
@@ -17,4 +17,6 @@
* ============LICENSE_END=========================================================
*/
-ALTER TABLE pdpstatistics DROP PRIMARY KEY;
+UPDATE pdpstatistics as p JOIN (SELECT name, version, timeStamp, ROW_NUMBER() OVER (ORDER BY timeStamp ASC) AS row_num FROM pdpstatistics GROUP BY name, version, timeStamp) AS t ON (p.name=t.name AND p.version=t.version AND p.timeStamp = t.timeStamp) SET p.id=t.row_num;
+
+ALTER TABLE pdpstatistics ADD CONSTRAINT PK_PDPSTATISTICS PRIMARY KEY (ID, name, version);
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0150-pdpstatistics.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0150-pdpstatistics.sql
index c4a1123e..98e26993 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0150-pdpstatistics.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0150-pdpstatistics.sql
@@ -17,4 +17,4 @@
* ============LICENSE_END=========================================================
*/
-ALTER TABLE pdpstatistics ADD COLUMN POLICYUNDEPLOYCOUNT BIGINT DEFAULT NULL NULL AFTER POLICYEXECUTEDSUCCESSCOUNT, ADD COLUMN POLICYUNDEPLOYFAILCOUNT BIGINT DEFAULT NULL NULL, ADD COLUMN POLICYUNDEPLOYSUCCESSCOUNT BIGINT DEFAULT NULL NULL, ADD COLUMN ID BIGINT NOT NULL;
+ALTER TABLE pdpstatistics MODIFY COLUMN timeStamp datetime NULL;
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0110-jpapdpstatistics_enginestats.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0160-jpapdpstatistics_enginestats.sql
index 6e5bfecd..6e5bfecd 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0110-jpapdpstatistics_enginestats.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0160-jpapdpstatistics_enginestats.sql
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0160-pk_pdpstatistics.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0160-pk_pdpstatistics.sql
deleted file mode 100644
index b8a96b68..00000000
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0160-pk_pdpstatistics.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-UPDATE pdpstatistics as p JOIN (SELECT name, version, timeStamp, ROW_NUMBER() OVER (ORDER BY timeStamp ASC) AS row_num FROM pdpstatistics GROUP BY name, version, timeStamp) AS t ON (p.name=t.name AND p.version=t.version AND p.timeStamp = t.timeStamp) SET p.id=t.row_num;
-
-ALTER TABLE pdpstatistics ADD CONSTRAINT PK_PDPSTATISTICS PRIMARY KEY (ID, name, version);
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0170-jpapdpstatistics_enginestats.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0170-jpapdpstatistics_enginestats.sql
new file mode 100644
index 00000000..ce78c340
--- /dev/null
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0170-jpapdpstatistics_enginestats.sql
@@ -0,0 +1,22 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+UPDATE jpapdpstatistics_enginestats a
+ JOIN pdpstatistics b
+ ON a.name = b.name AND a.version = b.version AND a.timeStamp = b.timeStamp
+ SET a.id = b.id;
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0100-jpapdpstatistics_enginestats.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0180-jpapdpstatistics_enginestats.sql
index 16825f4f..16825f4f 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0100-jpapdpstatistics_enginestats.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0180-jpapdpstatistics_enginestats.sql
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0180-jpapolicyaudit.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0190-jpapolicyaudit.sql
index a31d2421..a31d2421 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0180-jpapolicyaudit.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0190-jpapolicyaudit.sql
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0190-JpaPolicyAuditIndex_timestamp.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0200-JpaPolicyAuditIndex_timestamp.sql
index d789d118..d789d118 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0190-JpaPolicyAuditIndex_timestamp.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0200-JpaPolicyAuditIndex_timestamp.sql
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0200-sequence.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0200-sequence.sql
deleted file mode 100644
index 64d6f01b..00000000
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0200-sequence.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-CREATE TABLE IF NOT EXISTS sequence (SEQ_NAME VARCHAR(50) NOT NULL, SEQ_COUNT DECIMAL(38) DEFAULT NULL NULL, CONSTRAINT PK_SEQUENCE PRIMARY KEY (SEQ_NAME));
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0210-sequence.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0210-sequence.sql
index c90905ef..64d6f01b 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0210-sequence.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0210-sequence.sql
@@ -17,4 +17,4 @@
* ============LICENSE_END=========================================================
*/
-INSERT INTO sequence(SEQ_NAME, SEQ_COUNT) VALUES('SEQ_GEN', (SELECT IFNULL(max(id),0) FROM pdpstatistics));
+CREATE TABLE IF NOT EXISTS sequence (SEQ_NAME VARCHAR(50) NOT NULL, SEQ_COUNT DECIMAL(38) DEFAULT NULL NULL, CONSTRAINT PK_SEQUENCE PRIMARY KEY (SEQ_NAME));
diff --git a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0170-pdpstatistics.sql b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0220-sequence.sql
index 4bf55e84..c90905ef 100644
--- a/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/downgrade/0170-pdpstatistics.sql
+++ b/policy-db-migrator/src/main/docker/config/policyadmin/sql/0900/upgrade/0220-sequence.sql
@@ -17,4 +17,4 @@
* ============LICENSE_END=========================================================
*/
-ALTER TABLE pdpstatistics MODIFY COLUMN timeStamp datetime NOT NULL;
+INSERT INTO sequence(SEQ_NAME, SEQ_COUNT) VALUES('SEQ_GEN', (SELECT IFNULL(max(id),0) FROM pdpstatistics));