blob: 76cf5f37309df0b025a9677adbb643f008fe2a8b [file] [log] [blame]
kishore328996f2017-09-08 17:15:42 -05001#!/bin/bash
kishore6eebdba2017-10-03 11:12:57 -05002# Starts docker containers for ONAP Portal
3# This version for Amsterdam/R1 of Portal, uses docker-compose.
4# Temporarily maintained in portal/deliveries area;
5# replicated from the ONAP demo/boot area due to release concerns.
6
7# Start Xvfb
8echo -e "Starting Xvfb on display ${DISPLAY} with res ${RES}"
9Xvfb ${DISPLAY} -ac -screen 0 ${RES} +extension RANDR &
10XVFBPID=$!
11# Get pid of this spawned process to make sure we kill the correct process later
12
13#Get current IP of VM
14HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}')
15export HOST_IP=${HOST_IP}
16
kishore92d70d62017-10-11 14:51:31 -050017
18
kishore6eebdba2017-10-03 11:12:57 -050019if ! ifconfig docker0; then
20if ! ifconfig ens3; then
21echo "Could not determine IP address"
22exit 1
23fi
24export DOCKER_IP_IP=`ifconfig ens3 | awk -F: '/inet addr/ {gsub(/ .*/,"",$2); print $2}'`
25else
26export DOCKER_IP=`ifconfig docker0 | awk -F: '/inet addr/ {gsub(/ .*/,"",$2); print $2}'`
27fi
28echo $DOCKER_IP
29
30
31# Pass any variables required by Robot test suites in ROBOT_VARIABLES
32#ROBOT_VARIABLES="-v MOCK_IP:${MOCK_IP} -v IP:${IP} -v POLICY_IP:${POLICY_IP} -v DOCKER_IP:${DOCKER_IP}"
33#export PORTAL_IP=${PORTAL_IP}
34ROBOT_VARIABLES="-v MOCK_IP:${MOCK_IP} -v IP:${IP} -v DOCKER_IP:${DOCKER_IP}"
35export DOCKER_IP=${DOCKER_IP}
36
37
kishore92d70d62017-10-11 14:51:31 -050038
39
kishore328996f2017-09-08 17:15:42 -050040# be verbose
41set -x
42
43# Establish environment variables
kishore6eebdba2017-10-03 11:12:57 -050044NEXUS_USERNAME=docker
45NEXUS_PASSWD=docker
46NEXUS_DOCKER_REPO=nexus3.onap.org:10003
47
48
49
50CURR="$(pwd)"
CHINTAMANI68e98362018-04-10 18:56:38 -040051git clone http://gerrit.onap.org/r/portal -b "master"
kishore328996f2017-09-08 17:15:42 -050052
53# Refresh configuration and scripts
kishore6eebdba2017-10-03 11:12:57 -050054cd portal
kishore328996f2017-09-08 17:15:42 -050055git pull
56cd deliveries
kishore6eebdba2017-10-03 11:12:57 -050057rm .env
kishore5ea942b2017-10-14 22:19:45 -050058#rm docker-compose.yml
kishore6eebdba2017-10-03 11:12:57 -050059cp $CURR/.env .
kishore5ea942b2017-10-14 22:19:45 -050060#cp $CURR/docker-compose.yml .
kishore92d70d62017-10-11 14:51:31 -050061#cd properties_simpledemo/ECOMPPORTALAPP
kishore6eebdba2017-10-03 11:12:57 -050062#rm system.properties
63#cp $CURR/system.properties .
64#cd ../..
kishore328996f2017-09-08 17:15:42 -050065# Get image names used below from docker-compose environment file
kishore6eebdba2017-10-03 11:12:57 -050066source $CURR/.env
kishore92d70d62017-10-11 14:51:31 -050067#source .env
68
69# Make inter-app communication work in CSIT
70export EXTRA_HOST_IP="-i ${HOST_IP}"
kishore4089a332017-10-18 17:02:53 -050071export EXTRA_HOST_NAME="-n portal.api.simpledemo.onap.org"
kishore92d70d62017-10-11 14:51:31 -050072
kishore328996f2017-09-08 17:15:42 -050073
kishore6eebdba2017-10-03 11:12:57 -050074# Copy property files to new directory
75mkdir -p $PROPS_DIR
kishore92d70d62017-10-11 14:51:31 -050076cp -r properties_simpledemo/* $PROPS_DIR
kishore6eebdba2017-10-03 11:12:57 -050077# Also create logs directory
78mkdir -p $LOGS_DIR
79
kishore328996f2017-09-08 17:15:42 -050080
81# Refresh images
82docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
CHINTAMANI68e98362018-04-10 18:56:38 -040083docker pull $NEXUS_DOCKER_REPO/$DB_IMG_NAME:$DOCKER_IMAGE_VERSION
84docker pull $NEXUS_DOCKER_REPO/$EP_IMG_NAME:$DOCKER_IMAGE_VERSION
85docker pull $NEXUS_DOCKER_REPO/$SDK_IMG_NAME:$DOCKER_IMAGE_VERSION
86docker pull $NEXUS_DOCKER_REPO/$CDR_IMG_NAME:$CDR_IMAGE_VERSION
87docker pull $ZK_IMG_NAME:$ZK_IMAGE_VERSION
88docker pull $NEXUS_DOCKER_REPO/$WMS_IMG_NAME:$DOCKER_IMAGE_VERSION
kishore6eebdba2017-10-03 11:12:57 -050089docker pull $NEXUS_DOCKER_REPO/$CLI_IMG_NAME:$CLI_DOCKER_VERSION
kishore328996f2017-09-08 17:15:42 -050090
91# Tag them as expected by docker-compose file
CHINTAMANI68e98362018-04-10 18:56:38 -040092docker tag $NEXUS_DOCKER_REPO/$DB_IMG_NAME:$DOCKER_IMAGE_VERSION $DB_IMG_NAME:$PORTAL_TAG
93docker tag $NEXUS_DOCKER_REPO/$EP_IMG_NAME:$DOCKER_IMAGE_VERSION $EP_IMG_NAME:$PORTAL_TAG
94docker tag $NEXUS_DOCKER_REPO/$SDK_IMG_NAME:$DOCKER_IMAGE_VERSION $SDK_IMG_NAME:$PORTAL_TAG
95docker tag $NEXUS_DOCKER_REPO/$CDR_IMG_NAME:$CDR_IMAGE_VERSION $CDR_IMG_NAME:$PORTAL_TAG
96docker tag $ZK_IMG_NAME:$ZK_IMAGE_VERSION $ZK_IMG_NAME:$PORTAL_TAG
97docker tag $NEXUS_DOCKER_REPO/$WMS_IMG_NAME:$DOCKER_IMAGE_VERSION $WMS_IMG_NAME:$PORTAL_TAG
kishore6eebdba2017-10-03 11:12:57 -050098docker tag $NEXUS_DOCKER_REPO/$CLI_IMG_NAME:$CLI_DOCKER_VERSION $CLI_IMG_NAME:$PORTAL_TAG
kishore328996f2017-09-08 17:15:42 -050099
kishorebbca0cf2017-10-09 16:59:38 -0500100
kishore6eebdba2017-10-03 11:12:57 -0500101# compose is not in /usr/bin
102docker-compose down
103docker-compose up -d
104
kishore6eebdba2017-10-03 11:12:57 -0500105#${HOSTNAME}="portal.api.simpledemo.openecomp.org"
106#echo "$HOST_IP ${HOSTNAME}" >> /etc/hosts
107
108#echo "$HOST_IP portal.api.simpledemo.openecomp.org" >> /etc/hosts
109#sudo sed -i "2i$HOST_IP portal.api.simpledemo.openecomp.org" /etc/hosts
110
111#HOST="portal.api.simpledemo.openecomp.org"
112#sudo sed -i "/$HOST/ s/.*/$HOST_IP\t$HOST/g" /etc/hosts
113
114# insert/update hosts entry
115ip_address=$HOST_IP
kishore4089a332017-10-18 17:02:53 -0500116host_name="portal.api.simpledemo.onap.org"
kishore6eebdba2017-10-03 11:12:57 -0500117# find existing instances in the host file and save the line numbers
118matches_in_hosts="$(grep -n $host_name /etc/hosts | cut -f1 -d:)"
119host_entry="${ip_address} ${host_name}"
120
121echo "$host_entry"
122
123if [ ! -z "$matches_in_hosts" ]
124then
125echo "Updating existing hosts entry."
126# iterate over the line numbers on which matches were found
127while read -r line_number; do
128# replace the text of each line with the desired host entry
129sudo sed -i '' "${line_number}s/.*/${host_entry} /" /etc/hosts
130echo "${line_number} ${host_entry}"
131done <<< "$matches_in_hosts"
132else
133echo "Adding new hosts entry."
134echo "$host_entry" | sudo tee -a /etc/hosts > /dev/null
135fi
136
kishore92d70d62017-10-11 14:51:31 -0500137
138
CHINTAMANI68e98362018-04-10 18:56:38 -0400139sleep 6m
kishore6eebdba2017-10-03 11:12:57 -0500140
141# WAIT 5 minutes maximum and test every 5 seconds if Portal up using HealthCheck API
kishorebbca0cf2017-10-09 16:59:38 -0500142TIME_OUT=500
kishore6eebdba2017-10-03 11:12:57 -0500143INTERVAL=20
144TIME=0
145while [ "$TIME" -lt "$TIME_OUT" ]; do
kishore4089a332017-10-18 17:02:53 -0500146 response=$(curl --write-out '%{http_code}' --silent --output /dev/null http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/portalApi/healthCheck); echo $response
kishore6eebdba2017-10-03 11:12:57 -0500147
148 if [ "$response" == "200" ]; then
149 echo Portal and its database well started in $TIME seconds
150 break;
151 fi
152
153 echo Sleep: $INTERVAL seconds before testing if Portal is up. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds
154 sleep $INTERVAL
155 TIME=$(($TIME+$INTERVAL))
156done
157
158if [ "$TIME" -ge "$TIME_OUT" ]; then
159 echo TIME OUT: Docker containers not started in $TIME_OUT seconds... Could cause problems for tests...
160fi
161
162#sleep 3m
163
164
165
166#if [ "$TIME" -ge "$TIME_OUT" ]; then
167# echo TIME OUT: Docker containers not started in $TIME_OUT seconds... Could cause problems for tests...
168#fi
169
170
171
172
173
174#Get current IP of VM
175HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}')
176export HOST_IP=${HOST_IP}
177
CHINTAMANI68e98362018-04-10 18:56:38 -0400178docker logs deliveries_portal-db_1
179docker logs deliveries_portal-app_1
kishore6eebdba2017-10-03 11:12:57 -0500180docker logs deliveries_portal-wms_1
181
182
183
184