From 52b0dc4809e968c026fe929df64f4abc5fa87780 Mon Sep 17 00:00:00 2001 From: Taka Cho Date: Fri, 5 Feb 2021 10:00:39 -0500 Subject: move pap csit to policy repo move pap csit plans/tests to policy/pap repo Issue-ID: POLICY-2895 Change-Id: I5a64f96d609f4aa39933ef0ca387fbd8dd5b468b Signed-off-by: Taka Cho --- csit/plans/setup.sh | 55 ++++++++++++ csit/plans/teardown.sh | 21 +++++ csit/plans/testplan.txt | 3 + csit/tests/data/create.group.request.json | 37 ++++++++ csit/tests/data/deploy.group.request.json | 19 +++++ csit/tests/pap-test.robot | 137 ++++++++++++++++++++++++++++++ 6 files changed, 272 insertions(+) create mode 100644 csit/plans/setup.sh create mode 100644 csit/plans/teardown.sh create mode 100644 csit/plans/testplan.txt create mode 100644 csit/tests/data/create.group.request.json create mode 100644 csit/tests/data/deploy.group.request.json create mode 100644 csit/tests/pap-test.robot diff --git a/csit/plans/setup.sh b/csit/plans/setup.sh new file mode 100644 index 00000000..d53edc1c --- /dev/null +++ b/csit/plans/setup.sh @@ -0,0 +1,55 @@ +#!/bin/bash +# ============LICENSE_START======================================================= +# Copyright (C) 2019 Nordix Foundation. +# Modifications Copyright (C) 2019-2021 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. +# 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}/get-branch-mariadb.sh + +echo "Uninstall docker-py and reinstall docker." +pip uninstall -y docker-py +pip uninstall -y docker +pip install -U docker==2.7.0 + +sudo apt-get -y install libxml2-utils +bash ${SCRIPTS}/get-models-examples.sh + +source ${SCRIPTS}/detmVers.sh + +docker-compose -f ${SCRIPTS}/docker-compose-all.yml up -d pap + +unset http_proxy https_proxy + +POLICY_PAP_IP=`get-instance-ip.sh policy-pap` +POLICY_API_IP=`get-instance-ip.sh policy-api` +MARIADB_IP=`get-instance-ip.sh mariadb` + +echo PAP IP IS ${POLICY_PAP_IP} +echo API IP IS ${POLICY_API_IP} +echo MARIADB IP IS ${MARIADB_IP} + + +# wait for the app to start up +${SCRIPTS}/wait_for_port.sh ${POLICY_PAP_IP} 6969 + + +DATA=${WORKSPACE}/models/models-examples/src/main/resources/policies + +ROBOT_VARIABLES="" +ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_PAP_IP:${POLICY_PAP_IP}" +ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_API_IP:${POLICY_API_IP}" +ROBOT_VARIABLES="${ROBOT_VARIABLES} -v DATA:${DATA}" diff --git a/csit/plans/teardown.sh b/csit/plans/teardown.sh new file mode 100644 index 00000000..0cd4455e --- /dev/null +++ b/csit/plans/teardown.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# ============LICENSE_START======================================================= +# Copyright (C) 2019 Nordix Foundation. +# Modifications Copyright (C) 2019-2021 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. +# 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========================================================= + +docker-compose -f ${SCRIPTS}/docker-compose-all.yml down -v diff --git a/csit/plans/testplan.txt b/csit/plans/testplan.txt new file mode 100644 index 00000000..cdb32d2d --- /dev/null +++ b/csit/plans/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [policy/pap.git]/csit/tests/. +# Place the suites in run order. +pap-test.robot diff --git a/csit/tests/data/create.group.request.json b/csit/tests/data/create.group.request.json new file mode 100644 index 00000000..1b63563f --- /dev/null +++ b/csit/tests/data/create.group.request.json @@ -0,0 +1,37 @@ +{ + "groups": [ + { + "name": "create.group.request", + "pdpGroupState": "PASSIVE", + "properties": { + "hello": "world" + }, + "pdpSubgroups": [ + { + "pdpType": "pdpTypeA", + "desiredInstanceCount": 2, + "properties": {}, + "supportedPolicyTypes": [ + { + "name": "onap.policies.monitoring.tcagen2", + "version": "1.0.0" + } + ], + "policies": [] + }, + { + "pdpType": "pdpTypeB", + "desiredInstanceCount": 1, + "properties": {}, + "supportedPolicyTypes": [ + { + "name": "onap.policies.monitoring.tcagen2", + "version": "1.0.0" + } + ], + "policies": [] + } + ] + } + ] +} diff --git a/csit/tests/data/deploy.group.request.json b/csit/tests/data/deploy.group.request.json new file mode 100644 index 00000000..7f3694de --- /dev/null +++ b/csit/tests/data/deploy.group.request.json @@ -0,0 +1,19 @@ +{ + "groups": [ + { + "name": "create.group.request", + "deploymentSubgroups": [ + { + "pdpType": "pdpTypeA", + "action": "POST", + "policies": [ + { + "name": "onap.restart.tca", + "version": "1.0.0" + } + ] + } + ] + } + ] +} diff --git a/csit/tests/pap-test.robot b/csit/tests/pap-test.robot new file mode 100644 index 00000000..3e8bc211 --- /dev/null +++ b/csit/tests/pap-test.robot @@ -0,0 +1,137 @@ +*** Settings *** +Library Collections +Library RequestsLibrary +Library OperatingSystem +Library json + +*** Test Cases *** +LoadPolicy + [Documentation] Loads prerequisite Policy via API + ${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 + ${postjson}= Get file ${DATA}/vCPE.policy.monitoring.input.tosca.json + ${resp}= Post Request policy /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies data=${postjson} headers=${headers} + Log Received response from API ${resp.text} + Should Be Equal As Strings ${resp.status_code} 200 + +Healthcheck + [Documentation] Runs Policy PAP Health check + ${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 Request policy /policy/pap/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 + +Statistics + [Documentation] Runs Policy PAP Statistics + ${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 Request policy /policy/pap/v1/statistics 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 + +CreatePdpGroups + [Documentation] Runs Policy PAP Create PDP Groups + ${auth}= Create List healthcheck zb!XztG34 + Log Creating session https://${POLICY_PAP_IP}:6969 + ${postjson}= Get file ${CURDIR}/data/create.group.request.json + ${session}= Create Session policy https://${POLICY_PAP_IP}:6969 auth=${auth} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + ${resp}= Post Request policy /policy/pap/v1/pdps/groups/batch data=${postjson} headers=${headers} + Log Received response from policy ${resp.text} + Should Be Equal As Strings ${resp.status_code} 200 + +ActivatePdpGroup + [Documentation] Runs Policy PAP Change PDP Group State to ACTIVE + ${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 Request policy /policy/pap/v1/pdps/groups/create.group.request?state=ACTIVE headers=${headers} + Log Received response from policy ${resp.text} + Should Be Equal As Strings ${resp.status_code} 200 + +QueryPdpGroups + [Documentation] Runs Policy PAP Query PDP Groups + ${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 Request policy /policy/pap/v1/pdps 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()['groups'][0]['name']} create.group.request + Should Be Equal As Strings ${resp.json()['groups'][0]['pdpGroupState']} ACTIVE + Should Be Equal As Strings ${resp.json()['groups'][1]['name']} defaultGroup + +DeployPdpGroups + [Documentation] Runs Policy PAP Deploy Policies to PDP Groups + ${auth}= Create List healthcheck zb!XztG34 + Log Creating session https://${POLICY_PAP_IP}:6969 + ${postjson}= Get file ${CURDIR}/data/deploy.group.request.json + ${session}= Create Session policy https://${POLICY_PAP_IP}:6969 auth=${auth} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + ${resp}= Post Request policy /policy/pap/v1/pdps/deployments/batch data=${postjson} headers=${headers} + Log Received response from policy ${resp.text} + Should Be Equal As Strings ${resp.status_code} 200 + +UndeployPolicy + [Documentation] Runs Policy PAP Undeploy a Policy from PDP Groups + ${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 Request policy /policy/pap/v1/pdps/policies/onap.restart.tca headers=${headers} + Log Received response from policy ${resp.text} + Should Be Equal As Strings ${resp.status_code} 200 + +QueryPdpGroupsAfterUndeploy + [Documentation] Runs Policy PAP Query PDP Groups after Undeploy + ${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 Request policy /policy/pap/v1/pdps 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()['groups'][0]['name']} create.group.request + Should Be Equal As Strings ${resp.json()['groups'][0]['pdpSubgroups'][0]['policies']} [] + +DeactivatePdpGroup + [Documentation] Runs Policy PAP Change PDP Group State to PASSIVE + ${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 Request policy /policy/pap/v1/pdps/groups/create.group.request?state=PASSIVE headers=${headers} + Log Received response from policy ${resp.text} + Should Be Equal As Strings ${resp.status_code} 200 + +DeletePdpGroups + [Documentation] Runs Policy PAP Delete PDP Groups + ${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 Request policy /policy/pap/v1/pdps/groups/create.group.request headers=${headers} + Log Received response from policy ${resp.text} + Should Be Equal As Strings ${resp.status_code} 200 + +QueryPdpGroupsAfterDelete + [Documentation] Runs Policy PAP Query PDP Groups after Delete + ${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 Request policy /policy/pap/v1/pdps 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()['groups'][0]['name']} defaultGroup -- cgit 1.2.3-korg