Fix CCSDK healthcheck CSIT 66/114166/4
authorLasse Kaihlavirta <l.kaihlavirt@partner.samsung.com>
Thu, 22 Oct 2020 14:26:58 +0000 (17:26 +0300)
committerLasse Kaihlavirta <l.kaihlavirt@partner.samsung.com>
Mon, 26 Oct 2020 09:29:22 +0000 (11:29 +0200)
 - update tested images to version 1.1-STAGING-latest
 - fix and improve readiness checks
 - reduce timeouts significantly
 - fail setup (and the whole test suite) if readiness check never succeeds
 - move health_check.sh to proper place under csit/scripts dir
   and remove unnecessary script1.sh

Issue-ID: CCSDK-2850, CCSDK-2851
Signed-off-by: Lasse Kaihlavirta <l.kaihlavirt@partner.samsung.com>
Change-Id: Ia76b6e98b47888faf043897eb0f3af0ef7ba5800

plans/ccsdk/healthcheck/setup.sh
scripts/ccsdk/healthcheck/health_check.sh [moved from plans/ccsdk/healthcheck/health_check.sh with 84% similarity]
scripts/ccsdk/script1.sh [deleted file]
tests/ccsdk/healthcheck/test1.robot

index 3a86564..6a3841e 100644 (file)
 # 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/ccsdk/script1.sh
-
 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=0.6-STAGING-latest
+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
@@ -53,37 +50,16 @@ curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose
 chmod +x docker-compose
 ./docker-compose up -d
 
-# WAIT 5 minutes maximum and test every 5 seconds if CCSDK is up using HealthCheck API
-TIME_OUT=500
-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-ccsdk" -H "X-TransactionId: csit-ccsdk" -H "Accept: application/json" -H "Content-Type: application/json" -d '{"input":{"dummy":"dummy"}}' http://localhost:8383/restconf/operations/SLI-API:healthcheck ); echo $response
-
-  if [ "$response" == "200" ]; then
-    echo CCSDK started in $TIME seconds
-    break;
-  fi
-
-  echo Sleep: $INTERVAL seconds before testing if CCSDK 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
+# WAIT 5 minutes maximum and check karaf.log for readiness every 10 seconds
 
-TIME_OUT=1500
-INTERVAL=60
+TIME_OUT=300
+INTERVAL=10
 TIME=0
 while [ "$TIME" -lt "$TIME_OUT" ]; do
 
-response=$(docker exec ccsdk_odlsli_container /opt/opendaylight/current/bin/client system:start-level)
+docker exec ccsdk_odlsli_container cat /opt/opendaylight/data/log/karaf.log | grep 'warp coils'
 
-  if [ "$response" == "Level 100" ] ; then
+  if [ $? == 0 ] ; then
     echo CCSDK karaf started in $TIME seconds
     break;
   fi
@@ -94,16 +70,16 @@ response=$(docker exec ccsdk_odlsli_container /opt/opendaylight/current/bin/clie
 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 ccsdk_odlsli_container /opt/opendaylight/current/bin/client system:start-level)
-num_bundles=$(docker exec ccsdk_odlsli_container /opt/opendaylight/current/bin/client bundle:list | tail -1 | cut -d\| -f1)
+num_bundles=$(docker exec -i ccsdk_odlsli_container /opt/opendaylight/current/bin/client bundle:list | tail -1 | cut -d' ' -f1)
 
-  if [ "$response" == "Level 100" ] && [ "$num_bundles" -ge 333 ]; then
-    num_bundles=$(docker exec ccsdk_odlsli_container /opt/opendaylight/current/bin/client bundle:list | tail -1 | cut -d\| -f1)
-    num_failed_bundles=$(docker exec ccsdk_odlsli_container /opt/opendaylight/current/bin/client bundle:list | grep Failure | wc -l)
-    failed_bundles=$(docker exec ccsdk_odlsli_container /opt/opendaylight/current/bin/client bundle:list | grep Failure)
+  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
 
similarity index 84%
rename from plans/ccsdk/healthcheck/health_check.sh
rename to scripts/ccsdk/healthcheck/health_check.sh
index 58ccb42..aed3b5a 100644 (file)
 # 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.
+#
 ###############################################################################
-SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-echo $SCRIPTS
-
 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" -d '{"input":{"dummy":"dummy"}}' http://localhost:8383/restconf/operations/SLI-API:healthcheck )
+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."
diff --git a/scripts/ccsdk/script1.sh b/scripts/ccsdk/script1.sh
deleted file mode 100644 (file)
index 223479e..0000000
+++ /dev/null
@@ -1,20 +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
-#
-
-echo "This is ${WORKSPACE}/scripts/ccsdk/script1.sh"
index 3c81d70..fea86c3 100644 (file)
@@ -4,7 +4,7 @@ Library           Process
 
 *** Variables ***
 
-${health_check}    ${SCRIPTS}/health_check.sh
+${health_check}    ${SCRIPTS}/ccsdk/healthcheck/health_check.sh
 
 
 *** Test Cases ***