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