2c1376be0f9a2fbf1d8731bd50f1220da3c717b2
[aai/test-config.git] / deploy_vm1.sh
1 #!/bin/bash
2
3 if [ -f "/opt/docker/docker-compose" ];
4 then
5     DOCKER_COMPOSE_CMD="/opt/docker/docker-compose -f docker-compose-app.yml"
6 else
7     DOCKER_COMPOSE_CMD="docker-compose -f docker-compose-app.yml"
8 fi
9
10 export RESOURCES_LOGS="/opt/aai/logroot/AAI-RESOURCES";
11 export TRAVERSAL_LOGS="/opt/aai/logroot/AAI-TRAVERSAL";
12 export SEARCH_LOGS="/opt/aai/logroot/AAI-SEARCH";
13 export DATA_ROUTER_LOGS="/opt/aai/logroot/AAI-DATA-ROUTER";
14 export MODEL_LOADER_LOGS="/opt/aai/logroot/AAI-MODEL-LOADER";
15 export UI_LOGS="/opt/aai/logroot/AAI-UI";
16 export CHAMP_LOGS="/opt/aai/logroot/AAI-CHAMP-SERVICE";
17
18 if [ ! -d "$RESOURCES_LOGS" ];
19 then
20     echo "Warning: Unable to find the volume directory $RESOURCES_LOGS so creating it as regular directory";
21     mkdir -p $RESOURCES_LOGS;
22 fi;
23
24 if [ ! -d "$TRAVERSAL_LOGS" ];
25 then
26     echo "Warning: Unable to find the volume directory $TRAVERSAL_LOGS so creating it as regular directory";
27     mkdir -p $TRAVERSAL_LOGS;
28 fi;
29
30 if [ ! -d "$SEARCH_LOGS" ];
31 then
32     echo "Warning: Unable to find the volume directory $SEARCH_LOGS so creating it as regular directory";
33     mkdir -p $SEARCH_LOGS;
34 fi;
35
36 if [ ! -d "$DATA_ROUTER_LOGS" ];
37 then
38     echo "Warning: Unable to find the volume directory $DATA_ROUTER_LOGS so creating it as regular directory";
39     mkdir -p $DATA_ROUTER_LOGS;
40 fi;
41
42 if [ ! -d "$MODEL_LOADER_LOGS" ];
43 then
44     echo "Warning: Unable to find the volume directory $MODEL_LOADER_LOGS so creating it as regular directory";
45     mkdir -p $MODEL_LOADER_LOGS;
46 fi;
47
48 if [ ! -d "$UI_LOGS" ];
49 then
50     echo "Warning: Unable to find the volume directory $UI_LOGS so creating it as regular directory";
51     mkdir -p $UI_LOGS;
52 fi;
53
54 if [ ! -d "$CHAMP_LOGS" ];
55 then
56     echo "Warning: Unable to find the volume directory $CHAMP_LOGS so creating it as regular directory";
57     mkdir -p $CHAMP_LOGS;
58 fi;
59
60 export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1);
61 export DOCKER_REGISTRY="${DOCKER_REGISTRY:-localhost:5000}";
62 export AAI_HAPROXY_IMAGE="${AAI_HAPROXY_IMAGE:-aaionap/haproxy}";
63 export AAI_HAPROXY_VERSION="${AAI_HAPROXY_VERSION:-1.2.0}";
64
65 NEXUS_USERNAME=$(cat /opt/config/nexus_username.txt)
66 NEXUS_PASSWD=$(cat /opt/config/nexus_password.txt)
67 NEXUS_DOCKER_REPO=$(cat /opt/config/nexus_docker_repo.txt)
68 DMAAP_TOPIC=$(cat /opt/config/dmaap_topic.txt)
69 DOCKER_IMAGE_VERSION=$(cat /opt/config/docker_version.txt)
70 DOCKER_REGISTRY=${NEXUS_DOCKER_REPO}
71
72 docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
73
74 function wait_for_container() {
75
76     CONTAINER_NAME="$1";
77     START_TEXT="$2";
78
79     TIMEOUT=600
80
81     # wait for the real startup
82     AMOUNT_STARTUP=$(docker logs ${CONTAINER_NAME} 2>&1 | grep "$START_TEXT" | wc -l)
83     while [[ ${AMOUNT_STARTUP} -ne 1 ]];
84     do
85         echo "Waiting for '$CONTAINER_NAME' deployment to finish ..."
86         AMOUNT_STARTUP=$(docker logs ${CONTAINER_NAME} 2>&1 | grep "$START_TEXT" | wc -l)
87         if [ "$TIMEOUT" = "0" ];
88         then
89             echo "ERROR: $CONTAINER_NAME deployment failed."
90             exit 1
91         fi
92         let TIMEOUT-=5
93         sleep 5
94     done
95 }
96
97 function check_if_user_exists(){
98
99         local user_id=$1;
100
101         if [ -z "$user_id" ]; then
102                 echo "Needs to provide at least one argument for check_if_user_exists func";
103                 exit 1;
104         fi;
105
106         id -u ${user_id} > /dev/null 2>&1 && {
107                 echo "1";
108         } || {
109                 echo "0";
110         }
111 }
112
113 docker pull ${DOCKER_REGISTRY}/onap/aai-resources:${DOCKER_IMAGE_VERSION};
114 docker tag $DOCKER_REGISTRY/onap/aai-resources:$DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/aai-resources:latest;
115
116 docker pull ${DOCKER_REGISTRY}/onap/aai-traversal:${DOCKER_IMAGE_VERSION};
117 docker tag $DOCKER_REGISTRY/onap/aai-traversal:$DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/aai-traversal:latest;
118
119 docker pull ${DOCKER_REGISTRY}/onap/search-data-service:${DOCKER_IMAGE_VERSION};
120 docker tag $DOCKER_REGISTRY/onap/search-data-service:$DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/search-data-service:latest;
121
122 docker pull ${DOCKER_REGISTRY}/onap/data-router:${DOCKER_IMAGE_VERSION};
123 docker tag $DOCKER_REGISTRY/onap/data-router:$DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/data-router:latest;
124
125 docker pull ${DOCKER_REGISTRY}/onap/model-loader:${DOCKER_IMAGE_VERSION};
126 docker tag $DOCKER_REGISTRY/onap/model-loader:$DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/model-loader:latest;
127
128 docker pull ${DOCKER_REGISTRY}/onap/sparky-be:${DOCKER_IMAGE_VERSION};
129 docker tag $DOCKER_REGISTRY/onap/sparky-be:$DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/sparky-be:latest;
130
131 docker pull ${DOCKER_REGISTRY}/onap/champ-service:${DOCKER_IMAGE_VERSION};
132 docker tag $DOCKER_REGISTRY/onap/champ-service:$DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/champ-service:latest;
133
134 # cleanup
135 $DOCKER_COMPOSE_CMD stop
136 $DOCKER_COMPOSE_CMD rm -f -v
137
138
139 USER_EXISTS=$(check_if_user_exists aaiadmin);
140
141 if [ "${USER_EXISTS}" -eq 0 ]; then
142         export USER_ID=9000;
143 else
144         export USER_ID=$(id -u aaiadmin);
145 fi;
146
147 chown -R $USER_ID:$USER_ID $RESOURCE_LOGS $TRAVERSAL_LOGS;
148
149 RESOURCES_CONTAINER_NAME=$($DOCKER_COMPOSE_CMD up -d aai-resources.api.simpledemo.onap.org 2>&1 | grep 'Creating' | grep -v 'volume' | grep -v 'network' | awk '{ print $2; }' | head -1);
150 wait_for_container $RESOURCES_CONTAINER_NAME '0.0.0.0:8447';
151
152 GRAPH_CONTAINER_NAME=$($DOCKER_COMPOSE_CMD up -d aai-traversal.api.simpledemo.onap.org 2>&1 | grep 'Creating' | awk '{ print $2; }' | head -1);
153 wait_for_container $GRAPH_CONTAINER_NAME '0.0.0.0:8446';
154
155 # Deploy haproxy and traversal and resources
156 $DOCKER_COMPOSE_CMD up -d aai.api.simpledemo.onap.org
157
158 $DOCKER_COMPOSE_CMD up -d sparky-be
159
160 $DOCKER_COMPOSE_CMD up -d model-loader datarouter aai.searchservice.simpledemo.openecomp.org
161
162 $DOCKER_COMPOSE_CMD up -d champ-service
163
164 echo "A&AI Microservices are successfully started";
165
166 crontab < /opt/test-config/aaicrontab