From 9f54c00e36c66ffbd232f443a0a56114d06361dc Mon Sep 17 00:00:00 2001 From: Bilal A Date: Thu, 16 Jan 2020 16:12:19 +0000 Subject: [PATCH] Updating the jdk version from jdk8 to jdk11 for CSITs Removes JAVA_HOME for drools pdp Updates Policy API tests Updates XACML-PDP database connection Downloads dmaap simulator instead of compiling it for xacml-pdp,apex-pdp and distribution Changes from Jim, Jorge and Chenfei Issue-ID: POLICY-2325 Change-Id: I28ff3384f9ae9b7d1ce6940eb62aa87278e7a9c5 Signed-off-by: Bilal A --- plans/policy/apex-pdp/setup.sh | 27 +-- plans/policy/distribution/setup.sh | 28 +-- plans/policy/xacml-pdp/setup.sh | 30 +-- scripts/policy/config/drools/base.conf | 3 +- scripts/policy/config/policy-csit.conf | 1 + scripts/policy/policy-models-dmaap-sim.sh | 35 ++++ scripts/policy/policy-xacml-pdp/config/db/db.sh | 6 +- tests/policy/api/api-test.robot | 100 +++++++--- ...p.policy.monitoring.cdap.tca.hi.lo.app.v1.json} | 0 ...ap.policy.monitoring.cdap.tca.hi.lo.app.v2.json | 209 +++++++++++++++++++++ ... => vCPE.policy.monitoring.input.tosca.v1.json} | 2 +- .../vCPE.policy.monitoring.input.tosca.v2.json | 51 +++++ tests/policy/xacml-pdp/xacml-pdp-test.robot | 15 -- 13 files changed, 390 insertions(+), 117 deletions(-) create mode 100644 scripts/policy/policy-models-dmaap-sim.sh mode change 100644 => 100755 scripts/policy/policy-xacml-pdp/config/db/db.sh rename tests/policy/api/data/{onap.policy.monitoring.cdap.tca.hi.lo.app.json => onap.policy.monitoring.cdap.tca.hi.lo.app.v1.json} (100%) create mode 100644 tests/policy/api/data/onap.policy.monitoring.cdap.tca.hi.lo.app.v2.json rename tests/policy/api/data/{vCPE.policy.monitoring.input.tosca.json => vCPE.policy.monitoring.input.tosca.v1.json} (98%) create mode 100644 tests/policy/api/data/vCPE.policy.monitoring.input.tosca.v2.json diff --git a/plans/policy/apex-pdp/setup.sh b/plans/policy/apex-pdp/setup.sh index 6a1f37fa..377ce4b1 100644 --- a/plans/policy/apex-pdp/setup.sh +++ b/plans/policy/apex-pdp/setup.sh @@ -3,7 +3,7 @@ # Copyright (C) 2018 Ericsson. All rights reserved. # # Modifications copyright (c) 2019 Nordix Foundation. -# Modifications Copyright (C) 2019 AT&T Intellectual Property. +# Modifications Copyright (C) 2020 AT&T Intellectual Property. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -46,30 +46,9 @@ if [[ ! "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then exit 1 fi -# bring down maven -mkdir maven -cd maven -# download maven from automatically selected mirror server -curl -vLO "https://www.apache.org/dyn/mirrors/mirrors.cgi?cca2=us&preferred=http://apache.claz.org/&action=download&filename=maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz" -if ! tar -xzvf apache-maven-3.3.9-bin.tar.gz ; then - echo "Installation of maven has failed!" - exit 1 -fi -ls -l -export PATH=${PATH}:${WORK_DIR}/maven/apache-maven-3.3.9/bin -${WORK_DIR}/maven/apache-maven-3.3.9/bin/mvn -v -cd .. - -git clone http://gerrit.onap.org/r/oparent -git clone --depth 1 https://gerrit.onap.org/r/policy/models -b ${GERRIT_BRANCH} -cd models/models-sim/models-sim-dmaap -${WORK_DIR}/maven/apache-maven-3.3.9/bin/mvn clean install -DskipTests --settings ${WORK_DIR}/oparent/settings.xml -bash ./src/main/package/docker/docker_build.sh -cd ${WORKSPACE} -rm -rf ${WORK_DIR} -sleep 3 - sudo apt-get -y install libxml2-utils +bash ${SCRIPTS}/policy/policy-models-dmaap-sim.sh + POLICY_API_VERSION_EXTRACT="$(curl -q --silent https://git.onap.org/policy/api/plain/pom.xml?h=${GERRIT_BRANCH} | xmllint --xpath '/*[local-name()="project"]/*[local-name()="version"]/text()' -)" export POLICY_API_VERSION="${POLICY_API_VERSION_EXTRACT:0:3}-SNAPSHOT-latest" POLICY_PAP_VERSION_EXTRACT="$(curl -q --silent https://git.onap.org/policy/pap/plain/pom.xml?h=${GERRIT_BRANCH} | xmllint --xpath '/*[local-name()="project"]/*[local-name()="version"]/text()' -)" diff --git a/plans/policy/distribution/setup.sh b/plans/policy/distribution/setup.sh index 940b0c6f..d1a08632 100644 --- a/plans/policy/distribution/setup.sh +++ b/plans/policy/distribution/setup.sh @@ -3,7 +3,7 @@ # Copyright (C) 2018 Ericsson. All rights reserved. # # Modifications copyright (c) 2019 Nordix Foundation. -# Modifications Copyright (C) 2019 AT&T Intellectual Property. +# Modifications Copyright (C) 2020 AT&T Intellectual Property. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,7 +19,6 @@ # # SPDX-License-Identifier: Apache-2.0 # ============LICENSE_END========================================================= - source ${SCRIPTS}/policy/config/policy-csit.conf export POLICY_MARIADB_VER echo ${GERRIT_BRANCH} @@ -47,30 +46,9 @@ if [[ ! "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then exit 1 fi -# bring down maven -mkdir maven -cd maven -# download maven from automatically selected mirror server -curl -vLO "https://www.apache.org/dyn/mirrors/mirrors.cgi?cca2=us&preferred=http://apache.claz.org/&action=download&filename=maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz" -if ! tar -xzvf apache-maven-3.3.9-bin.tar.gz ; then - echo "Installation of maven has failed!" - exit 1 -fi -ls -l -export PATH=${PATH}:${WORK_DIR}/maven/apache-maven-3.3.9/bin -${WORK_DIR}/maven/apache-maven-3.3.9/bin/mvn -v -cd .. - -git clone http://gerrit.onap.org/r/oparent -git clone --depth 1 https://gerrit.onap.org/r/policy/models -b ${GERRIT_BRANCH} -cd models/models-sim/models-sim-dmaap -${WORK_DIR}/maven/apache-maven-3.3.9/bin/mvn clean install -DskipTests --settings ${WORK_DIR}/oparent/settings.xml -bash ./src/main/package/docker/docker_build.sh -cd ${WORKSPACE} -rm -rf ${WORK_DIR} -sleep 3 - sudo apt-get -y install libxml2-utils +bash ${SCRIPTS}/policy/policy-models-dmaap-sim.sh + POLICY_API_VERSION_EXTRACT="$(curl -q --silent https://git.onap.org/policy/api/plain/pom.xml?h=${GERRIT_BRANCH} | xmllint --xpath '/*[local-name()="project"]/*[local-name()="version"]/text()' -)" export POLICY_API_VERSION="${POLICY_API_VERSION_EXTRACT:0:3}-SNAPSHOT-latest" POLICY_PAP_VERSION_EXTRACT="$(curl -q --silent https://git.onap.org/policy/pap/plain/pom.xml?h=${GERRIT_BRANCH} | xmllint --xpath '/*[local-name()="project"]/*[local-name()="version"]/text()' -)" diff --git a/plans/policy/xacml-pdp/setup.sh b/plans/policy/xacml-pdp/setup.sh index e66102c6..79c43070 100644 --- a/plans/policy/xacml-pdp/setup.sh +++ b/plans/policy/xacml-pdp/setup.sh @@ -1,6 +1,6 @@ #!/bin/bash # ============LICENSE_START======================================================= -# Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. +# Copyright (C) 2020 AT&T Intellectual Property. 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. @@ -44,32 +44,9 @@ if [[ ! "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then exit 1 fi -# bring down maven -mkdir maven -cd maven -# download maven from automatically selected mirror server -curl -vLO "https://www.apache.org/dyn/mirrors/mirrors.cgi?cca2=us&preferred=http://apache.claz.org/&action=download&filename=maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz" -if ! tar -xzvf apache-maven-3.3.9-bin.tar.gz ; then - echo "Installation of maven has failed!" - exit 1 -fi -ls -l -export PATH=${PATH}:${WORK_DIR}/maven/apache-maven-3.3.9/bin -${WORK_DIR}/maven/apache-maven-3.3.9/bin/mvn -v -cd .. - -git clone http://gerrit.onap.org/r/oparent -git clone --depth 1 https://gerrit.onap.org/r/policy/models -b ${GERRIT_BRANCH} -cd models/models-sim/models-sim-dmaap -${WORK_DIR}/maven/apache-maven-3.3.9/bin/mvn clean install -DskipTests --settings ${WORK_DIR}/oparent/settings.xml -bash ./src/main/package/docker/docker_build.sh -cd ${WORKSPACE} -rm -rf ${WORK_DIR} -sleep 3 - - - sudo apt-get -y install libxml2-utils +bash ${SCRIPTS}/policy/policy-models-dmaap-sim.sh + POLICY_API_VERSION_EXTRACT="$(curl -q --silent https://git.onap.org/policy/api/plain/pom.xml?h=${GERRIT_BRANCH} | xmllint --xpath '/*[local-name()="project"]/*[local-name()="version"]/text()' -)" export POLICY_API_VERSION="${POLICY_API_VERSION_EXTRACT:0:3}-SNAPSHOT-latest" POLICY_PAP_VERSION_EXTRACT="$(curl -q --silent https://git.onap.org/policy/pap/plain/pom.xml?h=${GERRIT_BRANCH} | xmllint --xpath '/*[local-name()="project"]/*[local-name()="version"]/text()' -)" @@ -80,6 +57,7 @@ export POLICY_XACML_PDP_VERSION="${POLICY_XACML_PDP_VERSION_EXTRACT:0:3}-SNAPSHO echo ${POLICY_API_VERSION} echo ${POLICY_PAP_VERSION} echo ${POLICY_XACML_PDP_VERSION} + # Adding this waiting container due to race condition between pap and mariadb docker-compose -f ${WORKSPACE}/scripts/policy/policy-xacml-pdp/docker-compose-pdpx.yml run --rm start_dependencies diff --git a/scripts/policy/config/drools/base.conf b/scripts/policy/config/drools/base.conf index d3164cb5..1e57226a 100644 --- a/scripts/policy/config/drools/base.conf +++ b/scripts/policy/config/drools/base.conf @@ -1,5 +1,5 @@ # ============LICENSE_START======================================================= -# Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. +# Copyright (C) 2020 AT&T Intellectual Property. 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. @@ -22,7 +22,6 @@ JVM_OPTIONS=-server -Xms512m -Xmx512m POLICY_HOME=/opt/app/policy POLICY_LOGS=/var/log/onap/policy/pdpd -JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk KEYSTORE_PASSWD=Pol1cy_0nap TRUSTSTORE_PASSWD=Pol1cy_0nap diff --git a/scripts/policy/config/policy-csit.conf b/scripts/policy/config/policy-csit.conf index aa5f9396..1858698a 100644 --- a/scripts/policy/config/policy-csit.conf +++ b/scripts/policy/config/policy-csit.conf @@ -1,2 +1,3 @@ GERRIT_BRANCH=master POLICY_MARIADB_VER=10.2.25 +NEXUS_URL=https://nexus.onap.org/content/repositories/snapshots diff --git a/scripts/policy/policy-models-dmaap-sim.sh b/scripts/policy/policy-models-dmaap-sim.sh new file mode 100644 index 00000000..0abd9f94 --- /dev/null +++ b/scripts/policy/policy-models-dmaap-sim.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# ============LICENSE_START======================================================= +# Copyright (C) 2020 AT&T Intellectual Property. 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. +# 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========================================================= + +source ${SCRIPTS}/policy/config/policy-csit.conf + +POLICY_MODELS_VERSION_EXTRACT="$(curl -q --silent https://git.onap.org/policy/models/plain/pom.xml?h=${GERRIT_BRANCH} | xmllint --xpath '/*[local-name()="project"]/*[local-name()="version"]/text()' -)" +export POLICY_MODELS_VERSION="${POLICY_MODELS_VERSION_EXTRACT}" +echo ${POLICY_MODELS_VERSION} + +# download dmaap tarball and build docker image +git clone --depth 1 https://gerrit.onap.org/r/policy/models -b ${GERRIT_BRANCH} +cd models/models-sim/models-sim-dmaap +item=`curl --silent -L ${NEXUS_URL}/org/onap/policy/models/sim/policy-models-sim-dmaap/${POLICY_MODELS_VERSION} | egrep 'policy-models-sim-dmaap-.*tarball' | cut '-d"' -f2 | egrep 'gz$' | sort | tail -1` +mkdir target +curl -L $item -o target/policy-models-sim-dmaap-${POLICY_MODELS_VERSION}-tarball.tar.gz +bash ./src/main/package/docker/docker_build.sh +cd ${WORKSPACE} +rm -rf ${WORK_DIR} + diff --git a/scripts/policy/policy-xacml-pdp/config/db/db.sh b/scripts/policy/policy-xacml-pdp/config/db/db.sh old mode 100644 new mode 100755 index ac150a03..499764df --- a/scripts/policy/policy-xacml-pdp/config/db/db.sh +++ b/scripts/policy/policy-xacml-pdp/config/db/db.sh @@ -1,6 +1,6 @@ #!/bin/bash -xv # ============LICENSE_START======================================================= -# Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. +# Copyright (C) 2020 AT&T Intellectual Property. 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. @@ -17,10 +17,10 @@ # SPDX-License-Identifier: Apache-2.0 # ============LICENSE_END========================================================= -for db in policyadmin +for db in policyadmin operationshistory do mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "CREATE DATABASE IF NOT EXISTS ${db};" mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "GRANT ALL PRIVILEGES ON \`${db}\`.* TO '${MYSQL_USER}'@'%' ;" done -mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "FLUSH PRIVILEGES;" \ No newline at end of file +mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "FLUSH PRIVILEGES;" diff --git a/tests/policy/api/api-test.robot b/tests/policy/api/api-test.robot index 7f108d01..19aa18ab 100644 --- a/tests/policy/api/api-test.robot +++ b/tests/policy/api/api-test.robot @@ -7,7 +7,7 @@ Library json *** Test Cases *** Healthcheck [Documentation] Runs Policy Api Health check - ${auth}= Create List healthcheck zb!XztG34 + ${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 @@ -18,7 +18,7 @@ Healthcheck Statistics [Documentation] Runs Policy Api Statistics - ${auth}= Create List healthcheck zb!XztG34 + ${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 @@ -29,7 +29,7 @@ Statistics RetrievePolicyTypes [Documentation] Gets Policy Types - ${auth}= Create List healthcheck zb!XztG34 + ${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 @@ -38,10 +38,21 @@ RetrievePolicyTypes Should Be Equal As Strings ${resp.status_code} 200 Should Be Equal As Strings ${resp.json()['version']} 1.0.0 -CreateTCAPolicyType - [Documentation] Create TCA Policy Type - ${auth}= Create List healthcheck zb!XztG34 - ${postjson}= Get file ${CURDIR}/data/onap.policy.monitoring.cdap.tca.hi.lo.app.json +CreateTCAPolicyTypeV1 + [Documentation] Create TCA Policy Type Version 1 + ${auth}= Create List healthcheck zb!XztG34 + ${postjson}= Get file ${CURDIR}/data/onap.policy.monitoring.cdap.tca.hi.lo.app.v1.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 Request policy /policy/api/v1/policytypes data=${postjson} headers=${headers} + Log Received response from policy ${resp.text} + Should Be Equal As Strings ${resp.status_code} 406 + +CreateTCAPolicyTypeV2 + [Documentation] Create TCA Policy Type Version 2 + ${auth}= Create List healthcheck zb!XztG34 + ${postjson}= Get file ${CURDIR}/data/onap.policy.monitoring.cdap.tca.hi.lo.app.v2.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 @@ -49,12 +60,12 @@ CreateTCAPolicyType Log Received response from policy ${resp.text} Should Be Equal As Strings ${resp.status_code} 200 ${postjsonobject} To Json ${postjson} - Dictionary Should Contain Key ${resp.json()} tosca_definitions_version - Dictionary Should Contain Key ${postjsonobject} tosca_definitions_version + Dictionary Should Contain Key ${resp.json()} tosca_definitions_version + Dictionary Should Contain Key ${postjsonobject} tosca_definitions_version RetrieveMonitoringPolicyTypes [Documentation] Retrieve Monitoring related Policy Types - ${auth}= Create List healthcheck zb!XztG34 + ${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 @@ -64,10 +75,10 @@ RetrieveMonitoringPolicyTypes List Should Contain Value ${resp.json()['policy_types']} onap.policies.Monitoring -CreateNewMonitoringPolicy - [Documentation] Create a new Monitoring TCA policy - ${auth}= Create List healthcheck zb!XztG34 - ${postjson}= Get file ${CURDIR}/data/vCPE.policy.monitoring.input.tosca.json +CreateNewMonitoringPolicyV1 + [Documentation] Create a new Monitoring TCA policy version 1 + ${auth}= Create List healthcheck zb!XztG34 + ${postjson}= Get file ${CURDIR}/data/vCPE.policy.monitoring.input.tosca.v1.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 @@ -78,10 +89,21 @@ CreateNewMonitoringPolicy Dictionary Should Contain Key ${resp.json()['topology_template']['policies'][0]} onap.restart.tca Dictionary Should Contain Key ${postjsonobject['topology_template']['policies'][0]} onap.restart.tca -SimpleCreateNewMonitoringPolicy - [Documentation] Create a new Monitoring TCA policiy using simple endpoint - ${auth}= Create List healthcheck zb!XztG34 - ${postjson}= Get file ${CURDIR}/data/vCPE.policy.monitoring.input.tosca.json +SimpleCreateNewMonitoringPolicyV1 + [Documentation] Create a new Monitoring TCA policiy version 1 using simple endpoint + ${auth}= Create List healthcheck zb!XztG34 + ${postjson}= Get file ${CURDIR}/data/vCPE.policy.monitoring.input.tosca.v1.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 Request policy /policy/api/v1/policies data=${postjson} headers=${headers} + Log Received response from policy ${resp.text} + Should Be Equal As Strings ${resp.status_code} 406 + +SimpleCreateNewMonitoringPolicyV2 + [Documentation] Create a new Monitoring TCA policiy version 2 using simple endpoint + ${auth}= Create List healthcheck zb!XztG34 + ${postjson}= Get file ${CURDIR}/data/vCPE.policy.monitoring.input.tosca.v2.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 @@ -95,7 +117,7 @@ SimpleCreateNewMonitoringPolicy RetrievePoliciesOfType [Documentation] Retrieve all Policies Created for a specific Policy Type ${auth}= Create List healthcheck zb!XztG34 - ${expjson}= Get file ${CURDIR}/data/vCPE.policy.monitoring.input.tosca.json + ${expjson}= Get file ${CURDIR}/data/vCPE.policy.monitoring.input.tosca.v1.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 @@ -106,8 +128,8 @@ RetrievePoliciesOfType Dictionary Should Contain Key ${resp.json()['topology_template']['policies'][0]} onap.restart.tca Dictionary Should Contain Key ${expjsonobject['topology_template']['policies'][0]} onap.restart.tca -DeleteSpecificPolicy - [Documentation] Delete Policy of a Type +DeleteSpecificPolicyV1 + [Documentation] Delete the Monitoring Policy Version 1 of the TCA Policy Type ${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} @@ -117,3 +139,39 @@ DeleteSpecificPolicy Should Be Equal As Strings ${resp.status_code} 200 ${resp}= Delete Request policy /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca/versions/1.0.0 headers=${headers} Should Be Equal As Strings ${resp.status_code} 404 + +DeleteSpecificPolicyV2 + [Documentation] Delete the Monitoring Policy Version 2 of the TCA Policy Type + ${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 Request policy /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca/versions/2.0.0 headers=${headers} + Log Received response from policy ${resp.text} + Should Be Equal As Strings ${resp.status_code} 200 + ${resp}= Delete Request policy /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca/versions/2.0.0 headers=${headers} + Should Be Equal As Strings ${resp.status_code} 404 + +DeleteSpecificPolicyTypeV1 + [Documentation] Delete the TCA Policy Type Version 1 + ${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 Request policy /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0 headers=${headers} + Log Received response from policy ${resp.text} + Should Be Equal As Strings ${resp.status_code} 200 + ${resp}= Delete Request policy /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0 headers=${headers} + Should Be Equal As Strings ${resp.status_code} 404 + +DeleteSpecificPolicyTypeV2 + [Documentation] Delete the TCA Policy Type Version 2 + ${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 Request policy /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/2.0.0 headers=${headers} + Log Received response from policy ${resp.text} + Should Be Equal As Strings ${resp.status_code} 200 + ${resp}= Delete Request policy /policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/2.0.0 headers=${headers} + Should Be Equal As Strings ${resp.status_code} 404 diff --git a/tests/policy/api/data/onap.policy.monitoring.cdap.tca.hi.lo.app.json b/tests/policy/api/data/onap.policy.monitoring.cdap.tca.hi.lo.app.v1.json similarity index 100% rename from tests/policy/api/data/onap.policy.monitoring.cdap.tca.hi.lo.app.json rename to tests/policy/api/data/onap.policy.monitoring.cdap.tca.hi.lo.app.v1.json diff --git a/tests/policy/api/data/onap.policy.monitoring.cdap.tca.hi.lo.app.v2.json b/tests/policy/api/data/onap.policy.monitoring.cdap.tca.hi.lo.app.v2.json new file mode 100644 index 00000000..0076e829 --- /dev/null +++ b/tests/policy/api/data/onap.policy.monitoring.cdap.tca.hi.lo.app.v2.json @@ -0,0 +1,209 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_0_0", + "policy_types": { + "onap.policies.monitoring.cdap.tca.hi.lo.app": { + "derived_from": "onap.policies.Monitoring", + "version": "2.0.0", + "properties": { + "tca_policy": { + "type": "map", + "description": "TCA Policy JSON", + "entry_schema": { + "type": "onap.datatypes.monitoring.tca_policy" + } + } + } + } + }, + "data_types": { + "onap.datatypes.monitoring.metricsPerEventName": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "controlLoopSchemaType": { + "type": "string", + "required": true, + "description": "Specifies Control Loop Schema Type for the event Name e.g. VNF, VM", + "constraints": [ + { + "valid_values": [ + "VM", + "VNF" + ] + } + ] + }, + "eventName": { + "type": "string", + "required": true, + "description": "Event name to which thresholds need to be applied" + }, + "policyName": { + "type": "string", + "required": true, + "description": "TCA Policy Scope Name" + }, + "policyScope": { + "type": "string", + "required": true, + "description": "TCA Policy Scope" + }, + "policyVersion": { + "type": "string", + "required": true, + "description": "TCA Policy Scope Version" + }, + "thresholds": { + "type": "list", + "required": true, + "description": "Thresholds associated with eventName", + "entry_schema": { + "type": "onap.datatypes.monitoring.thresholds" + } + } + } + }, + "onap.datatypes.monitoring.tca_policy": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "domain": { + "type": "string", + "required": true, + "description": "Domain name to which TCA needs to be applied", + "default": "measurementsForVfScaling", + "constraints": [ + { + "equal": "measurementsForVfScaling" + } + ] + }, + "metricsPerEventName": { + "type": "list", + "required": true, + "description": "Contains eventName and threshold details that need to be applied to given eventName", + "entry_schema": { + "type": "onap.datatypes.monitoring.metricsPerEventName" + } + } + } + }, + "onap.datatypes.monitoring.thresholds": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "closedLoopControlName": { + "type": "string", + "required": true, + "description": "Closed Loop Control Name associated with the threshold" + }, + "closedLoopEventStatus": { + "type": "string", + "required": true, + "description": "Closed Loop Event Status of the threshold", + "constraints": [ + { + "valid_values": [ + "ONSET", + "ABATED" + ] + } + ] + }, + "direction": { + "type": "string", + "required": true, + "description": "Direction of the threshold", + "constraints": [ + { + "valid_values": [ + "LESS", + "LESS_OR_EQUAL", + "GREATER", + "GREATER_OR_EQUAL", + "EQUAL" + ] + } + ] + }, + "fieldPath": { + "type": "string", + "required": true, + "description": "Json field Path as per CEF message which needs to be analyzed for TCA", + "constraints": [ + { + "valid_values": [ + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated", + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated", + "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle", + "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt", + "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice", + "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq", + "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal", + "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem", + "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait", + "$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage", + "$.event.measurementsForVfScalingFields.meanRequestLatency", + "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered", + "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached", + "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured", + "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree", + "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed", + "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value" + ] + } + ] + }, + "severity": { + "type": "string", + "required": true, + "description": "Threshold Event Severity", + "constraints": [ + { + "valid_values": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "NORMAL" + ] + } + ] + }, + "thresholdValue": { + "type": "integer", + "required": true, + "description": "Threshold value for the field Path inside CEF message" + }, + "version": { + "type": "string", + "required": true, + "description": "Version number associated with the threshold" + } + } + } + } +} diff --git a/tests/policy/api/data/vCPE.policy.monitoring.input.tosca.json b/tests/policy/api/data/vCPE.policy.monitoring.input.tosca.v1.json similarity index 98% rename from tests/policy/api/data/vCPE.policy.monitoring.input.tosca.json rename to tests/policy/api/data/vCPE.policy.monitoring.input.tosca.v1.json index a8ffe520..56bb18dd 100644 --- a/tests/policy/api/data/vCPE.policy.monitoring.input.tosca.json +++ b/tests/policy/api/data/vCPE.policy.monitoring.input.tosca.v1.json @@ -6,7 +6,7 @@ "onap.restart.tca": { "type": "onap.policies.monitoring.cdap.tca.hi.lo.app", "version": "1.0.0", - "type_version": "1.0.0", + "type_version": "1.0.0", "metadata": { "policy-id": "onap.restart.tca" }, diff --git a/tests/policy/api/data/vCPE.policy.monitoring.input.tosca.v2.json b/tests/policy/api/data/vCPE.policy.monitoring.input.tosca.v2.json new file mode 100644 index 00000000..371b9801 --- /dev/null +++ b/tests/policy/api/data/vCPE.policy.monitoring.input.tosca.v2.json @@ -0,0 +1,51 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_0_0", + "topology_template": { + "policies": [ + { + "onap.restart.tca": { + "type": "onap.policies.monitoring.cdap.tca.hi.lo.app", + "version": "2.0.0", + "type_version": "1.0.0", + "metadata": { + "policy-id": "onap.restart.tca" + }, + "properties": { + "tca_policy" : { + "domain": "measurementsForVfScaling", + "metricsPerEventName": [ + { + "eventName": "Measurement_vGMUX", + "controlLoopSchemaType": "VNF", + "policyScope": "DCAE", + "policyName": "DCAE.Config_tca-hi-lo", + "policyVersion": "v0.0.1", + "thresholds": [ + { + "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e", + "version": "1.0.2", + "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value", + "thresholdValue": 0, + "direction": "EQUAL", + "severity": "MAJOR", + "closedLoopEventStatus": "ABATED" + }, + { + "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e", + "version": "1.0.2", + "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value", + "thresholdValue": 0, + "direction": "GREATER", + "severity": "CRITICAL", + "closedLoopEventStatus": "ONSET" + } + ] + } + ] + } + } + } + } + ] + } +} diff --git a/tests/policy/xacml-pdp/xacml-pdp-test.robot b/tests/policy/xacml-pdp/xacml-pdp-test.robot index 8227996f..0305af8e 100644 --- a/tests/policy/xacml-pdp/xacml-pdp-test.robot +++ b/tests/policy/xacml-pdp/xacml-pdp-test.robot @@ -28,7 +28,6 @@ Statistics Should Be Equal As Strings ${resp.json()['code']} 200 ExecuteXacmlPolicy - Wait Until Keyword Succeeds 2 min 5 sec CreateMonitorPolicyType Wait Until Keyword Succeeds 2 min 5 sec CreateNewMonitorPolicy Wait Until Keyword Succeeds 2 min 5 sec DeployMonitorPolicy Wait Until Keyword Succeeds 2 min 10 sec GetAbbreviatedDecisionResult @@ -36,20 +35,6 @@ ExecuteXacmlPolicy *** Keywords *** -CreateMonitorPolicyType - [Documentation] Create Monitoring Policy Type - ${auth}= Create List healthcheck zb!XztG34 - ${postjson}= Get file ${CURDIR}/data/onap.policies.monitoring.cdap.tca.hi.lo.app.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 Request policy /policy/api/v1/policytypes data=${postjson} headers=${headers} - Log Received response from policy2 ${resp.text} - Should Be Equal As Strings ${resp.status_code} 200 - ${postjsonobject} To Json ${postjson} - Dictionary Should Contain Key ${resp.json()} tosca_definitions_version - Dictionary Should Contain Key ${postjsonobject} tosca_definitions_version - CreateNewMonitorPolicy [Documentation] Create a new Monitoring policy ${auth}= Create List healthcheck zb!XztG34 -- 2.16.6