2 # 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.
8 echo -e "Starting Xvfb on display ${DISPLAY} with res ${RES}"
9 Xvfb ${DISPLAY} -ac -screen 0 ${RES} +extension RANDR &
11 # Get pid of this spawned process to make sure we kill the correct process later
14 HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $7}')
15 export HOST_IP=${HOST_IP}
19 if ! ifconfig docker0; then
20 if ! ifconfig ens3; then
21 echo "Could not determine IP address"
24 export DOCKER_IP_IP=`ifconfig ens3 | awk -F: '/inet addr/ {gsub(/ .*/,"",$2); print $2}'`
26 export DOCKER_IP=`ifconfig docker0 | awk -F: '/inet addr/ {gsub(/ .*/,"",$2); print $2}'`
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}
34 ROBOT_VARIABLES="-v MOCK_IP:${MOCK_IP} -v IP:${IP} -v DOCKER_IP:${DOCKER_IP}"
35 export DOCKER_IP=${DOCKER_IP}
43 # Establish environment variables
46 NEXUS_DOCKER_REPO=nexus3.onap.org:10003
51 git clone http://gerrit.onap.org/r/portal -b "master"
53 # Refresh configuration and scripts
58 #rm docker-compose.yml
60 #cp $CURR/docker-compose.yml .
61 #cd properties_simpledemo/ECOMPPORTALAPP
63 #cp $CURR/system.properties .
65 # Get image names used below from docker-compose environment file
69 # Make inter-app communication work in CSIT
70 export EXTRA_HOST_IP="-i ${HOST_IP}"
71 export EXTRA_HOST_NAME="-n portal.api.simpledemo.onap.org"
74 # Copy property files to new directory
76 cp -r properties_simpledemo/* $PROPS_DIR
77 # Also create logs directory
82 docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
83 docker pull $NEXUS_DOCKER_REPO/$DB_IMG_NAME:$DOCKER_IMAGE_VERSION
84 docker pull $NEXUS_DOCKER_REPO/$EP_IMG_NAME:$DOCKER_IMAGE_VERSION
85 docker pull $NEXUS_DOCKER_REPO/$SDK_IMG_NAME:$DOCKER_IMAGE_VERSION
86 docker pull $NEXUS_DOCKER_REPO/$CDR_IMG_NAME:$CDR_IMAGE_VERSION
87 docker pull $ZK_IMG_NAME:$ZK_IMAGE_VERSION
88 docker pull $NEXUS_DOCKER_REPO/$WMS_IMG_NAME:$DOCKER_IMAGE_VERSION
89 docker pull $NEXUS_DOCKER_REPO/$CLI_IMG_NAME:$CLI_DOCKER_VERSION
91 # Tag them as expected by docker-compose file
92 docker tag $NEXUS_DOCKER_REPO/$DB_IMG_NAME:$DOCKER_IMAGE_VERSION $DB_IMG_NAME:$PORTAL_TAG
93 docker tag $NEXUS_DOCKER_REPO/$EP_IMG_NAME:$DOCKER_IMAGE_VERSION $EP_IMG_NAME:$PORTAL_TAG
94 docker tag $NEXUS_DOCKER_REPO/$SDK_IMG_NAME:$DOCKER_IMAGE_VERSION $SDK_IMG_NAME:$PORTAL_TAG
95 docker tag $NEXUS_DOCKER_REPO/$CDR_IMG_NAME:$CDR_IMAGE_VERSION $CDR_IMG_NAME:$PORTAL_TAG
96 docker tag $ZK_IMG_NAME:$ZK_IMAGE_VERSION $ZK_IMG_NAME:$PORTAL_TAG
97 docker tag $NEXUS_DOCKER_REPO/$WMS_IMG_NAME:$DOCKER_IMAGE_VERSION $WMS_IMG_NAME:$PORTAL_TAG
98 docker tag $NEXUS_DOCKER_REPO/$CLI_IMG_NAME:$CLI_DOCKER_VERSION $CLI_IMG_NAME:$PORTAL_TAG
101 # compose is not in /usr/bin
105 #${HOSTNAME}="portal.api.simpledemo.openecomp.org"
106 #echo "$HOST_IP ${HOSTNAME}" >> /etc/hosts
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
111 #HOST="portal.api.simpledemo.openecomp.org"
112 #sudo sed -i "/$HOST/ s/.*/$HOST_IP\t$HOST/g" /etc/hosts
114 # insert/update hosts entry
116 host_name="portal.api.simpledemo.onap.org"
117 # find existing instances in the host file and save the line numbers
118 matches_in_hosts="$(grep -n $host_name /etc/hosts | cut -f1 -d:)"
119 host_entry="${ip_address} ${host_name}"
123 if [ ! -z "$matches_in_hosts" ]
125 echo "Updating existing hosts entry."
126 # iterate over the line numbers on which matches were found
127 while read -r line_number; do
128 # replace the text of each line with the desired host entry
129 sudo sed -i '' "${line_number}s/.*/${host_entry} /" /etc/hosts
130 echo "${line_number} ${host_entry}"
131 done <<< "$matches_in_hosts"
133 echo "Adding new hosts entry."
134 echo "$host_entry" | sudo tee -a /etc/hosts > /dev/null
141 # WAIT 5 minutes maximum and test every 5 seconds if Portal up using HealthCheck API
145 while [ "$TIME" -lt "$TIME_OUT" ]; do
146 response=$(curl --write-out '%{http_code}' --silent --output /dev/null http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/portalApi/healthCheck); echo $response
148 if [ "$response" == "200" ]; then
149 echo Portal and its database well started in $TIME seconds
153 echo Sleep: $INTERVAL seconds before testing if Portal is up. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds
155 TIME=$(($TIME+$INTERVAL))
158 if [ "$TIME" -ge "$TIME_OUT" ]; then
159 echo TIME OUT: Docker containers not started in $TIME_OUT seconds... Could cause problems for tests...
166 #if [ "$TIME" -ge "$TIME_OUT" ]; then
167 # echo TIME OUT: Docker containers not started in $TIME_OUT seconds... Could cause problems for tests...
174 #Get current IP of VM
175 HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $7}')
176 export HOST_IP=${HOST_IP}
178 docker logs deliveries_portal-db_1
179 docker logs deliveries_portal-app_1
180 docker logs deliveries_portal-wms_1