Revise portal start script for robustness.
[demo.git] / boot / portal_vm_init.sh
1 #!/bin/bash
2 # Starts docker containers for ONAP Portal
3
4 # be verbose
5 set -x
6
7 # Refresh source area with start scripts
8 cd /opt/portal
9 git pull
10 cd /opt
11
12 # Establish environment variables
13 NEXUS_USERNAME=$(cat /opt/config/nexus_username.txt)
14 NEXUS_PASSWD=$(cat /opt/config/nexus_password.txt)
15 NEXUS_DOCKER_REPO=$(cat /opt/config/nexus_docker_repo.txt)
16 DOCKER_IMAGE_VERSION=$(cat /opt/config/docker_version.txt)
17 source portal/deliveries/os_settings.sh
18
19 # Remove the following lines after merging change to os_settings.sh:
20 DB_VOL_NAME=data_vol_portal
21 EP_TAG_NAME=portalapps
22 DB_TAG_NAME=portaldb
23 WMS_TAG_NAME=portalwms
24 # End os_settings.sh dupe lines
25
26 # Unpack property files
27 unzip -o portal/deliveries/etc.zip -d /PROJECT/OpenSource/UbuntuEP/
28
29 # Refresh images
30 docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
31 docker pull $NEXUS_DOCKER_REPO/openecomp/${DB_TAG_NAME}:$DOCKER_IMAGE_VERSION
32 docker pull $NEXUS_DOCKER_REPO/openecomp/${EP_TAG_NAME}:$DOCKER_IMAGE_VERSION
33 docker pull $NEXUS_DOCKER_REPO/openecomp/${WMS_TAG_NAME}:$DOCKER_IMAGE_VERSION
34
35 # Remove lingering containers; order matters.
36 docker rm -f $DB_CONT_NAME
37 docker rm -f $DB_VOL_NAME
38 docker rm -f $EP_CONT_NAME
39 docker rm -f $WMS_CONT_NAME
40
41 docker create --name $DB_VOL_NAME -v /var/lib/mysql mariadb
42 docker tag $NEXUS_DOCKER_REPO/openecomp/${DB_TAG_NAME}:$DOCKER_IMAGE_VERSION $DB_IMG_NAME
43 docker tag $NEXUS_DOCKER_REPO/openecomp/${EP_TAG_NAME}:$DOCKER_IMAGE_VERSION $EP_IMG_NAME
44 # WMS image has no version in the registry
45 docker tag $NEXUS_DOCKER_REPO/openecomp/${WMS_TAG_NAME}:$DOCKER_IMAGE_VERSION ${WMS_IMG_NAME}:latest
46
47 # Recreate the named containers
48 cd portal/deliveries
49 echo "Starting database"
50 ./dbstart.sh
51 echo "Delaying for database"
52 sleep 10
53 echo "Starting apps"
54 ./new_start.sh
55 echo "Starting widget-ms"
56 ./widget_ms_start.sh
57
58 sleep 180
59
60 if [ ! -e /opt/config/boot.txt ]
61 then
62         if [ -e /opt/config/public_ip.txt ]
63         then
64                 IP_ADDRESS=$(cat /opt/config/public_ip.txt)
65         else
66                 IP_ADDRESS=$(ifconfig eth0 | grep "inet addr" | tr -s ' ' | cut -d' ' -f3 | cut -d':' -f2)
67         fi
68         # Wait until MySQL is running...
69         while [[ $(netstat -vulntp |grep -i mysql | awk '{print $4}') != ":::3306" ]]
70         do
71                 sleep 1
72         done
73         # no longer necessary; done at docker build time
74         # mysql -u root -p'Aa123456' -h $IP_ADDRESS < /opt/portal/deliveries/Apps_Users_OnBoarding_Script.sql
75         echo "yes" > /opt/config/boot.txt
76 fi