Merge "CSIT Support for ServiceLevel PNF Software Upgrade"
authorMorgan Richomme <morgan.richomme@orange.com>
Fri, 8 Jan 2021 12:06:42 +0000 (12:06 +0000)
committerGerrit Code Review <gerrit@onap.org>
Fri, 8 Jan 2021 12:06:42 +0000 (12:06 +0000)
21 files changed:
plans/ccsdk-oran/polmansuite/setup.sh
plans/ccsdk-oran/polmansuite/test_env-master.sh
plans/ccsdk/healthcheck/setup.sh [deleted file]
plans/ccsdk/healthcheck/teardown.sh [deleted file]
plans/ccsdk/healthcheck/testplan.txt [deleted file]
plans/music/music-distributed-kv-store-test-plan/setup.sh [deleted file]
plans/music/music-distributed-kv-store-test-plan/teardown.sh [deleted file]
plans/music/music-distributed-kv-store-test-plan/testplan.txt [deleted file]
plans/sdnc/healthcheck/setup.sh
scripts/ccsdk/healthcheck/health_check.sh [deleted file]
scripts/policy/docker-compose-all.yml
scripts/policy/wait_for_port.sh
tests/ccsdk/healthcheck/__init__.robot [deleted file]
tests/ccsdk/healthcheck/test1.robot [deleted file]
tests/music/music-distributed-kv-store-suite/__init__.robot [deleted file]
tests/music/music-distributed-kv-store-suite/data/register_domain.json [deleted file]
tests/music/music-distributed-kv-store-suite/music-distributed-kv-store-test.robot [deleted file]
tests/sdnc/healthcheck/test1.robot
tests/vnfsdk-refrepo/csar/invalid_with_security.csar [new file with mode: 0644]
tests/vnfsdk-refrepo/csar_validation_tests.robot
tests/vnfsdk-refrepo/resources/vnfsdk_properties.robot

index b02d9db..cf9ebde 100755 (executable)
@@ -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
index 2b41fe8..b012b84 100644 (file)
@@ -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 (file)
index 2a5ef4d..0000000
+++ /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 (file)
index 5682078..0000000
+++ /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 (file)
index 2cd8cda..0000000
+++ /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 (file)
index 88becf6..0000000
+++ /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 (file)
index 0abf3a6..0000000
+++ /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 (file)
index 654f078..0000000
+++ /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
index a11a3aa..99753df 100755 (executable)
 # 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 (file)
index aed3b5a..0000000
+++ /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
index 7b1f00a..00f7635 100644 (file)
@@ -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'
index c50cd97..1d2f515 100755 (executable)
@@ -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 (file)
index 1259b89..0000000
+++ /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 (file)
index fea86c3..0000000
+++ /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 (file)
index d1da7f3..0000000
+++ /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 (file)
index 96811ee..0000000
+++ /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 (file)
index de26e5f..0000000
+++ /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 ***
index c002a18..3648a8e 100644 (file)
@@ -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 (file)
index 0000000..c2560bd
Binary files /dev/null and b/tests/vnfsdk-refrepo/csar/invalid_with_security.csar differ
index 9994d56..a7c2c40 100644 (file)
@@ -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
 
index e46eba6..bc9684d 100644 (file)
@@ -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"}}]