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