Fixing CSIT ETSI NFVO Failures on Master + Small Refactoring
[integration/csit.git] / plans / so / integration-etsi-testing / setup.sh
index ee0058e..950571f 100755 (executable)
@@ -22,7 +22,7 @@
 
 MAVEN_VERSION_DIR="apache-maven-3.3.9"
 MAVEN_TAR_FILE="$MAVEN_VERSION_DIR-bin.tar.gz"
-MAVEN_TAR_LOCATION="http://apache.claz.org/maven/maven-3/3.3.9/binaries/$MAVEN_TAR_FILE"
+MAVEN_TAR_LOCATION="https://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/$MAVEN_TAR_FILE"
 
 SCRIPT_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 SCRIPT_NAME=$(basename $0)
@@ -31,6 +31,11 @@ ENV_FILE=$CONFIG_DIR/env
 TEMP_DIR_PATH=$SCRIPT_HOME/temp
 TEST_LAB_DIR_PATH=$TEMP_DIR_PATH/test_lab
 DOCKER_COMPOSE_FILE_PATH=$SCRIPT_HOME/docker-compose.yml
+DOCKER_COMPOSE_LOCAL_OVERRIDE_FILE=$SCRIPT_HOME/docker-compose.local.yml
+TEAR_DOWN_SCRIPT=$SCRIPT_HOME/teardown.sh
+CAMUNDA_SQL_SCRIPT_NAME=mariadb_engine_7.10.0.sql
+CAMUNDA_SQL_SCRIPT_DIR=$CONFIG_DIR/camunda-sql
+TEST_LAB_SQL_SCRIPTS_DIR=$TEST_LAB_DIR_PATH/volumes/mariadb/docker-entrypoint-initdb.d/db-sql-scripts
 
 MAVEN_DIR=$TEMP_DIR_PATH/maven
 INSTALLED_MAVEN_DIR=$MAVEN_DIR/$MAVEN_VERSION_DIR
@@ -47,7 +52,7 @@ echo "Running $SCRIPT_HOME/$SCRIPT_NAME ..."
 
 export $(egrep -v '^#' $ENV_FILE | xargs)
 
-MANDATORY_VARIABLES_NAMES=( "NEXUS_DOCKER_REPO_MSO" "TAG" "TIME_OUT_DEFAULT_VALUE_SEC" "PROJECT_NAME" "DEFAULT_NETWORK_NAME")
+MANDATORY_VARIABLES_NAMES=( "NEXUS_DOCKER_REPO_MSO" "DOCKER_ENVIRONMENT" "TAG" "TIME_OUT_DEFAULT_VALUE_SEC" "PROJECT_NAME" "DEFAULT_NETWORK_NAME", "ETSI_CATALOG_IMAGE_VERSION", "SOL_003_ADAPTER_IMAGE_VERSION", "ETSI_NFVO_NS_LCM_IMAGE_VERSION", "MARIADB_VERSION")
 
 for var in "${MANDATORY_VARIABLES_NAMES[@]}"
  do
@@ -99,7 +104,7 @@ if [[ ! "$INSTALLED_MAVEN_DIR" || ! -d "$INSTALLED_MAVEN_DIR" ]]; then
                 exit 1
         fi
 
-        tar -xzvf apache-maven-3.3.9-bin.tar.gz
+        tar -xzvf $MAVEN_TAR_FILE
 
         echo "Finished installing maven ..."
 fi
@@ -134,21 +139,36 @@ fi
 
 git clone http://gerrit.onap.org/r/so/docker-config.git $TEST_LAB_DIR_PATH
 
+echo "Replacing $CAMUNDA_SQL_SCRIPT_NAME ..."
+rm -rf $TEST_LAB_SQL_SCRIPTS_DIR/$CAMUNDA_SQL_SCRIPT_NAME
+cp $CAMUNDA_SQL_SCRIPT_DIR/$CAMUNDA_SQL_SCRIPT_NAME $TEST_LAB_SQL_SCRIPTS_DIR
+
 export TEST_LAB_DIR=$TEST_LAB_DIR_PATH
 export CONFIG_DIR_PATH=$CONFIG_DIR
 
