Merge "Add sdnc-a1-controller in build process"
[nonrtric.git] / near-rt-ric-simulator / common / testcase_common.sh
index 6f2097e..7d55b15 100755 (executable)
@@ -2,14 +2,21 @@
 
 . ../common/test_env.sh
 
-echo "Test case started as: ${BASH_SOURCE[$i+1]} "$1 $2
+echo "Test case started as: ${BASH_SOURCE[$i+1]} "$1 $2 $3
+echo "Numbers of ric simulator started" $2
+
+# This is a script that contains all the functions needed for auto test
+# Arg: local | remote (1, 2, 3, 4....)
 
 STARTED_POLICY_AGENT="" #Policy agent app names added to this var to keep track of started container in the script
 START_ARG=$1
 IMAGE_TAG="1.0.0-SNAPSHOT"
+IMAGE_TAG_REMOTE="latest"
+RIC_NUMBER=$2
+SDNC=$3
 
-if [ $# -lt 1 ] || [ $# -gt 2 ]; then
-       echo "Expected arg: local [<image-tag>] ]| remote [<image-tag>] ]| remote-remove [<image-tag>]] | manual-container | manual-app"
+if [ $# -lt 1 ] || [ $# -gt 4 ]; then
+       echo "Expected arg: local  | remote  and numbers of the rics and SDNC "
        exit 1
 elif [ $1 == "local" ]; then
        if [ -z $POLICY_AGENT_LOCAL_IMAGE ]; then
@@ -17,6 +24,12 @@ elif [ $1 == "local" ]; then
                exit 1
        fi
        POLICY_AGENT_IMAGE=$POLICY_AGENT_LOCAL_IMAGE":"$IMAGE_TAG
+elif [ $1 == "remote" ]; then
+    if [ -z $POLICY_AGENT_REMOTE_IMAGE ]; then
+        echo "POLICY_AGENT_REMOTE_IMAGE not set in test_env"
+        exit 1
+    fi
+    POLICY_AGENT_IMAGE=$POLICY_AGENT_REMOTE_IMAGE":"$IMAGE_TAG_REMOTE
 fi
 
 # Set a description string for the test case
@@ -72,21 +85,51 @@ fi
 echo ""
 
 if [ $1 !=  "manual-container" ] && [ $1 !=  "manual-app" ]; then
-       echo -e "Policy agent image tag set to: \033[1m" $IMAGE_TAG"\033[0m"
-       echo "Configured image for policy agent app(s) (${1}): "$POLICY_AGENT_LOCAL_IMAGE
-       tmp_im=$(docker images ${POLICY_AGENT_LOCAL_IMAGE} | grep -v REPOSITORY)
+       #echo -e "Policy agent image tag set to: \033[1m" $IMAGE_TAG"\033[0m"
+       echo "Configured image for policy agent app(s) (${1}): "$POLICY_AGENT_IMAGE
+       tmp_im=$(docker images ${POLICY_AGENT_IMAGE} | grep -v REPOSITORY)
 
        if [ $1 == "local" ]; then
                if [ -z "$tmp_im" ]; then
-                       echo "Local image (non nexus) "$POLICY_AGENT_LOCAL_IMAGE" does not exist in local registry, need to be built"
+                       echo "Local image (non nexus) "$POLICY_AGENT_IMAGE" does not exist in local registry, need to be built"
                        exit 1
                else
                        echo -e "Policy agent local image: \033[1m"$tmp_im"\033[0m"
-                       echo "If the policy agen image seem outdated, rebuild the image and run the test again."
+                       echo "If the policy agent image seem outdated, rebuild the image and run the test again."
+               fi
+       elif [ $1 == "remote" ]; then
+           if [ -z "$tmp_im" ]; then
+                       echo "Pulling policy agent image from nexus: "$POLICY_AGENT_IMAGE
+                       docker pull $POLICY_AGENT_IMAGE  > /dev/null
+                       tmp_im=$(docker images ${POLICY_AGENT_IMAGE} | grep -v REPOSITORY)
+                       if [ -z "$tmp_im" ]; then
+                               echo "Image could not be pulled"
+                               exit 1
+                       fi
+                       echo -e "Policy Agent image: \033[1m"$tmp_im"\033[0m"
+               else
+                       echo -e "Policy Agent image: \033[1m"$tmp_im"\033[0m"
+                       echo "!! If the Policy agent image seem outdated, consider removing it from your docker registry and run the test again."
                fi
        fi
 fi
 
+echo ""
+
+echo "Building images for the simulators"
+curdir=$PWD
+cd $SIM_GROUP
+cd ../ric-plt/a1
+docker build -t ric-simulator:latest . &> /dev/null
+cd $curdir
+
+echo ""
+
+echo "Local registry images for simulators:"
+echo "Consul:             " $(docker images | grep consul)
+echo "CBS:                " $(docker images | grep platform.configbinding.app)
+echo "RIC:                " $(docker images | grep ric-simulator)
+echo ""
 
 
 __consul_config() {
@@ -104,22 +147,110 @@ consul_config_app() {
 
 }
 
+
+
+start_ric_simulator() {
+
+  DOCKER_SIM_NWNAME="nonrtric-docker-net"
+  echo "Creating docker network $DOCKER_SIM_NWNAME, if needed"
+  docker network ls| grep $DOCKER_SIM_NWNAME > /dev/null || docker network create $DOCKER_SIM_NWNAME
+
+  echo "start ric simulator"
+  curdir=$PWD
+  cd $SIM_GROUP
+  cd ric/
+
+  docker-compose up --scale ric-simulator=$RIC_NUMBER -d
+
+  cd $curdir
+       echo ""
+}
+
+start_dashboard() {
+
+  DOCKER_SIM_NWNAME="nonrtric-docker-net"
+  echo "Creating docker network $DOCKER_SIM_NWNAME, if needed"
+  docker network ls| grep $DOCKER_SIM_NWNAME > /dev/null || docker network create $DOCKER_SIM_NWNAME
+
+  echo "start dashboard"
+  curdir=$PWD
+  cd $SIM_GROUP
+  cd dashboard/
+
+  docker-compose up -d
+
+  cd $curdir
+       echo ""
+}
+
+start_sdnc() {
+
+  if [ $SDNC == "sdnc" ]; then
+    DOCKER_SIM_NWNAME="nonrtric-docker-net"
+    echo "Creating docker network $DOCKER_SIM_NWNAME, if needed"
+    docker network ls| grep $DOCKER_SIM_NWNAME > /dev/null || docker network create $DOCKER_SIM_NWNAME
+
+    echo "start sdnc"
+    curdir=$PWD
+    cd $SIM_GROUP
+    cd sdnc/
+
+    docker-compose up -d a1-controller
+
+    cd $curdir
+         echo ""
+       fi
+}
+
+prepare_consul_config() {
+  echo "prepare consul config"
+  curdir=$PWD
+  cd $SIM_GROUP
+  cd ric/
+
+  python3 cleanConsul.py
+  python3 prepareConsul.py
+
+  cd $curdir
+       echo ""
+
+
+}
+
+
 # Start all simulators in the simulator group
 start_simulators() {
 
        echo "Starting all simulators"
        curdir=$PWD
        cd $SIM_GROUP
+
        $SIM_GROUP/simulators-start.sh
        cd $curdir
        echo ""
 }
 
+
+
 clean_containers() {
        echo "Stopping all containers, policy agent app(s) and simulators with name prefix 'policy_agent'"
        docker stop $(docker ps -q --filter name=/policy-agent) &> /dev/null
        echo "Removing all containers, policy agent app and simulators with name prefix 'policy_agent'"
        docker rm $(docker ps -a -q --filter name=/policy-agent) &> /dev/null
+       echo "Stopping all containers, policy agent app(s) and simulators with name prefix 'ric-simulator'"
+       docker stop $(docker ps -q --filter name=ric-simulator) &> /dev/null
+       echo "Removing all containers, policy agent app and simulators with name prefix 'ric-simulator'"
+       docker rm $(docker ps -a -q --filter name=ric-simulator) &> /dev/null
+       echo "Removing all containers, policy agent app and simulators with name prefix 'dashboard'"
+       docker rm $(docker ps -a -q --filter name=dashboard) &> /dev/null
+       echo "Removing all containers, policy agent app and simulators with name prefix 'a1-controller'"
+       docker rm $(docker ps -a -q --filter name=a1-controller) &> /dev/null
+       echo "Removing all containers, policy agent app and simulators with name prefix 'sdnc_db_container'"
+       docker rm $(docker ps -a -q --filter name=sdnc_db_container) &> /dev/null
+       echo "Removing all containers, policy agent app and simulators with name prefix 'cbs'"
+       docker rm $(docker ps -a -q --filter name=polman_cbs) &> /dev/null
+       echo "Removing all containers, policy agent app and simulators with name prefix 'consul'"
+       docker rm $(docker ps -a -q --filter name=polman_consul) &> /dev/null
        echo "Removing unused docker networks with substring 'policy agent' in network name"
        docker network rm $(docker network ls -q --filter name=nonrtric)
        echo ""
@@ -129,7 +260,7 @@ start_policy_agent() {
 
        appname=$PA_APP_BASE
 
-       if [ $START_ARG == "local" ] ; then
+       if [ $START_ARG == "local" ] || [ $START_ARG == "remote" ]; then
                __start_policy_agent_image $appname
        fi
 }
@@ -171,6 +302,7 @@ __start_policy_agent_image() {
                result="$(__do_curl http://127.0.0.1:${localport}/status)"
                if [ $? -eq 0 ]; then
                        echo "Policy Agent ${appname} responds to service status: " $result
+                       echo "Policy Agent is alive."
                        pa_st=true
                        break
                else