Fixing CSIT tests for vnfsdk-refrepo and vnfsdk-marketplace.

Signed-off-by: Bartosz Gardziejewski <bartosz.gardziejewski@nokia.com>
Change-Id: I75e2181d2bb1c70c80ab6f4f51eb8190bec7faa7
Issue-ID: VNFSDK-659
diff --git a/plans/vnfsdk-marketplace/sanity-check/setup.sh b/plans/vnfsdk-marketplace/sanity-check/setup.sh
deleted file mode 100644
index 85c6bc2..0000000
--- a/plans/vnfsdk-marketplace/sanity-check/setup.sh
+++ /dev/null
@@ -1,30 +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.
-#
-# 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}"
-
-
diff --git a/plans/vnfsdk-marketplace/testsuites/docker-compose.yml b/plans/vnfsdk-marketplace/testsuites/docker-compose.yml
new file mode 100644
index 0000000..f1bb90c
--- /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
Binary files differ
diff --git a/plans/vnfsdk-marketplace/testsuites/setup.sh b/plans/vnfsdk-marketplace/testsuites/setup.sh
new file mode 100644
index 0000000..a30a682
--- /dev/null
+++ b/plans/vnfsdk-marketplace/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.
+
+REFREPO_IMAGE_TAG=1.6.0-STAGING-latest \
+POSTGRES_IMAGE_TAG=latest \
+NETWORK_DRIVER_MTU=1450 \
+docker-compose up -d
+
+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
+
+# 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:${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 42d7b7f..1bf7922 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 0960b20..0000000
--- a/plans/vnfsdk-refrepo/sanity-check/enterprise2DC.csar
+++ /dev/null
Binary files differ
diff --git a/plans/vnfsdk-refrepo/sanity-check/setup.sh b/plans/vnfsdk-refrepo/sanity-check/setup.sh
deleted file mode 100644
index ed39d67..0000000
--- a/plans/vnfsdk-refrepo/sanity-check/setup.sh
+++ /dev/null
@@ -1,39 +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.
-#
-# 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
-
-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
-
-# Wait for Market place initialization
-echo Wait for VNF Repository initialization
-for i in {1..30}; do
-    sleep 1
-done
-
-REPO_IP=`docker inspect --format '{{ .NetworkSettings.IPAddress }}' refrepo`
-
-
-# Pass any variables required by Robot test suites in ROBOT_VARIABLES
-ROBOT_VARIABLES="-v SCRIPTS:${SCRIPTS} -v REPO_IP:${REPO_IP}"
-echo ${ROBOT_VARIABLES}
diff --git a/plans/vnfsdk-refrepo/sanity-check/uploadCSAR.sh b/plans/vnfsdk-refrepo/sanity-check/uploadCSAR.sh
deleted file mode 100644
index 279912c..0000000
--- 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 0000000..094943a
--- /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 95%
rename from plans/vnfsdk-refrepo/sanity-check/teardown.sh
rename to plans/vnfsdk-refrepo/testsuites/teardown.sh
index 19440bc..f7c5711 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 b5370f3..bc6629d 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/teardown.sh b/scripts/get-docker-network-ip.sh
old mode 100644
new mode 100755
similarity index 77%
copy from plans/vnfsdk-marketplace/sanity-check/teardown.sh
copy to scripts/get-docker-network-ip.sh
index 42d7b7f..383decd
--- a/plans/vnfsdk-marketplace/sanity-check/teardown.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,9 +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.
-#
-# This script is sourced by run-csit.sh after Robot test completion.
 
-
-kill-instance.sh vnfmarket
-
+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 0000000..88075c6
--- /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