From: Morgan Richomme Date: Fri, 8 Jan 2021 12:06:42 +0000 (+0000) Subject: Merge "CSIT Support for ServiceLevel PNF Software Upgrade" X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=3aea09ade1b9559bb14d8c8f6d043b073b317c08;hp=1feb0a77c857d811283d74d0f3df018d42c2debe;p=integration%2Fcsit.git Merge "CSIT Support for ServiceLevel PNF Software Upgrade" --- diff --git a/plans/ccsdk-oran/polmansuite/setup.sh b/plans/ccsdk-oran/polmansuite/setup.sh index b02d9db3..cf9ebde2 100755 --- a/plans/ccsdk-oran/polmansuite/setup.sh +++ b/plans/ccsdk-oran/polmansuite/setup.sh @@ -19,7 +19,7 @@ cd $WORKSPACE/archives -git clone "https://gerrit.o-ran-sc.org/r/nonrtric" +git clone "https://gerrit.o-ran-sc.org/r/nonrtric" -b cherry AUTOTEST_ROOT=$WORKSPACE/archives/nonrtric/test/auto-test POLMAN_PLANS=$WORKSPACE/plans/ccsdk-oran/polmansuite diff --git a/plans/ccsdk-oran/polmansuite/test_env-master.sh b/plans/ccsdk-oran/polmansuite/test_env-master.sh index 2b41fe8e..b012b842 100644 --- a/plans/ccsdk-oran/polmansuite/test_env-master.sh +++ b/plans/ccsdk-oran/polmansuite/test_env-master.sh @@ -30,17 +30,17 @@ NEXUS_PROXY_REPO="nexus3.onap.org:10001/" # Remote Policy Agent image and tag POLICY_AGENT_REMOTE_IMAGE="nexus3.onap.org:10003/onap/ccsdk-oran-a1policymanagementservice" -POLICY_AGENT_REMOTE_IMAGE_TAG="1.1.0-SNAPSHOT" +POLICY_AGENT_REMOTE_IMAGE_TAG="1.1.1-SNAPSHOT" # Control Panel remote image and tag CONTROL_PANEL_REMOTE_IMAGE="nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel" -CONTROL_PANEL_REMOTE_IMAGE_TAG="2.0.0" +CONTROL_PANEL_REMOTE_IMAGE_TAG="2.2.0" # SDNC A1 Controller remote image and tag SDNC_A1_CONTROLLER_REMOTE_IMAGE="nexus3.onap.org:10003/onap/sdnc-image" -SDNC_A1_CONTROLLER_REMOTE_IMAGE_TAG="2.1.0-STAGING-latest" +SDNC_A1_CONTROLLER_REMOTE_IMAGE_TAG="2.1.1-STAGING-latest" #SDNC DB remote image and tag @@ -51,7 +51,7 @@ SDNC_DB_REMOTE_IMAGE_TAG="5.6" # Near RT RIC Simulator remote image and tag RIC_SIM_REMOTE_IMAGE="nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator" -RIC_SIM_REMOTE_IMAGE_TAG="2.0.0" +RIC_SIM_REMOTE_IMAGE_TAG="2.1.0" #Consul remote image and tag diff --git a/plans/ccsdk/healthcheck/setup.sh b/plans/ccsdk/healthcheck/setup.sh deleted file mode 100644 index 2a5ef4db..00000000 --- a/plans/ccsdk/healthcheck/setup.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash -# -# Copyright 2016-2017 Huawei Technologies Co., Ltd. -# -# 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. -# -# Modifications copyright (c) 2017 AT&T Intellectual Property -# Modifications copyright (c) 2020 Samsung Electronics Co., Ltd. -# -# Place the scripts in run order: -export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1) -export NEXUS_DOCKER_REPO="nexus3.onap.org:10001" -export NEXUS_USERNAME=docker -export NEXUS_PASSWD=docker -export DMAAP_TOPIC=AUTO -export CCSDK_DOCKER_IMAGE_VERSION=1.1-STAGING-latest - -if [ "$MTU" == "" ]; then - export MTU="1450" -fi - -# Clone CCSDK repo to get docker-compose for CCSDK -mkdir -p $WORKSPACE/archives/ccsdk -cd $WORKSPACE/archives -git clone -b master --single-branch http://gerrit.onap.org/r/ccsdk/distribution.git ccsdk -cd $WORKSPACE/archives/ccsdk -git pull -unset http_proxy https_proxy -cd $WORKSPACE/archives/ccsdk/src/main/yaml - -sed -i "s/DMAAP_TOPIC_ENV=.*/DMAAP_TOPIC_ENV="AUTO"/g" docker-compose.yml -docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO - -docker pull $NEXUS_DOCKER_REPO/onap/ccsdk-odlsli-alpine-image:$CCSDK_DOCKER_IMAGE_VERSION - -docker pull $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$CCSDK_DOCKER_IMAGE_VERSION - -# start CCSDK containers with docker compose and configuration from docker-compose.yml -curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`-`uname -m` > docker-compose -chmod +x docker-compose -./docker-compose up -d - -# WAIT 5 minutes maximum and check karaf.log for readiness every 10 seconds - -TIME_OUT=300 -INTERVAL=10 -TIME=0 -while [ "$TIME" -lt "$TIME_OUT" ]; do - -docker exec ccsdk_odlsli_container cat /opt/opendaylight/data/log/karaf.log | grep 'warp coils' - - if [ $? == 0 ] ; then - echo CCSDK karaf started in $TIME seconds - break; - fi - - echo Sleep $INTERVAL seconds before testing if CCSDK is up. Total wait time up until now is $TIME seconds. Timeout is $TIME_OUT seconds - sleep $INTERVAL - TIME=$(($TIME+$INTERVAL)) -done - -if [ "$TIME" -ge "$TIME_OUT" ]; then - echo TIME OUT: karaf session not started in $TIME_OUT seconds, setup failed - exit 1; -fi - -num_bundles=$(docker exec -i ccsdk_odlsli_container /opt/opendaylight/current/bin/client bundle:list | tail -1 | cut -d' ' -f1) - - if [ "$num_bundles" -ge 333 ]; then - num_bundles=$(docker exec -i ccsdk_odlsli_container /opt/opendaylight/current/bin/client bundle:list | tail -1 | cut -d' ' -f1) - num_failed_bundles=$(docker exec -i ccsdk_odlsli_container /opt/opendaylight/current/bin/client bundle:list | grep Failure | wc -l) - failed_bundles=$(docker exec -i ccsdk_odlsli_container /opt/opendaylight/current/bin/client bundle:list | grep Failure) - echo There is/are $num_failed_bundles failed bundles out of $num_bundles installed bundles. - fi - -if [ "$num_failed_bundles" -ge 1 ]; then - echo "The following bundle(s) are in a failed state: " - echo " $failed_bundles" -fi - -# Pass any variables required by Robot test suites in ROBOT_VARIABLES -ROBOT_VARIABLES="-v SCRIPTS:${SCRIPTS}" - diff --git a/plans/ccsdk/healthcheck/teardown.sh b/plans/ccsdk/healthcheck/teardown.sh deleted file mode 100644 index 56820786..00000000 --- a/plans/ccsdk/healthcheck/teardown.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -# -# Copyright 2016-2017 Huawei Technologies Co., Ltd. -# -# 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. -# -# Modifications copyright (c) 2017 AT&T Intellectual Property -# - -kill-instance.sh ccsdk_db_container -kill-instance.sh ccsdk_dgbuilder_container -kill-instance.sh ccsdk_odlsli_container - -# $WORKSPACE/archives/appc deleted with archives folder when tests starts so we keep it at the end for debugging diff --git a/plans/ccsdk/healthcheck/testplan.txt b/plans/ccsdk/healthcheck/testplan.txt deleted file mode 100644 index 2cd8cdaf..00000000 --- a/plans/ccsdk/healthcheck/testplan.txt +++ /dev/null @@ -1,4 +0,0 @@ -# Test suites are relative paths under [integration/csit.git]/tests/. -# Place the suites in run order. -ccsdk/healthcheck - diff --git a/plans/music/music-distributed-kv-store-test-plan/setup.sh b/plans/music/music-distributed-kv-store-test-plan/setup.sh deleted file mode 100644 index 88becf69..00000000 --- a/plans/music/music-distributed-kv-store-test-plan/setup.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash -# -# Copyright 2018 Intel Corporation -# -# 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. -# - -# Not sure why this is needed. -source ${SCRIPTS}/common_functions.sh - -# Initial Configuration. -DATASTORE="consul" -DATASTORE_IP="localhost" - -MOUNTPATH="/dkv_mount_path/configs/" -DEFAULT_CONFIGS=$(pwd)/mountpath/default - -mkdir -p mountpath/default - -pushd mountpath/default -cat << EOF > sampleConfig1.properties -foo1=bar1 -hello1=world1 -key1=value1 -EOF -cat << EOF > sampleConfig2.properties -foo2=bar2 -hello2=world2 -key2=value2 -EOF -popd - -docker login -u docker -p docker nexus3.onap.org:10001 -docker pull nexus3.onap.org:10001/onap/music/distributed-kv-store -docker run -e DATASTORE=$DATASTORE -e DATASTORE_IP=$DATASTORE_IP -e MOUNTPATH=$MOUNTPATH -d \ - --name dkv \ - -v $DEFAULT_CONFIGS:/dkv_mount_path/configs/default \ - -p 8200:8200 -p 8080:8080 nexus3.onap.org:10001/onap/music/distributed-kv-store - - -echo "###### WAITING FOR DISTRIBUTED KV STORE CONTAINER TO COME UP" -sleep 10 - -# -# add here all ROBOT_VARIABLES settings -# -echo "# music robot variables settings"; -ROBOT_VARIABLES="-v DKV_HOSTNAME:http://localhost -v DKV_PORT:8080" - -echo ${ROBOT_VARIABLES} \ No newline at end of file diff --git a/plans/music/music-distributed-kv-store-test-plan/teardown.sh b/plans/music/music-distributed-kv-store-test-plan/teardown.sh deleted file mode 100644 index 0abf3a62..00000000 --- a/plans/music/music-distributed-kv-store-test-plan/teardown.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -# -# Copyright 2018 Intel Corporation -# -# 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. -# - -rm -rf mountpath -docker stop dkv -docker rm dkv -docker rmi nexus3.onap.org:10001/onap/music/distributed-kv-store diff --git a/plans/music/music-distributed-kv-store-test-plan/testplan.txt b/plans/music/music-distributed-kv-store-test-plan/testplan.txt deleted file mode 100644 index 654f0785..00000000 --- a/plans/music/music-distributed-kv-store-test-plan/testplan.txt +++ /dev/null @@ -1,3 +0,0 @@ -# Test suites are relative paths under [integration/csit.git]/tests/. -# Place the suites in run order. -music/music-distributed-kv-store-suite \ No newline at end of file diff --git a/plans/sdnc/healthcheck/setup.sh b/plans/sdnc/healthcheck/setup.sh index a11a3aa5..99753dfb 100755 --- a/plans/sdnc/healthcheck/setup.sh +++ b/plans/sdnc/healthcheck/setup.sh @@ -15,17 +15,16 @@ # limitations under the License. # # Modifications copyright (c) 2017 AT&T Intellectual Property +# Modifications copyright (c) 2020 Samsung Electronics Co., Ltd. # # Place the scripts in run order: -SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -source ${WORKSPACE}/scripts/sdnc/script1.sh - +set -x export NEXUS_USERNAME=docker export NEXUS_PASSWD=docker export NEXUS_DOCKER_REPO=nexus3.onap.org:10001 export DMAAP_TOPIC=AUTO -export DOCKER_IMAGE_VERSION=1.8-STAGING-latest -export CCSDK_DOCKER_IMAGE_VERSION=0.7-STAGING-latest +export DOCKER_IMAGE_VERSION=2.1-STAGING-latest +export CCSDK_DOCKER_IMAGE_VERSION=1.1-STAGING-latest export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1) @@ -55,9 +54,6 @@ docker tag $NEXUS_DOCKER_REPO/onap/sdnc-ansible-server-image:$DOCKER_IMAGE_VERSI docker pull $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$CCSDK_DOCKER_IMAGE_VERSION docker tag $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$CCSDK_DOCKER_IMAGE_VERSION onap/ccsdk-dgbuilder-image:latest -docker pull $NEXUS_DOCKER_REPO/onap/admportal-sdnc-image:$DOCKER_IMAGE_VERSION -docker tag $NEXUS_DOCKER_REPO/onap/admportal-sdnc-image:$DOCKER_IMAGE_VERSION onap/admportal-sdnc-image:latest - docker pull $NEXUS_DOCKER_REPO/onap/sdnc-ueb-listener-image:$DOCKER_IMAGE_VERSION docker tag $NEXUS_DOCKER_REPO/onap/sdnc-ueb-listener-image:$DOCKER_IMAGE_VERSION onap/sdnc-ueb-listener-image:latest @@ -69,36 +65,17 @@ docker tag $NEXUS_DOCKER_REPO/onap/sdnc-dmaap-listener-image:$DOCKER_IMAGE_VERSI # start SDNC containers with docker compose and configuration from docker-compose.yml docker-compose up -d -# WAIT 10 minutes maximum and test every 5 seconds if SDNC is up using HealthCheck API -TIME_OUT=1000 -INTERVAL=30 -TIME=0 -while [ "$TIME" -lt "$TIME_OUT" ]; do - response=$(curl --write-out '%{http_code}' --silent --output /dev/null -H "Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==" -X POST -H "X-FromAppId: csit-sdnc" -H "X-TransactionId: csit-sdnc" -H "Accept: application/json" -H "Content-Type: application/json" http://localhost:8282/restconf/operations/SLI-API:healthcheck ); echo $response +# WAIT 5 minutes maximum and check karaf.log for readiness every 10 seconds - if [ "$response" == "200" ]; then - echo SDNC started in $TIME seconds - break; - fi +TIME_OUT=300 +INTERVAL=10 - echo Sleep: $INTERVAL seconds before testing if SDNC is up. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds - sleep $INTERVAL - TIME=$(($TIME+$INTERVAL)) -done - -if [ "$TIME" -ge "$TIME_OUT" ]; then - echo TIME OUT: Docker containers not started in $TIME_OUT seconds... Could cause problems for testing activities... -fi - -#sleep 800 - -TIME_OUT=1500 -INTERVAL=60 TIME=0 while [ "$TIME" -lt "$TIME_OUT" ]; do - response=$(docker exec -ti sdnc_controller_container /opt/opendaylight/current/bin/client system:start-level) - if grep -q 'Level 100' <<< ${response}; then +docker exec sdnc_controller_container cat /opt/opendaylight/data/log/karaf.log | grep 'warp coils' + + if [ $? == 0 ] ; then echo SDNC karaf started in $TIME seconds break; fi @@ -109,24 +86,19 @@ while [ "$TIME" -lt "$TIME_OUT" ]; do done if [ "$TIME" -ge "$TIME_OUT" ]; then - echo TIME OUT: karaf session not started in $TIME_OUT seconds... Could cause problems for testing activities... + echo TIME OUT: karaf session not started in $TIME_OUT seconds, setup failed + exit 1; fi -response=$(docker exec -ti sdnc_controller_container /opt/opendaylight/current/bin/client system:start-level) - -if grep -q 'Level 100' <<< ${response} ; then - num_failed_bundles=$(docker exec sdnc_controller_container /opt/opendaylight/current/bin/client bundle:list | grep Failure | wc -l) - failed_bundles=$(docker exec sdnc_controller_container /opt/opendaylight/current/bin/client bundle:list | grep Failure) - echo There is/are $num_failed_bundles failed bundles out of $num_bundles installed bundles. - fi +num_bundles=$(docker exec -i sdnc_controller_container /opt/opendaylight/current/bin/client bundle:list | tail -1 | cut -d' ' -f1) +num_failed_bundles=$(docker exec -i sdnc_controller_container /opt/opendaylight/current/bin/client bundle:list | grep Failure | wc -l) +failed_bundles=$(docker exec -i sdnc_controller_container /opt/opendaylight/current/bin/client bundle:list | grep Failure) +echo There is/are $num_failed_bundles failed bundles out of $num_bundles installed bundles. if [ "$num_failed_bundles" -ge 1 ]; then echo "The following bundle(s) are in a failed state: " echo " $failed_bundles" fi -# Sleep additional 5 minutes (300 secs) to give application time to finish -sleep 300 - # Pass any variables required by Robot test suites in ROBOT_VARIABLES ROBOT_VARIABLES="-v SCRIPTS:${SCRIPTS}" diff --git a/scripts/ccsdk/healthcheck/health_check.sh b/scripts/ccsdk/healthcheck/health_check.sh deleted file mode 100644 index aed3b5ab..00000000 --- a/scripts/ccsdk/healthcheck/health_check.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash -############################################################################### -# Copyright 2017 Huawei Technologies Co., Ltd. -# -# 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. -# -# Modifications copyright (c) 2020 Samsung Electronics Co., Ltd. -# -############################################################################### -unset http_proxy https_proxy - -response=$(curl --write-out '%{http_code}' --silent --output /dev/null -H "Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==" -X POST -H "X-FromAppId: csit-sdnc" -H "X-TransactionId: csit-ccsdk" -H "Accept: application/json" -H "Content-Type: application/json" http://localhost:8383/restconf/operations/SLI-API:healthcheck ) - -if [ "$response" == "200" ]; then - echo "CCSDK health check passed." - exit 0; -fi - -echo "CCSDK health check failed with response code ${response}." -exit 1 diff --git a/scripts/policy/docker-compose-all.yml b/scripts/policy/docker-compose-all.yml index 7b1f00a0..00f76350 100644 --- a/scripts/policy/docker-compose-all.yml +++ b/scripts/policy/docker-compose-all.yml @@ -51,7 +51,7 @@ services: - ./wait_for_port.sh:/opt/app/policy/api/bin/wait_for_port.sh:ro entrypoint: ./wait_for_port.sh command: [ - '-c', 'bash ./policy-api.sh', + '-c', './policy-api.sh', 'mariadb', '3306' ] pap: @@ -69,7 +69,7 @@ services: - ./wait_for_port.sh:/opt/app/policy/pap/bin/wait_for_port.sh:ro entrypoint: ./wait_for_port.sh command: [ - '-c', 'bash ./policy-pap.sh', + '-c', './policy-pap.sh', 'mariadb', '3306', 'policy.api.simpledemo.onap.org', '3905', 'api', '6969' @@ -89,7 +89,7 @@ services: - ./wait_for_port.sh:/opt/app/policy/pdpx/bin/wait_for_port.sh:ro entrypoint: ./wait_for_port.sh command: [ - '-c', 'bash ./policy-pdpx.sh', + '-c', './policy-pdpx.sh', 'mariadb', '3306', 'policy.api.simpledemo.onap.org', '3905', 'pap', '6969' diff --git a/scripts/policy/wait_for_port.sh b/scripts/policy/wait_for_port.sh index c50cd970..1d2f5155 100755 --- a/scripts/policy/wait_for_port.sh +++ b/scripts/policy/wait_for_port.sh @@ -1,35 +1,34 @@ -#!/bin/bash +#!/bin/sh tmout=120 cmd= - while getopts c:t: opt; do case "$opt" in c) cmd="$OPTARG" ;; t) tmout="$OPTARG" ;; esac done -let nargs=$OPTIND-1 +nargs=$(expr $OPTIND - 1) shift $nargs -let even_args=$#%2 -if [[ $# -lt 2 || $even_args -ne 0 ]]; then - echo "args: [-t timeout] [-c command] hostname1 port1 hostname2 port2 ..." >&2 - exit 1 +even_args=$(expr $# % 2) +if [ $# -lt 2 -o $even_args -ne 0 ]; then + echo "args: [-t timeout] [-c command] hostname1 port1 hostname2 port2 ..." >&2 + exit 1 fi -while [[ $# -ge 2 ]]; do +while [ $# -ge 2 ]; do export host=$1 export port=$2 shift shift echo "Waiting for $host port $port..." - timeout $tmout bash -c 'until nc -vz "$host" "$port"; do echo -n "."; + timeout $tmout sh -c 'until nc -vz "$host" "$port"; do echo -n "."; sleep 1; done' rc=$? - if [[ $rc != 0 ]]; then + if [ $rc != 0 ]; then echo "$host port $port cannot be reached" exit $rc fi diff --git a/tests/ccsdk/healthcheck/__init__.robot b/tests/ccsdk/healthcheck/__init__.robot deleted file mode 100644 index 1259b890..00000000 --- a/tests/ccsdk/healthcheck/__init__.robot +++ /dev/null @@ -1,2 +0,0 @@ -*** Settings *** -Documentation CCSDK - healthcheck diff --git a/tests/ccsdk/healthcheck/test1.robot b/tests/ccsdk/healthcheck/test1.robot deleted file mode 100644 index fea86c3d..00000000 --- a/tests/ccsdk/healthcheck/test1.robot +++ /dev/null @@ -1,16 +0,0 @@ -*** Settings *** -Library OperatingSystem -Library Process - -*** Variables *** - -${health_check} ${SCRIPTS}/ccsdk/healthcheck/health_check.sh - - -*** Test Cases *** -Health check test case for CCSDK - [Documentation] Health check - ${result_hc}= Run Process bash ${health_check} > log_hc.txt shell=yes - Should Be Equal As Integers ${result_hc.rc} 0 - - diff --git a/tests/music/music-distributed-kv-store-suite/__init__.robot b/tests/music/music-distributed-kv-store-suite/__init__.robot deleted file mode 100644 index d1da7f38..00000000 --- a/tests/music/music-distributed-kv-store-suite/__init__.robot +++ /dev/null @@ -1,2 +0,0 @@ -*** Settings *** -Documentation Integration - Suite 1 \ No newline at end of file diff --git a/tests/music/music-distributed-kv-store-suite/data/register_domain.json b/tests/music/music-distributed-kv-store-suite/data/register_domain.json deleted file mode 100644 index 96811ee9..00000000 --- a/tests/music/music-distributed-kv-store-suite/data/register_domain.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "domain":"test_domain" -} \ No newline at end of file diff --git a/tests/music/music-distributed-kv-store-suite/music-distributed-kv-store-test.robot b/tests/music/music-distributed-kv-store-suite/music-distributed-kv-store-test.robot deleted file mode 100644 index de26e5f6..00000000 --- a/tests/music/music-distributed-kv-store-suite/music-distributed-kv-store-test.robot +++ /dev/null @@ -1,53 +0,0 @@ -*** Settings *** -Library OperatingSystem -Library RequestsLibrary -Library json - -*** Variables *** -${MESSAGE} {"ping": "ok"} - -#global variables -${generatedAID} - -*** Test Cases *** -DKV Check Distributed KV Store API Docker Container - [Documentation] Checks if DKV docker container is running - ${rc} ${output}= Run and Return RC and Output docker ps - Log To Console ********************* - Log To Console retrurn_code = ${rc} - Log To Console output = ${output} - Should Be Equal As Integers ${rc} 0 - Should Contain ${output} nexus3.onap.org:10001/onap/music/distributed-kv-store - -DKV LoadDefaultProperties - [Documentation] Loads default configuration files into Consul - Create Session dkv ${DKV_HOSTNAME}:${DKV_PORT} - &{headers}= Create Dictionary Content-Type=application/json Accept=application/json - ${resp}= Get Request dkv /v1/config/load-default headers=${headers} - Log To Console ********************* - Log To Console response = ${resp} - Log To Console body = ${resp.text} - Should Be Equal As Integers ${resp.status_code} 200 - -DKV FetchDefaultProperties - [Documentation] Fetches all default keys from Consul - Create Session dkv ${DKV_HOSTNAME}:${DKV_PORT} - &{headers}= Create Dictionary Content-Type=application/json Accept=application/json - ${resp}= Get Request dkv /v1/getconfigs headers=${headers} - Log To Console ********************* - Log To Console response = ${resp} - Log To Console body = ${resp.text} - Should Be Equal As Integers ${resp.status_code} 200 - -#DKV RegisterDomain -# [Documentation] Send a POST request to create a domain -# Create Session dkv ${DKV_HOSTNAME}:${DKV_PORT} -# ${data}= Get Binary File ${CURDIR}${/}data${/}register_domain.json -# &{headers}= Create Dictionary Content-Type=application/json Accept=application/json -# ${resp}= Post Request dkv v1/register data=${data} headers=${headers} -# Log To Console ********************* -# Log To Console response = ${resp} -# Log To Console body = ${resp.text} -# Should Be Equal As Integers ${resp.status_code} 200 - -*** Keywords *** diff --git a/tests/sdnc/healthcheck/test1.robot b/tests/sdnc/healthcheck/test1.robot index c002a189..3648a8e4 100644 --- a/tests/sdnc/healthcheck/test1.robot +++ b/tests/sdnc/healthcheck/test1.robot @@ -8,7 +8,6 @@ Library String *** Variables *** ${SDN_APIDOCS_URI} /apidoc/apis ${SDN_HEALTHCHECK_OPERATION_PATH} /operations/SLI-API:healthcheck -${PRELOAD_VNF_TOPOLOGY_OPERATION_PATH} /operations/VNF-API:preload-vnf-topology-operation *** Test Cases *** @@ -26,19 +25,3 @@ Check SLI-API ${resp}= Get Request sdnc ${SDN_APIDOCS_URI} headers=${headers} Log ${resp.text} Should Contain ${resp.text} SLI-API - -Check VNF-API - Create Session sdnc http://localhost:8282 - &{headers}= Create Dictionary Authorization=Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ== Content-Type=application/json Accept=application/json - ${resp}= Get Request sdnc ${SDN_APIDOCS_URI} headers=${headers} - Log ${resp.text} - Should Contain ${resp.text} VNF-API - -Test Preload - Create Session sdnc http://localhost:8282/restconf - ${data}= Get File ${CURDIR}${/}data${/}preload.json - &{headers}= Create Dictionary Authorization=Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ== Content-Type=application/json Accept=application/json - ${resp}= Post Request sdnc ${PRELOAD_VNF_TOPOLOGY_OPERATION_PATH} data=${data} headers=${headers} - Log ${resp.text} - Should Be Equal As Strings ${resp.status_code} 200 - Should Be Equal As Strings ${resp.json()['output']['response-code']} 200 diff --git a/tests/vnfsdk-refrepo/csar/invalid_with_security.csar b/tests/vnfsdk-refrepo/csar/invalid_with_security.csar new file mode 100644 index 00000000..c2560bd5 Binary files /dev/null and b/tests/vnfsdk-refrepo/csar/invalid_with_security.csar differ diff --git a/tests/vnfsdk-refrepo/csar_validation_tests.robot b/tests/vnfsdk-refrepo/csar_validation_tests.robot index 9994d567..a7c2c402 100644 --- a/tests/vnfsdk-refrepo/csar_validation_tests.robot +++ b/tests/vnfsdk-refrepo/csar_validation_tests.robot @@ -10,6 +10,7 @@ Perform vnf refrepo healthcheck ${response}= Get Request refrepo /PackageResource/healthcheck Should Be Equal As Strings ${response.status_code} 200 + Validate correct, no security CSAR [Documentation] Valid CSAR with no security should PASS validation and should return no error @@ -18,13 +19,60 @@ Validate correct, no security CSAR # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes ${response}= Remove String ${response} \\\\ \\u003c \\u003e \\" ${json_response}= evaluate json.loads('''${response}''') json - Should Be Equal As Strings ${json_response[0]["results"]["criteria"]} PASS + Should Be Equal As Strings ${json_response[0]["results"]["criteria"]} ${OPERATION_STATUS_PASS} FOR ${resault} IN @{json_response[0]["results"]["results"]} Should Be Equal As Strings ${resault["errors"]} [] Should Be Equal As Strings ${resault["passed"]} True + run keyword if "${resault["vnfreqName"]}" == "${CERTIFICATION_RULE}" + ... Should Be Equal As Strings ${resault["warnings"]} ${expected_valid_no_security_warnings} + END + + +Validate secure CSAR with invalid certificate + [Documentation] Valid CSAR with cms signature in manifest file and certificate in TOSCA, containing individual signatures for multiple artifacts, using common certificate and individual certificate + + ${response}= Validate CSAR usign Post request ${csar_invalid_with_security} ${execute_security_csar_validation} + # Removing strings that are causing errors during evaluation, + # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes + ${response}= Remove String ${response} \\\\ \\u003c \\u003e \\" + ${json_response}= evaluate json.loads('''${response}''') json + Should Be Equal As Strings ${json_response[0]["results"]["criteria"]} ${OPERATION_STATUS_FAILED} + ${validated_rules}= Get Length ${json_response[0]["results"]["results"]} + Should Be Equal As Strings ${validated_rules} 14 + FOR ${resault} IN @{json_response[0]["results"]["results"]} + ${validation_errors}= Get Length ${resault["errors"]} + run keyword if "${resault["vnfreqName"]}" == "${CERTIFICATION_RULE}" + ... Should Be Equal As Strings ${validation_errors} 7 + run keyword if "${resault["vnfreqName"]}" == "${PM_DICTIONARY_YAML_RULE}" + ... Should Be Equal As Strings ${validation_errors} 1 + run keyword if "${resault["vnfreqName"]}" == "${MANIFEST_FILE_RULE}" + ... Should Be Equal As Strings ${validation_errors} 1 + run keyword if "${resault["vnfreqName"]}" == "${NON_MANO_FILES_RULE}" + ... Should Be Equal As Strings ${validation_errors} 4 END +Validate CSAR using selected rules + [Documentation] Valid CSAR using only selected rules provided in request parameters + + ${response}= Validate CSAR usign Post request ${csar_invalid_with_security} ${execute_security_csar_validation_selected_rules} + # Removing strings that are causing errors during evaluation, + # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes + ${response}= Remove String ${response} \\\\ \\u003c \\u003e \\" + ${json_response}= evaluate json.loads('''${response}''') json + Should Be Equal As Strings ${json_response[0]["results"]["criteria"]} ${OPERATION_STATUS_FAILED} + ${validated_rules}= Get Length ${json_response[0]["results"]["results"]} + Should Be Equal As Strings ${validated_rules} 3 + FOR ${resault} IN @{json_response[0]["results"]["results"]} + ${validation_errors}= Get Length ${resault["errors"]} + run keyword if "${resault["vnfreqName"]}" == "${CERTIFICATION_RULE}" + ... Should Be Equal As Strings ${validation_errors} 7 + run keyword if "${resault["vnfreqName"]}" == "${PM_DICTIONARY_YAML_RULE}" + ... Should Be Equal As Strings ${validation_errors} 1 + END + + + Validate CSAR using rule r130206 and use get method to receive outcome [Documentation] Validate CSAR with invalid PM_Dictionary (r130206) using rule r130206 , then use get method with validation id to receive valdiation outcome diff --git a/tests/vnfsdk-refrepo/resources/vnfsdk_properties.robot b/tests/vnfsdk-refrepo/resources/vnfsdk_properties.robot index e46eba6f..bc9684d6 100644 --- a/tests/vnfsdk-refrepo/resources/vnfsdk_properties.robot +++ b/tests/vnfsdk-refrepo/resources/vnfsdk_properties.robot @@ -3,8 +3,20 @@ ${base_url}= http://${REFREPO_IP}:8702/onapapi/vnfsdk-marketplace/v1 ${csarpath}= ${SCRIPTS}/../tests/vnfsdk-refrepo/csar +${CERTIFICATION_RULE}= r130206 +${PM_DICTIONARY_YAML_RULE}= r816745 +${MANIFEST_FILE_RULE}= r01123 +${NON_MANO_FILES_RULE}= r146092 +${OPERATION_STATUS_FAILED}= FAILED +${OPERATION_STATUS_PASS}= PASS + ${csar_valid_no_security}= valid_no_security.csar ${execute_no_security_csar_validation}= [{"scenario": "onap-dublin","testSuiteName": "validation","testCaseName": "csar-validate","parameters": {"csar": "file://${csar_valid_no_security}","pnf":"true"}}] +${expected_valid_no_security_warnings}= [{u'lineNumber': -1, u'message': u'Warning. Consider adding package integrity and authenticity assurance according to ETSI NFV-SOL 004 Security Option 1', u'code': u'0x1006', u'file': u'', u'vnfreqNo': u'R130206'}] + +${csar_invalid_with_security}= invalid_with_security.csar +${execute_security_csar_validation}= [{"scenario": "onap-dublin","testSuiteName": "validation","testCaseName": "csar-validate","parameters": {"csar": "file://${csar_invalid_with_security}","pnf":"true"}}] +${execute_security_csar_validation_selected_rules}= [{"scenario": "onap-dublin","testSuiteName": "validation","testCaseName": "csar-validate","parameters": {"csar": "file://${csar_invalid_with_security}","pnf":"true","rules":"${CERTIFICATION_RULE},${PM_DICTIONARY_YAML_RULE}"}}] ${csar_invalid_pm_dictionary}= invalid_pm_dictionary.csar ${execute_invalid_pm_dictionary_r130206_validation}= [{"scenario": "onap-dublin","testSuiteName": "validation","testCaseName": "csar-validate-r130206","parameters": {"csar": "file://${csar_invalid_pm_dictionary}","pnf":"true"}}]