-docker-compose -f $DOCKER_COMPOSE_FILE_PATH -p $PROJECT_NAME up -d 
+if [ "$DOCKER_ENVIRONMENT" == "remote" ]; then
+  echo "Starting docker containers with remote images ..."
+  docker-compose -f $DOCKER_COMPOSE_FILE_PATH -p $PROJECT_NAME up -d
+elif [ "$DOCKER_ENVIRONMENT" == "local" ]; then
+  echo "Starting docker containers with local images ..."
+  docker-compose -f $DOCKER_COMPOSE_FILE_PATH -f $DOCKER_COMPOSE_LOCAL_OVERRIDE_FILE -p $PROJECT_NAME up -d
+else
+  echo "DOCKER_ENVIRONMENT not set correctly in $ENV_FILE.  Allowed values: local | remote"
+  exit 1
+fi
 
 echo "Sleeping for 3m"
 sleep 3m
 
+docker ps -a
+
 echo "Will execute $WAIT_FOR_WORKAROUND_SCRIPT script"
 $WAIT_FOR_WORKAROUND_SCRIPT
 
 if [ $? -ne 0 ]; then
    echo "ERROR: $WAIT_FOR_WORKAROUND_SCRIPT failed"
    echo "Will stop running docker containers . . ."
-   docker-compose -f $DOCKER_COMPOSE_FILE_PATH -p $PROJECT_NAME down
+   $TEAR_DOWN_SCRIPT
    exit 1
 fi
 
@@ -158,22 +178,29 @@ $WAIT_FOR_POPULATE_AAI_SCRIPT
 if [ $? -ne 0 ]; then
    echo "ERROR: $WAIT_FOR_POPULATE_AAI_SCRIPT failed"
    echo "Will stop running docker containers . . ."
-   docker-compose -f $DOCKER_COMPOSE_FILE_PATH -p $PROJECT_NAME down
+   $TEAR_DOWN_SCRIPT
    exit 1
 fi
 
-API_INFRA_CONTAINER_NAME="api-handler-infra"
-echo "Will execute $WAIT_FOR_CONTAINER_SCRIPT to wait for $API_INFRA_CONTAINER_NAME container to start up"
-$WAIT_FOR_CONTAINER_SCRIPT -c "$API_INFRA_CONTAINER_NAME" -t "300" -n "$DEFAULT_NETWORK_NAME"
+PODS_NAMES=( "api-handler-infra" "modeling-etsicatalog" "so-etsi-nfvo-ns-lcm")
 
-if [ $? -ne 0 ]; then
-   echo "ERROR: $WAIT_FOR_CONTAINER_SCRIPT failed"
-   echo "Will stop running docker containers . . ."
-   docker-compose -f $DOCKER_COMPOSE_FILE_PATH -p $PROJECT_NAME down
-   exit 1
-fi
+for pod in "${PODS_NAMES[@]}"
+ do
+     echo "Will execute $WAIT_FOR_CONTAINER_SCRIPT to wait for $pod container to start up"
+     $WAIT_FOR_CONTAINER_SCRIPT -c "$pod" -t "300" -n "$DEFAULT_NETWORK_NAME"
+
+     if [ $? -ne 0 ]; then
+        echo "ERROR: $WAIT_FOR_CONTAINER_SCRIPT for pod: $pod failed"
+        echo "Will stop running docker containers . . ."
+        $TEAR_DOWN_SCRIPT
+        exit 1
+     fi
+done
 
 REPO_IP='127.0.0.1'
 ROBOT_VARIABLES="-v REPO_IP:${REPO_IP}"
 
+# install required Robot libraries
+pip install robotframework-archivelibrary
+
 echo "Finished executing $SCRIPT_HOME/$SCRIPT_NAME"