diff options
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)); |