From: Bartosz Gardziejewski Date: Tue, 29 Sep 2020 11:50:12 +0000 (+0200) Subject: Fixing CSIT tests for vnfsdk-refrepo and vnfsdk-marketplace. X-Git-Tag: 7.0.1~21 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=integration%2Fcsit.git;a=commitdiff_plain;h=03591ab4f63d6a95b9fc03fdf14ea10bc1d3c94c Fixing CSIT tests for vnfsdk-refrepo and vnfsdk-marketplace. Signed-off-by: Bartosz Gardziejewski Change-Id: I75e2181d2bb1c70c80ab6f4f51eb8190bec7faa7 Issue-ID: VNFSDK-659 --- diff --git a/plans/vnfsdk-marketplace/testsuites/docker-compose.yml b/plans/vnfsdk-marketplace/testsuites/docker-compose.yml new file mode 100644 index 00000000..f1bb90c5 --- /dev/null +++ b/plans/vnfsdk-marketplace/testsuites/docker-compose.yml @@ -0,0 +1,43 @@ +# Copyright 2020 Huawei Technologies Co., Ltd. +# Copyright 2020 Nokia. +# +# 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. + +version: '2' +networks: + default: + driver: bridge + driver_opts: + com.docker.network.driver.mtu: ${NETWORK_DRIVER_MTU} + +services: + postgres: + container_name: "postgres" + restart: "always" + image: "nexus3.onap.org:10001/onap/vnfsdk/refrepo/postgres:${POSTGRES_IMAGE_TAG}" + mem_limit: "1g" + memswap_limit: "1g" + ports: + - "5432:5432" + + refrepo: + container_name: "refrepo" + restart: "always" + image: "nexus3.onap.org:10001/onap/vnfsdk/refrepo:${REFREPO_IMAGE_TAG}" + ports: + - "8702-8703:8702-8703" + - "50051:50051" + environment: + POSTGRES_SERVICE_HOST: postgres + links: + - postgres diff --git a/plans/vnfsdk-marketplace/sanity-check/enterprise2DC.csar b/plans/vnfsdk-marketplace/testsuites/enterprise2DC.csar similarity index 100% rename from plans/vnfsdk-marketplace/sanity-check/enterprise2DC.csar rename to plans/vnfsdk-marketplace/testsuites/enterprise2DC.csar diff --git a/plans/vnfsdk-refrepo/sanity-check/setup.sh b/plans/vnfsdk-marketplace/testsuites/setup.sh similarity index 57% rename from plans/vnfsdk-refrepo/sanity-check/setup.sh rename to plans/vnfsdk-marketplace/testsuites/setup.sh index ed39d678..a30a682c 100644 --- a/plans/vnfsdk-refrepo/sanity-check/setup.sh +++ b/plans/vnfsdk-marketplace/testsuites/setup.sh @@ -1,6 +1,7 @@ #!/bin/bash # # Copyright 2016-2017 Huawei Technologies Co., Ltd. +# Copyright 2020 Nokia. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,25 +16,28 @@ # limitations under the License. # # These scripts are sourced by run-csit.sh. -VNFSDK_REFREPO_DOCKER_VERSION=1.3-STAGING-latest -#Start postgres database -docker run -d -i -t --name=postgres -p 5432:5432 nexus3.onap.org:10001/onap/vnfsdk/refrepo/postgres:latest +REFREPO_IMAGE_TAG=1.6.0-STAGING-latest \ +POSTGRES_IMAGE_TAG=latest \ +NETWORK_DRIVER_MTU=1450 \ +docker-compose up -d -POSTGRES=`docker inspect --format '{{ .NetworkSettings.IPAddress }}' postgres` - -#Start market place -docker run -d -i -t --name=refrepo -e POSTGRES_SERVICE_HOST=$POSTGRES -p 8702:8702 nexus3.onap.org:10001/onap/vnfsdk/refrepo:$VNFSDK_REFREPO_DOCKER_VERSION +DOCKER_IP=`get-docker-network-ip.sh` # Wait for Market place initialization echo Wait for VNF Repository initialization -for i in {1..30}; do - sleep 1 +# Active waiting with healthcheck and max retry count +MAX_RETRY=30 +TRY=1 +while (( $(curl -s -o /dev/null -w ''%{http_code}'' ${DOCKER_IP}:8702/onapapi/vnfsdk-marketplace/v1/PackageResource/healthcheck) != 200 )) && (($TRY < $MAX_RETRY)); do + sleep 4 + TRY=$[$TRY+1] done -REPO_IP=`docker inspect --format '{{ .NetworkSettings.IPAddress }}' refrepo` - +# Get refrepo logs for easier debug in case of failure +docker logs refrepo +REFREPO_IP=`get-instance-ip.sh refrepo` # Pass any variables required by Robot test suites in ROBOT_VARIABLES -ROBOT_VARIABLES="-v SCRIPTS:${SCRIPTS} -v REPO_IP:${REPO_IP}" +ROBOT_VARIABLES="-v SCRIPTS:${SCRIPTS} -v REPO_IP:${REFREPO_IP}" echo ${ROBOT_VARIABLES} diff --git a/plans/vnfsdk-marketplace/sanity-check/teardown.sh b/plans/vnfsdk-marketplace/testsuites/teardown.sh similarity index 93% rename from plans/vnfsdk-marketplace/sanity-check/teardown.sh rename to plans/vnfsdk-marketplace/testsuites/teardown.sh index 42d7b7fd..1bf79225 100644 --- a/plans/vnfsdk-marketplace/sanity-check/teardown.sh +++ b/plans/vnfsdk-marketplace/testsuites/teardown.sh @@ -1,6 +1,7 @@ #!/bin/bash # # Copyright 2016-2017 Huawei Technologies Co., Ltd. +# Copyright 2020 Nokia. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,6 +17,4 @@ # # This script is sourced by run-csit.sh after Robot test completion. - -kill-instance.sh vnfmarket - +docker-compose down diff --git a/plans/vnfsdk-marketplace/sanity-check/testplan.txt b/plans/vnfsdk-marketplace/testsuites/testplan.txt similarity index 100% rename from plans/vnfsdk-marketplace/sanity-check/testplan.txt rename to plans/vnfsdk-marketplace/testsuites/testplan.txt diff --git a/plans/vnfsdk-marketplace/sanity-check/uploadCSAR.sh b/plans/vnfsdk-marketplace/testsuites/uploadCSAR.sh similarity index 100% rename from plans/vnfsdk-marketplace/sanity-check/uploadCSAR.sh rename to plans/vnfsdk-marketplace/testsuites/uploadCSAR.sh diff --git a/plans/vnfsdk-refrepo/sanity-check/enterprise2DC.csar b/plans/vnfsdk-refrepo/sanity-check/enterprise2DC.csar deleted file mode 100644 index 0960b20a..00000000 Binary files a/plans/vnfsdk-refrepo/sanity-check/enterprise2DC.csar and /dev/null differ diff --git a/plans/vnfsdk-refrepo/sanity-check/uploadCSAR.sh b/plans/vnfsdk-refrepo/sanity-check/uploadCSAR.sh deleted file mode 100644 index 279912c3..00000000 --- a/plans/vnfsdk-refrepo/sanity-check/uploadCSAR.sh +++ /dev/null @@ -1,138 +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. -############################################################################### -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -echo $SCRIPT_DIR - -#CHECK IF MSB_ADDR IS GIVEN IN COMMAND -if [ -z "$1" ] -then - echo "There is no MSB_ADDR" - exit 1 -fi -MSB_ADDR=$1 -CSAR_NAME=$2 -echo $MSB_ADDR -echo $CSAR_NAME - -# Wait for MSB initialization -echo Wait for MSB initialization -for i in {1..20}; do - curl -sS -m 1 $MSB_ADDR > /dev/null && break - sleep $i -done -#MSB initialized -########################################### -########################################### -########################################### -########################################### -########################################### -########################################### -############UOLOAD PACKAGE to MARKET PLACE###################### -echo -echo "############## UOLOAD PACKAGE to MARKET PLACE STARTED ##############"; -UploadPackageResponse=$(curl -sS -X POST -H "Content-Type: multipart/form-data;" -F "file=@$CSAR_NAME" http://$MSB_ADDR/openoapi/vnfsdk-marketplace/v1/PackageResource/csars) -if echo "$UploadPackageResponse" | grep -q "\"csarId\""; then - echo "UOLOAD PACKAGE TO MARKET PLACE SUCSSS !!!"; -else - echo "UploadPackageResponse :$UploadPackageResponse" - echo "UOLOAD PACKAGE TO MARKET PLACE FAILED !!!"; - exit 1; -fi -UploadCsarId=$(echo ${UploadPackageResponse:11:36}) -echo "PACKAGE ID:$UploadCsarId" -echo "############## UOLOAD PACKAGE to MARKET PLACE END ##################"; -#######UOLOAD PACKAGE to MARKET PLACE END############# -########################################### -########################################### -########################################### -########################################### -########################################### -########################################### -########################################### -################GET ON BOARD STATUS######## -echo -echo "####################### GETTING ON-BOARDING STATUS ##################"; -#sleeping for 10 sec so thate ON Boarding operation should be happened at backend -for pc in $(seq 1 10); do - status=$((${pc}*10)); - echo -ne "ON_BOARDING Status (%): $status\033[0K\r" - sleep 1 -done -echo - -#Three Retries for getting On Boarding Result -#count=0 -#while [ $count -lt 3 ] -#do -# OnBoardStatusResponse=$(curl -sS -X GET "http://$MSB_ADDR/openoapi/vnfsdk-marketplace/v1/PackageResource/csars/$UploadCsarId/onboardstatus?operTypeId=functiontest&operId=functestexec" -H "Accept: application/json" -H "Content-Type: application/json") -# echo $OnBoardStatusResponse -# if echo "$OnBoardStatusResponse" | grep -q "\"status\":0"; then -# break; -# else -# if [ $count -eq 3 ] -# then -# echo "ON-BOARDING OPERATION FAILED !!!"; -# fi -# count=`expr $count + 1`; -# sleep 3; -# fi -#done -echo "GET ON-BOARDING RESULT OPERATION SUCESS "; -echo "##################### GETTING ON-BOARDING STATUS END #################"; -####################GET ON BOARD STATUS END############ -########################################## -########################################## -########################################## -########################################## -########################################## -#################DOWNLOAD PACKAGE######### -echo -echo "############## DOWNLOADED PACKAGE FROM MARKET STARTED #################"; -PACKAGE_NAME=market_temp.csar -curl -sS -X GET "http://$MSB_ADDR/openoapi/vnfsdk-marketplace/v1/PackageResource/csars/$UploadCsarId/files" > $PACKAGE_NAME -fileSize=$(du -b $PACKAGE_NAME | cut -f 1) -if [ $fileSize -eq 0 ] -then - echo "DOWNLOADED PACKAGE FROM MARKET NOT PROPER, ON-BOARDING OPERATION FAILED !!!"; - exit 1; -fi -echo "DOWNLOADED PACKAGE FROM MARKET OPERATION SUCESS !!!"; -echo "MARKET PACKAGE NAME:$PACKAGE_NAME" -echo "##################### DOWNLOADED PACKAGE FROM MARKET ##################"; -###################DOWNLOAD PACKAGE END##################### -########################################## -########################################## -########################################## -########################################## -##########CATALOUGE START################# -echo -PACKAGE_NAME=$CSAR_NAME -#Check if common-tosca-catalog is registered with MSB or not -#curl -sS -X GET http://$MSB_ADDR/api/microservices/v1/services/catalog/version/v1 -H "Accept: application/json" -H "Content-Type: application/json" -#check if common-tosca-aria is registered with MSB or not -#curl -sS -X GET http://$MSB_ADDR/api/microservices/v1/services/tosca/version/v1 -H "Accept: application/json" -H "Content-Type: application/json" -#echo Sending POST request to Catalog -CsarIdString=$(curl -sS -X POST -H "Content-Type: multipart/form-data; boundary=-WebKitFormBoundary7MA4YWxkTrZu0gW" -H "Cache-Control: no-cache" -H "Postman-Token: abcb6497-b225-c592-01be-e9ff460ca188" -F "file=@$PACKAGE_NAME" http://$MSB_ADDR/openoapi/catalog/v1/csars) -#getting csarId from the output of curl request -CsarId=$(echo ${CsarIdString:11:36}) -echo $CsarId -echo $CsarIdString -#csarid is sucessfully stored in CsarId variable -echo "====finished======" -##########CATALOUGE END############ -echo "DELETING PACAKE LOCAL COPY:$PACKAGE_NAME"; -#rm $PACKAGE_NAME; diff --git a/plans/vnfsdk-refrepo/testsuites/setup.sh b/plans/vnfsdk-refrepo/testsuites/setup.sh new file mode 100644 index 00000000..094943ac --- /dev/null +++ b/plans/vnfsdk-refrepo/testsuites/setup.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# Copyright 2020 Nokia. +# +# 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. +# +# These scripts are sourced by run-csit.sh. + +VNFSDK_REFREPO_DOCKER_VERSION=1.6.0-STAGING-latest + +#Start market place +docker run -d -i -t --name refrepo -p 8702:8702 nexus3.onap.org:10001/onap/vnfsdk/refrepo:$VNFSDK_REFREPO_DOCKER_VERSION +DOCKER_IP=`get-docker-network-ip.sh` + +# Wait for Market place initialization +echo Wait for VNF Repository initialization +# Active waiting with healthcheck and max retry count +MAX_RETRY=30 +TRY=1 +while (( $(curl -s -o /dev/null -w ''%{http_code}'' ${DOCKER_IP}:8702/onapapi/vnfsdk-marketplace/v1/PackageResource/healthcheck) != 200 )) && (($TRY < $MAX_RETRY)); do + sleep 4 + TRY=$[$TRY+1] +done + +REFREPO_IP=`get-instance-ip.sh refrepo` + +# Get refrepo logs for easier debug in case of failure +docker logs refrepo + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v SCRIPTS:${SCRIPTS} -v REFREPO_IP:${REFREPO_IP}" +echo ${ROBOT_VARIABLES} diff --git a/plans/vnfsdk-refrepo/sanity-check/teardown.sh b/plans/vnfsdk-refrepo/testsuites/teardown.sh similarity index 96% rename from plans/vnfsdk-refrepo/sanity-check/teardown.sh rename to plans/vnfsdk-refrepo/testsuites/teardown.sh index 19440bc7..f7c57113 100644 --- a/plans/vnfsdk-refrepo/sanity-check/teardown.sh +++ b/plans/vnfsdk-refrepo/testsuites/teardown.sh @@ -1,6 +1,7 @@ #!/bin/bash # # Copyright 2016-2017 Huawei Technologies Co., Ltd. +# Copyright 2020 Nokia. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,8 +17,5 @@ # # This script is sourced by run-csit.sh after Robot test completion. - kill-instance.sh refrepo -kill-instance.sh postgres - diff --git a/plans/vnfsdk-refrepo/sanity-check/testplan.txt b/plans/vnfsdk-refrepo/testsuites/testplan.txt similarity index 61% rename from plans/vnfsdk-refrepo/sanity-check/testplan.txt rename to plans/vnfsdk-refrepo/testsuites/testplan.txt index b5370f38..bc6629d6 100644 --- a/plans/vnfsdk-refrepo/sanity-check/testplan.txt +++ b/plans/vnfsdk-refrepo/testsuites/testplan.txt @@ -1,3 +1,3 @@ ## Test suites are relative paths under [integration/csit.git]/tests/. ## Place the suites in run order. -vnfsdk-marketplace/provision/sanity_test_vnfsdktestfunction.robot +vnfsdk-refrepo/csar_validation_tests.robot diff --git a/plans/vnfsdk-marketplace/sanity-check/setup.sh b/scripts/get-docker-network-ip.sh old mode 100644 new mode 100755 similarity index 59% rename from plans/vnfsdk-marketplace/sanity-check/setup.sh rename to scripts/get-docker-network-ip.sh index 85c6bc27..383decd7 --- a/plans/vnfsdk-marketplace/sanity-check/setup.sh +++ b/scripts/get-docker-network-ip.sh @@ -1,6 +1,5 @@ #!/bin/bash -# -# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# Copyright 2020 Nokia. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,18 +12,5 @@ # 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. -# -# These scripts are sourced by run-csit.sh. - - - -#Start market place -docker run -d -i -t --name=vnfmarket -p 8702:8702 onap/vnfmarket - -REPO_IP=`docker inspect --format '{{ .NetworkSettings.IPAddress }}' vnfmarket` - - -# Pass any variables required by Robot test suites in ROBOT_VARIABLES -ROBOT_VARIABLES="-v REPO_IP:${REPO_IP}" - +ip a | grep docker | grep inet | awk '{print $2}' | awk -F'/' '{print $1}' diff --git a/tests/vnfsdk-refrepo/csar_validation_tests.robot b/tests/vnfsdk-refrepo/csar_validation_tests.robot new file mode 100644 index 00000000..88075c6f --- /dev/null +++ b/tests/vnfsdk-refrepo/csar_validation_tests.robot @@ -0,0 +1,18 @@ +*** Settings *** +Library OperatingSystem +Library Process +Library String +Library Collections +Library RequestsLibrary +Library json + + +*** Variables *** +${base_url}= http://${REFREPO_IP}:8702/onapapi/vnfsdk-marketplace/v1 + +*** Test Cases *** +Perform vnf refrepo healthcheck + [Documentation] Check if vnf refrepo is up and running + Create Session refrepo ${base_url} + ${response}= Get Request refrepo /PackageResource/healthcheck + Should Be Equal As Strings ${response.status_code} 200