blob: ce6637c15b1dd653788bac8c521c13dd58767ae1 [file] [log] [blame]
waqas.ikramb01df8b2019-07-09 16:14:17 +00001#!/bin/bash
2#
3# ============LICENSE_START=======================================================
4# Copyright (C) 2019 Nordix Foundation.
5# ================================================================================
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17#
18# SPDX-License-Identifier: Apache-2.0
19# ============LICENSE_END=========================================================
20
21# @author Waqas Ikram (waqas.ikram@est.tech)
22
23MAVEN_VERSION_DIR="apache-maven-3.3.9"
24MAVEN_TAR_FILE="$MAVEN_VERSION_DIR-bin.tar.gz"
eHanan8e8379f2019-09-04 11:30:46 +010025MAVEN_TAR_LOCATION="https://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/$MAVEN_TAR_FILE"
waqas.ikramb01df8b2019-07-09 16:14:17 +000026
27SCRIPT_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
28SCRIPT_NAME=$(basename $0)
waqas.ikram7d753292019-07-18 16:41:17 +000029CONFIG_DIR=$SCRIPT_HOME/config
30ENV_FILE=$CONFIG_DIR/env
waqas.ikramb01df8b2019-07-09 16:14:17 +000031TEMP_DIR_PATH=$SCRIPT_HOME/temp
waqas.ikram7d753292019-07-18 16:41:17 +000032TEST_LAB_DIR_PATH=$TEMP_DIR_PATH/test_lab
33DOCKER_COMPOSE_FILE_PATH=$SCRIPT_HOME/docker-compose.yml
AndrewLambcdd725e2019-09-06 14:31:04 +010034DOCKER_COMPOSE_LOCAL_OVERRIDE_FILE=$SCRIPT_HOME/docker-compose.local.yml
waqas.ikram8c6cd4f2019-08-30 18:55:48 +000035TEAR_DOWN_SCRIPT=$SCRIPT_HOME/teardown.sh
waqas.ikramb01df8b2019-07-09 16:14:17 +000036
37MAVEN_DIR=$TEMP_DIR_PATH/maven
38INSTALLED_MAVEN_DIR=$MAVEN_DIR/$MAVEN_VERSION_DIR
39MVN=$INSTALLED_MAVEN_DIR/bin/mvn
40MVN_VERSION="$MVN -v"
41MVN_SETTINGS_XML="$SCRIPT_HOME/settings.xml"
42MVN_CLEAN_INSTALL="$MVN clean install"
43SIMULATOR_MAVEN_PROJECT_POM="$SCRIPT_HOME/so-simulators/pom.xml"
waqas.ikram5fee4482019-07-22 13:56:13 +000044WAIT_FOR_WORKAROUND_SCRIPT=$CONFIG_DIR/"wait-for-workaround-job.sh"
waqas.ikrama5aeeda2019-08-07 16:03:14 +000045WAIT_FOR_POPULATE_AAI_SCRIPT=$CONFIG_DIR/"wait-for-aai-config-job.sh"
eHanan75c11712019-08-13 15:44:16 +000046WAIT_FOR_CONTAINER_SCRIPT=$CONFIG_DIR/"wait-for-container.sh"
waqas.ikramb01df8b2019-07-09 16:14:17 +000047
48echo "Running $SCRIPT_HOME/$SCRIPT_NAME ..."
49
waqas.ikram7d753292019-07-18 16:41:17 +000050export $(egrep -v '^#' $ENV_FILE | xargs)
51
AndrewLambcdd725e2019-09-06 14:31:04 +010052MANDATORY_VARIABLES_NAMES=( "NEXUS_DOCKER_REPO_MSO" "DOCKER_ENVIRONMENT" "TAG" "TIME_OUT_DEFAULT_VALUE_SEC" "PROJECT_NAME" "DEFAULT_NETWORK_NAME")
waqas.ikram50e7ec92019-08-14 14:27:41 +000053
54for var in "${MANDATORY_VARIABLES_NAMES[@]}"
55 do
56 if [ -z "${!var}" ]; then
57 echo "Missing mandatory attribute $var in $ENV_FILE"
58 exit 1
59 fi
60done
61
waqas.ikramb01df8b2019-07-09 16:14:17 +000062if [[ ! "$TEMP_DIR_PATH" || ! -d "$TEMP_DIR_PATH" ]]; then
63 echo "Creating temporary directory $TEMP_DIR_PATH"
64 mkdir $TEMP_DIR_PATH
65
66 if [ $? -ne 0 ]; then
67 echo "Could not create $TEMP_DIR_PATH"
68 exit 1
69 fi
70
71fi
72echo "Will use ${TEMP_DIR_PATH} directory"
73
74if [[ ! "$MAVEN_DIR" || ! -d "$MAVEN_DIR" ]]; then
75 echo "Creating temporary maven directory $MAVEN_DIR"
76 mkdir $MAVEN_DIR
77
78 if [ $? -ne 0 ]; then
79 echo "Could not create $MAVEN_DIR"
80 exit 1
81 fi
82fi
83echo "Will use ${MAVEN_DIR} directory for maven install"
84
85if [[ ! "$INSTALLED_MAVEN_DIR" || ! -d "$INSTALLED_MAVEN_DIR" ]]; then
86 echo "Installing maven ..."
87 cd $MAVEN_DIR
88
89 CURL=`which curl`
90 if [[ ! "$CURL" ]]; then
91 echo "curl command is not installed"
92 echo "Unable to execute test plan"
93 exit 1
94 fi
95 curl -O $MAVEN_TAR_LOCATION
96
97 TAR=`which tar`
98 if [[ ! "$TAR" ]]; then
99 echo "tar command is not installed"
100 echo "Unable to execute test plan"
101 exit 1
102 fi
103
eHanan8e8379f2019-09-04 11:30:46 +0100104 tar -xzvf $MAVEN_TAR_FILE
waqas.ikramb01df8b2019-07-09 16:14:17 +0000105
106 echo "Finished installing maven ..."
107fi
108
109echo "Maven installed under directory $INSTALLED_MAVEN_DIR"
110
111$MVN_VERSION
112
113if [ $? -ne 0 ]; then
114 echo "Unable to run mvn -v command"
115 exit 1
116fi
117
118cd $SCRIPT_HOME
119
120echo "Will build simulator project using $MVN_CLEAN_INSTALL -f $SIMULATOR_MAVEN_PROJECT_POM --settings $MVN_SETTINGS_XML"
121$MVN_CLEAN_INSTALL -f $SIMULATOR_MAVEN_PROJECT_POM --settings $MVN_SETTINGS_XML
122
waqas.ikram7d753292019-07-18 16:41:17 +0000123if [ $? -ne 0 ]; then
124 echo "Maven build failed"
125 exit 1
126fi
waqas.ikramb01df8b2019-07-09 16:14:17 +0000127
waqas.ikram7d753292019-07-18 16:41:17 +0000128echo "Will clone docker-config project ... "
waqas.ikramb01df8b2019-07-09 16:14:17 +0000129
waqas.ikram7d753292019-07-18 16:41:17 +0000130
131if [[ -d "$TEST_LAB_DIR_PATH" ]]; then
132 echo "$TEST_LAB_DIR_PATH already exists"
133 echo "Removing $TEST_LAB_DIR_PATH directory ..."
134 rm -rf $TEST_LAB_DIR_PATH
135fi
136
137git clone http://gerrit.onap.org/r/so/docker-config.git $TEST_LAB_DIR_PATH
138
waqas.ikram7d753292019-07-18 16:41:17 +0000139export TEST_LAB_DIR=$TEST_LAB_DIR_PATH
140export CONFIG_DIR_PATH=$CONFIG_DIR
141
AndrewLambcdd725e2019-09-06 14:31:04 +0100142if [ "$DOCKER_ENVIRONMENT" == "remote" ]; then
143 echo "Starting docker containers with remote images ..."
144 docker-compose -f $DOCKER_COMPOSE_FILE_PATH -p $PROJECT_NAME up -d
145elif [ "$DOCKER_ENVIRONMENT" == "local" ]; then
146 echo "Starting docker containers with local images ..."
147 docker-compose -f $DOCKER_COMPOSE_FILE_PATH -f $DOCKER_COMPOSE_LOCAL_OVERRIDE_FILE -p $PROJECT_NAME up -d
148else
149 echo "DOCKER_ENVIRONMENT not set correctly in $ENV_FILE. Allowed values: local | remote"
150 exit 1
151fi
waqas.ikram7d753292019-07-18 16:41:17 +0000152
153echo "Sleeping for 3m"
154sleep 3m
waqas.ikramb01df8b2019-07-09 16:14:17 +0000155
waqas.ikram5fee4482019-07-22 13:56:13 +0000156echo "Will execute $WAIT_FOR_WORKAROUND_SCRIPT script"
157$WAIT_FOR_WORKAROUND_SCRIPT
158
159if [ $? -ne 0 ]; then
160 echo "ERROR: $WAIT_FOR_WORKAROUND_SCRIPT failed"
161 echo "Will stop running docker containers . . ."
waqas.ikram8c6cd4f2019-08-30 18:55:48 +0000162 $TEAR_DOWN_SCRIPT
waqas.ikram5fee4482019-07-22 13:56:13 +0000163 exit 1
164fi
165
waqas.ikrama5aeeda2019-08-07 16:03:14 +0000166echo "Will execute $WAIT_FOR_POPULATE_AAI_SCRIPT script"
167$WAIT_FOR_POPULATE_AAI_SCRIPT
168
169if [ $? -ne 0 ]; then
170 echo "ERROR: $WAIT_FOR_POPULATE_AAI_SCRIPT failed"
171 echo "Will stop running docker containers . . ."
waqas.ikram8c6cd4f2019-08-30 18:55:48 +0000172 $TEAR_DOWN_SCRIPT
eHanan75c11712019-08-13 15:44:16 +0000173 exit 1
174fi
175
176API_INFRA_CONTAINER_NAME="api-handler-infra"
177echo "Will execute $WAIT_FOR_CONTAINER_SCRIPT to wait for $API_INFRA_CONTAINER_NAME container to start up"
waqas.ikram50e7ec92019-08-14 14:27:41 +0000178$WAIT_FOR_CONTAINER_SCRIPT -c "$API_INFRA_CONTAINER_NAME" -t "300" -n "$DEFAULT_NETWORK_NAME"
eHanan75c11712019-08-13 15:44:16 +0000179
180if [ $? -ne 0 ]; then
181 echo "ERROR: $WAIT_FOR_CONTAINER_SCRIPT failed"
182 echo "Will stop running docker containers . . ."
waqas.ikram8c6cd4f2019-08-30 18:55:48 +0000183 $TEAR_DOWN_SCRIPT
waqas.ikrama5aeeda2019-08-07 16:03:14 +0000184 exit 1
185fi
waqas.ikram5fee4482019-07-22 13:56:13 +0000186
waqas.ikramb01df8b2019-07-09 16:14:17 +0000187REPO_IP='127.0.0.1'
188ROBOT_VARIABLES="-v REPO_IP:${REPO_IP}"
189
190echo "Finished executing $SCRIPT_HOME/$SCRIPT_NAME"