Add test-config for spike
[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 export CRUD_LOGS="/opt/aai/logroot/AAI-CRUD-SERVICE";
18 export SPIKE_LOGS="/opt/aai/logroot/AAI-SPIKE-SERVICE";
19 export BABEL_LOGS="/opt/aai/logroot/AAI-BAS";
20
21 if [ ! -d "$RESOURCES_LOGS" ];
22 then
23     echo "Warning: Unable to find the volume directory $RESOURCES_LOGS so creating it as regular directory";
24     mkdir -p $RESOURCES_LOGS;
25 fi;
26
27 if [ ! -d "$TRAVERSAL_LOGS" ];
28 then
29     echo "Warning: Unable to find the volume directory $TRAVERSAL_LOGS so creating it as regular directory";
30     mkdir -p $TRAVERSAL_LOGS;
31 fi;
32
33 if [ ! -d "$SEARCH_LOGS" ];
34 then
35     echo "Warning: Unable to find the volume directory $SEARCH_LOGS so creating it as regular directory";
36     mkdir -p $SEARCH_LOGS;
37 fi;
38
39 if [ ! -d "$DATA_ROUTER_LOGS" ];
40 then
41     echo "Warning: Unable to find the volume directory $DATA_ROUTER_LOGS so creating it as regular directory";
42     mkdir -p $DATA_ROUTER_LOGS;
43 fi;
44
45 if [ ! -d "$MODEL_LOADER_LOGS" ];
46 then
47     echo "Warning: Unable to find the volume directory $MODEL_LOADER_LOGS so creating it as regular directory";
48     mkdir -p $MODEL_LOADER_LOGS;
49 fi;
50
51 if [ ! -d "$UI_LOGS" ];
52 then
53     echo "Warning: Unable to find the volume directory $UI_LOGS so creating it as regular directory";
54     mkdir -p $UI_LOGS;
55 fi;
56
57 if [ ! -d "$CHAMP_LOGS" ];
58 then
59     echo "Warning: Unable to find the volume directory $CHAMP_LOGS so creating it as regular directory";
60     mkdir -p $CHAMP_LOGS;
61 fi;
62
63 if [ ! -d "$CRUD_LOGS" ];
64 then
65     echo "Warning: Unable to find the volume directory $CRUD_LOGS so creating it as regular directory";
66     mkdir -p $CRUD_LOGS;
67 fi;
68
69 if [ ! -d "$SPIKE_LOGS" ];
70 then
71     echo "Warning: Unable to find the volume directory $SPIKE_LOGS so creating it as regular directory";
72     mkdir -p $SPIKE_LOGS;
73 fi;
74
75 if [ ! -d "$BABEL_LOGS" ];
76 then
77     echo "Warning: Unable to find the volume directory $BABEL_LOGS so creating it as regular directory";
78     mkdir -p $BABEL_LOGS;
79 fi;
80
81 export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1);
82 export DOCKER_REGISTRY="${DOCKER_REGISTRY:-localhost:5000}";
83 export AAI_HAPROXY_IMAGE="${AAI_HAPROXY_IMAGE:-aaionap/haproxy}";
84 export AAI_HAPROXY_VERSION="${AAI_HAPROXY_VERSION:-1.2.3}";
85
86 NEXUS_USERNAME=$(cat /opt/config/nexus_username.txt)
87 NEXUS_PASSWD=$(cat /opt/config/nexus_password.txt)
88 NEXUS_DOCKER_REPO=$(cat /opt/config/nexus_docker_repo.txt)
89 DMAAP_TOPIC=$(cat /opt/config/dmaap_topic.txt)
90 DOCKER_IMAGE_VERSION=$(cat /opt/config/docker_version.txt)
91 DOCKER_REGISTRY=${NEXUS_DOCKER_REPO}
92
93 RESOURCES_DOCKER_IMAGE_VERSION=1.2.2
94 TRAVERSAL_DOCKER_IMAGE_VERSION=1.2.2
95 SEARCH_DATA_SERVICE_DOCKER_IMAGE_VERSION=1.2.1
96 DATA_ROUTER_DOCKER_IMAGE_VERSION=1.2.2
97 MODEL_LOADER_DOCKER_IMAGE_VERSION=1.2.1
98 SPARKY_BE_DOCKER_IMAGE_VERSION=1.2.1
99 CHAMP_DOCKER_IMAGE_VERSION=1.2.3
100 GIZMO_DOCKER_IMAGE_VERSION=1.2.0
101 SPIKE_DOCKER_IMAGE_VERSION=1.2.0
102 BABEL_DOCKER_IMAGE_VERSION=1.2.0
103
104 docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
105
106 function wait_for_container() {
107
108     CONTAINER_NAME="$1";
109     START_TEXT="$2";
110
111     TIMEOUT=600
112
113     # wait for the real startup
114     AMOUNT_STARTUP=$(docker logs ${CONTAINER_NAME} 2>&1 | grep "$START_TEXT" | wc -l)
115     while [[ ${AMOUNT_STARTUP} -ne 1 ]];
116     do
117         echo "Waiting for '$CONTAINER_NAME' deployment to finish ..."
118         AMOUNT_STARTUP=$(docker logs ${CONTAINER_NAME} 2>&1 | grep "$START_TEXT" | wc -l)
119         if [ "$TIMEOUT" = "0" ];
120         then
121             echo "ERROR: $CONTAINER_NAME deployment failed."
122             exit 1
123         fi
124         let TIMEOUT-=5
125         sleep 5
126     done
127 }
128
129 function check_if_user_exists(){
130
131         local user_id=$1;
132
133         if [ -z "$user_id" ]; then
134                 echo "Needs to provide at least one argument for check_if_user_exists func";
135                 exit 1;
136         fi;
137
138         id -u ${user_id} > /dev/null 2>&1 && {
139                 echo "1";
140         } || {
141                 echo "0";
142         }
143 }
144
145 docker pull ${DOCKER_REGISTRY}/onap/aai-resources:${RESOURCES_DOCKER_IMAGE_VERSION};
146 docker tag $DOCKER_REGISTRY/onap/aai-resources:$RESOURCES_DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/aai-resources:latest;
147
148 docker pull ${DOCKER_REGISTRY}/onap/aai-traversal:${TRAVERSAL_DOCKER_IMAGE_VERSION};
149 docker tag $DOCKER_REGISTRY/onap/aai-traversal:$TRAVERSAL_DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/aai-traversal:latest;
150
151 docker pull ${DOCKER_REGISTRY}/onap/search-data-service:${SEARCH_DATA_SERVICE_DOCKER_IMAGE_VERSION};
152 docker tag $DOCKER_REGISTRY/onap/search-data-service:$SEARCH_DATA_SERVICE_DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/search-data-service:latest;
153
154 docker pull ${DOCKER_REGISTRY}/onap/data-router:${DATA_ROUTER_DOCKER_IMAGE_VERSION};
155 docker tag $DOCKER_REGISTRY/onap/data-router:$DATA_ROUTER_DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/data-router:latest;
156
157 docker pull ${DOCKER_REGISTRY}/onap/model-loader:${MODEL_LOADER_DOCKER_IMAGE_VERSION};
158 docker tag $DOCKER_REGISTRY/onap/model-loader:$MODEL_LOADER_DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/model-loader:latest;
159
160 docker pull ${DOCKER_REGISTRY}/onap/sparky-be:${SPARKY_BE_DOCKER_IMAGE_VERSION};
161 docker tag $DOCKER_REGISTRY/onap/sparky-be:$SPARKY_BE_DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/sparky-be:latest;
162
163 docker pull ${DOCKER_REGISTRY}/onap/champ:${CHAMP_DOCKER_IMAGE_VERSION};
164 docker tag $DOCKER_REGISTRY/onap/champ:$CHAMP_DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/champ:latest;
165
166 docker pull ${DOCKER_REGISTRY}/onap/gizmo:${GIZMO_DOCKER_IMAGE_VERSION};
167 docker tag $DOCKER_REGISTRY/onap/gizmo:$GIZMO_DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/gizmo:latest;
168
169 docker pull ${DOCKER_REGISTRY}/onap/spike:${SPIKE_DOCKER_IMAGE_VERSION};
170 docker tag $DOCKER_REGISTRY/onap/spike:$SPIKE_DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/spike:latest;
171
172 docker pull ${DOCKER_REGISTRY}/onap/babel:${BABEL_DOCKER_IMAGE_VERSION};
173 docker tag $DOCKER_REGISTRY/onap/babel:$BABEL_DOCKER_IMAGE_VERSION $DOCKER_REGISTRY/onap/babel:latest;
174
175 # cleanup
176 $DOCKER_COMPOSE_CMD stop
177 $DOCKER_COMPOSE_CMD rm -f -v
178
179
180 USER_EXISTS=$(check_if_user_exists aaiadmin);
181
182 if [ "${USER_EXISTS}" -eq 0 ]; then
183         export USER_ID=9000;
184         export GROUP_ID=9000;
185 else
186         export USER_ID=$(id -u aaiadmin);
187         export GROUP_ID=$(id -g aaiadmin);
188 fi;
189
190 chown -R $USER_ID:$USER_ID $RESOURCE_LOGS $TRAVERSAL_LOGS;
191 chown -R 341790:492381 $BABEL_LOGS;
192
193 $DOCKER_COMPOSE_CMD run --rm aai-resources.api.simpledemo.onap.org createDBSchema.sh
194
195 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);
196 wait_for_container $RESOURCES_CONTAINER_NAME 'Resources Microservice Started';
197
198 # Deploy haproxy and traversal at the same time for traversal to make updateQuery against resources using haproxy
199 $DOCKER_COMPOSE_CMD up -d aai-traversal.api.simpledemo.onap.org aai.api.simpledemo.onap.org
200
201 sleep 3;
202
203 $DOCKER_COMPOSE_CMD run --rm aai-traversal.api.simpledemo.onap.org install/updateQueryData.sh
204
205 $DOCKER_COMPOSE_CMD up -d sparky-be
206
207 $DOCKER_COMPOSE_CMD up -d model-loader datarouter aai.searchservice.simpledemo.openecomp.org
208
209 $DOCKER_COMPOSE_CMD up -d champ-service
210
211 $DOCKER_COMPOSE_CMD up -d crud-service
212
213 $DOCKER_COMPOSE_CMD up -d spike-service
214
215 $DOCKER_COMPOSE_CMD up -d babel
216
217 echo "A&AI Microservices are successfully started";
218
219 crontab < /opt/test-config/aaicrontab