Add support for running SDC using Docker on OSX
[sdc.git] / sdc-os-chef / scripts / docker_run.sh
1 #!/bin/bash
2
3 CS_PASSWORD="onap123#@!"
4 SDC_USER="asdc_user"
5 SDC_PASSWORD="Aa1234%^!"
6 JETTY_BASE="/var/lib/jetty"
7 BE_JAVA_OPTIONS="-Xdebug -agentlib:jdwp=transport=dt_socket,address=4000,server=y,suspend=n -Xmx1536m -Xms1536m"
8 FE_JAVA_OPTIONS="-Xdebug -agentlib:jdwp=transport=dt_socket,address=6000,server=y,suspend=n -Xmx256m -Xms256m"
9 ONBOARD_BE_JAVA_OPTIONS="-Xdebug -agentlib:jdwp=transport=dt_socket,address=4001,server=y,suspend=n -Xmx1g -Xms1g"
10 SIM_JAVA_OPTIONS=" -Xmx128m -Xms128m -Xss1m"
11 API_TESTS_JAVA_OPTIONS="-Xmx512m -Xms512m"
12 UI_TESTS_JAVA_OPTIONS="-Xmx1024m -Xms1024m"
13 #Define this as variable, so it can be excluded in run commands on Docker for OSX, as /etc/localtime cant be mounted there.
14 LOCAL_TIME_MOUNT_CMD="--volume /etc/localtime:/etc/localtime:ro"
15 # If os is OSX, unset this, so /etc/localtime is not mounted, otherwise leave it be
16 if [[ "$OSTYPE" == "darwin"* ]]; then
17   LOCAL_TIME_MOUNT_CMD=""
18 fi
19
20
21
22 function usage {
23     echo "usage: docker_run.sh [ -r|--release <RELEASE-NAME> ]  [ -e|--environment <ENV-NAME> ] [ -p|--port <Docker-hub-port>] [ -l|--local <Run-without-pull>] [ -t|--runTests <Run-with-sanityDocker>] [ -h|--help ]"
24 }
25
26
27 function cleanup {
28     echo "performing old dockers cleanup"
29
30         if [ "$1" == "all" ] ; then
31                 docker_ids=`docker ps -a | egrep -v "onap/sdc-simulator" | egrep "ecomp-nexus:${PORT}/sdc|sdc|Exit" | awk '{print $1}'`
32                 for X in ${docker_ids}
33                 do
34                         docker rm -f ${X}
35                 done
36         else
37             echo "performing $1 docker cleanup"
38             tmp=`docker ps -a -q --filter="name=$1"`
39             if [[ ! -z "$tmp" ]]; then
40                 docker rm -f ${tmp}
41             fi
42         fi
43 }
44
45 #Prefix all dirs with WORKSPACE variable, so it doesn't use absolute path if runnning outside of VM
46 function dir_perms {
47   mkdir -p ${WORKSPACE}/data/logs/BE/SDC/SDC-BE
48   mkdir -p ${WORKSPACE}/data/logs/FE/SDC/SDC-FE
49   mkdir -p ${WORKSPACE}/data/logs/sdc-api-tests/ExtentReport
50   mkdir -p ${WORKSPACE}/data/logs/ONBOARD/SDC/ONBOARD-BE
51         mkdir -p ${WORKSPACE}/data/logs/sdc-api-tests/target
52         mkdir -p ${WORKSPACE}/data/logs/sdc-ui-tests/ExtentReport
53         mkdir -p ${WORKSPACE}/data/logs/sdc-ui-tests/target
54         mkdir -p ${WORKSPACE}/data/logs/docker_logs
55         mkdir -p ${WORKSPACE}/data/logs/WS
56   chmod -R 777 ${WORKSPACE}/data/logs
57 }
58
59 function docker_logs {
60
61 docker logs $1 > ${WORKSPACE}/data/logs/docker_logs/$1_docker.log
62
63 }
64
65 function probe_cs {
66
67 cs_stat=false
68 docker exec $1 /var/lib/ready-probe.sh > /dev/null 2>&1
69 rc=$?
70 if [[ $rc == 0 ]]; then
71   echo DOCKER start finished in $2 seconds
72   cs_stat=true
73 fi
74
75 }
76
77 function probe_be {
78
79 be_stat=false
80 docker exec $1 /var/lib/ready-probe.sh > /dev/null 2>&1
81 rc=$?
82 if [[ $rc == 0 ]]; then
83   echo DOCKER start finished in $2 seconds
84   be_stat=true
85 fi
86
87 }
88
89 function probe_sdc_onboard_be {
90
91 sdc_onboard_be_stat=false
92 docker exec $1 /var/lib/ready-probe.sh > /dev/null 2>&1
93 rc=$?
94 if [[ $rc == 0 ]]; then
95   echo DOCKER start finished in $2 seconds
96   sdc_onboard_be_stat=true
97 fi
98
99 }
100
101 function probe_fe {
102
103 fe_stat=false
104 docker exec $1 /var/lib/ready-probe.sh > /dev/null 2>&1
105 rc=$?
106 if [[ $rc == 0 ]]; then
107   echo DOCKER start finished in $2 seconds
108   fe_stat=true
109 fi
110
111 }
112
113 function probe_es {
114
115 es_stat=false
116 health_Check_http_code=$(curl --noproxy "*" -o /dev/null -w '%{http_code}' http://${IP}:9200/_cluster/health?wait_for_status=yellow&timeout=120s)
117 if [[ "$health_Check_http_code" -eq 200 ]]
118  then
119    echo DOCKER start finished in $2 seconds
120    es_stat=true
121  fi
122
123 }
124
125 function probe_sim {
126
127 if lsof -Pi :8285 -sTCP:LISTEN -t >/dev/null ; then
128     echo "running"
129     sim_stat=true
130 else
131     echo "not running"
132     sim_stat=false
133 fi
134
135
136 }
137
138 function probe_docker {
139
140 match_result=false
141 MATCH=`docker logs --tail 30 $1 | grep "DOCKER STARTED"`
142 echo MATCH is -- $MATCH
143
144 if [ -n "$MATCH" ]; then
145    echo DOCKER start finished in $2 seconds
146    match_result=true
147 fi
148 }
149 function monitor_docker {
150
151     echo monitor $1 Docker
152     sleep 5
153     TIME_OUT=900
154     INTERVAL=20
155     TIME=0
156     while [ "$TIME" -lt "$TIME_OUT" ]; do
157        if [ "$1" == "sdc-cs" ]; then
158                     probe_cs $1 $TIME
159                 if [[ $cs_stat == true ]]; then break; fi
160                 elif [ "$1" == "sdc-es" ]; then
161                     probe_es $1 $TIME
162                         if [[ $es_stat == true ]]; then break; fi
163                 elif [ "$1" == "sdc-BE" ]; then
164                     probe_be $1 $TIME
165                         if [[ $be_stat == true ]]; then break; fi
166                 elif [ "$1" == "sdc-FE" ]; then
167                     probe_fe $1 $TIME
168                         if [[ $fe_stat == true ]]; then break; fi
169         elif [ "$1" == "sdc-onboard-BE" ]; then
170              probe_sdc_onboard_be $1 $TIME
171              if [[ $sdc_onboard_be_stat == true ]]; then break; fi
172
173         else
174             probe_docker $1 $TIME
175             if [[ $match_result == true ]]; then break; fi
176         fi
177         echo Sleep: $INTERVAL seconds before testing if $1 DOCKER is up. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds
178         sleep $INTERVAL
179         TIME=$(($TIME+$INTERVAL))
180     done
181
182     docker_logs $1
183
184     if [ "$TIME" -ge "$TIME_OUT" ]; then
185         echo -e "\e[1;31mTIME OUT: DOCKER was NOT fully started in $TIME_OUT seconds... Could cause problems ...\e[0m"
186     fi
187
188 }
189
190 function healthCheck {
191         curl --noproxy "*" ${IP}:9200/_cluster/health?pretty=true
192
193         echo "BE health-Check:"
194         curl --noproxy "*" http://${IP}:8080/sdc2/rest/healthCheck
195
196         echo ""
197         echo ""
198         echo "FE health-Check:"
199         curl --noproxy "*" http://${IP}:8181/sdc1/rest/healthCheck
200
201
202         echo ""
203         echo ""
204         healthCheck_http_code=$(curl --noproxy "*" -o /dev/null -w '%{http_code}' -H "Accept: application/json" -H "Content-Type: application/json" -H "USER_ID: jh0003" http://${IP}:8080/sdc2/rest/v1/user/demo;)
205         if [[ ${healthCheck_http_code} != 200 ]]
206         then
207                 echo "Error [${healthCheck_http_code}] while user existance check"
208                 return ${healthCheck_http_code}
209         fi
210         echo "check user existance: OK"
211         return ${healthCheck_http_code}
212 }
213
214 RELEASE=latest
215 LOCAL=false
216 RUNTESTS=false
217 DEBUG_PORT="--publish 4000:4000"
218 ONBOARD_DEBUG_PORT="--publish 4001:4000"
219
220 while [ $# -gt 0 ]; do
221     case $1 in
222         # -r | --release - The specific docker version to pull and deploy
223     -r | --release )
224           shift 1 ;
225           RELEASE=$1;
226           shift 1;;
227         # -e | --environment - The environment name you want to deploy
228     -e | --environment )
229           shift 1;
230           DEP_ENV=$1;
231           shift 1 ;;
232         # -p | --port - The port from which to connect to the docker nexus
233     -p | --port )
234           shift 1 ;
235           PORT=$1;
236           shift 1 ;;
237         # -l | --local - Use this for deploying your local dockers without pulling them first
238     -l | --local )
239           LOCAL=true;
240           shift 1;;
241         # -ta - Use this for running the APIs sanity docker after all other dockers have been deployed
242     -ta  )
243           shift 1 ;
244           API_SUITE=$1;
245           RUN_API_TESTS=true;
246           shift 1 ;;
247         # -tu - Use this for running the UI sanity docker after all other dockers have been deployed
248     -tu  )
249           shift 1 ;
250               UI_SUITE=$1;
251           RUN_UI_TESTS=true;
252           shift 1 ;;
253     # -tad - Use this for running the DEFAULT suite of tests in APIs sanity docker after all other dockers have been deployed
254     -tad | -t )
255           API_SUITE="onapApiSanity";
256           RUN_API_TESTS=true;
257           shift 1 ;;
258         # -tud - Use this for running the DEFAULT suite of tests in UI sanity docker after all other dockers have been deployed
259     -tud   )
260           UI_SUITE="onapUiSanity";
261           RUN_UI_TESTS=true;
262           shift 1 ;;
263     # -d | --docker - The init specified docker
264     -d | --docker )
265           shift 1 ;
266           DOCKER=$1;
267           shift 1 ;;
268         # -h | --help - Display the help message with all the available run options
269     -h | --help )
270           usage;
271           exit  0;;
272          * )
273           usage;
274           exit  1;;
275     esac
276 done
277
278 #Prefix those with WORKSPACE so it can be set to something other then /opt
279 [ -f ${WORKSPACE}/opt/config/env_name.txt ] && DEP_ENV=$(cat ${WORKSPACE}/opt/config/env_name.txt) || echo ${DEP_ENV}
280 [ -f ${WORKSPACE}/opt/config/nexus_username.txt ] && NEXUS_USERNAME=$(cat ${WORKSPACE}/opt/config/nexus_username.txt)    || NEXUS_USERNAME=release
281 [ -f ${WORKSPACE}/opt/config/nexus_password.txt ] && NEXUS_PASSWD=$(cat ${WORKSPACE}/opt/config/nexus_password.txt)      || NEXUS_PASSWD=sfWU3DFVdBr7GVxB85mTYgAW
282 [ -f ${WORKSPACE}/opt/config/nexus_docker_repo.txt ] && NEXUS_DOCKER_REPO=$(cat ${WORKSPACE}/opt/config/nexus_docker_repo.txt) || NEXUS_DOCKER_REPO=nexus3.onap.org:${PORT}
283 [ -f ${WORKSPACE}/opt/config/nexus_username.txt ] && docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
284
285 export IP=`ip route get 8.8.8.8 | awk '/src/{ print $7 }'`
286 #If OSX, then use this to get IP
287 if [[ "$OSTYPE" == "darwin"* ]]; then
288     export IP=$(ipconfig getifaddr en0)
289 fi
290 export PREFIX=${NEXUS_DOCKER_REPO}'/onap'
291
292 if [ ${LOCAL} = true ]; then
293         PREFIX='onap'
294 fi
295
296 echo ""
297
298
299 #Elastic-Search
300 function sdc-es {
301 echo "docker run sdc-elasticsearch..."
302 if [ ${LOCAL} = false ]; then
303         echo "pulling code"
304         docker pull ${PREFIX}/sdc-elasticsearch:${RELEASE}
305 fi
306 docker run -dit --name sdc-es --env ENVNAME="${DEP_ENV}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --env ES_JAVA_OPTS="-Xms512m -Xmx512m" --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 $LOCAL_TIME_MOUNT_CMD --env ES_HEAP_SIZE=1024M --volume ${WORKSPACE}/data/ES:/usr/share/elasticsearch/data --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments --publish 9200:9200 --publish 9300:9300 ${PREFIX}/sdc-elasticsearch:${RELEASE} /bin/sh
307
308 echo "please wait while ES is starting..."
309 monitor_docker sdc-es
310 }
311
312
313 #Init-Elastic-Search
314 function sdc-init-es {
315 echo "docker run sdc-init-elasticsearch..."
316 if [ ${LOCAL} = false ]; then
317         echo "pulling code"
318         docker pull ${PREFIX}/sdc-init-elasticsearch:${RELEASE}
319 fi
320 echo "Running sdc-init-es"
321 docker run --name sdc-init-es --env ENVNAME="${DEP_ENV}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 $LOCAL_TIME_MOUNT_CMD --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments ${PREFIX}/sdc-init-elasticsearch:${RELEASE} > /dev/null 2>&1
322 rc=$?
323 docker_logs sdc-init-es
324 if [[ $rc != 0 ]]; then exit $rc; fi
325
326 }
327
328 #Cassandra
329 function sdc-cs {
330 echo "docker run sdc-cassandra..."
331 if [ ${LOCAL} = false ]; then
332         docker pull ${PREFIX}/sdc-cassandra:${RELEASE}
333 fi
334 docker run -dit --name sdc-cs --env RELEASE="${RELEASE}" --env CS_PASSWORD="${CS_PASSWORD}" --env ENVNAME="${DEP_ENV}" --env HOST_IP=${IP} --env MAX_HEAP_SIZE="1536M" --env HEAP_NEWSIZE="512M" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 $LOCAL_TIME_MOUNT_CMD --volume ${WORKSPACE}/data/CS:/var/lib/cassandra --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments --publish 9042:9042 --publish 9160:9160 ${PREFIX}/sdc-cassandra:${RELEASE} /bin/sh
335
336
337 echo "please wait while CS is starting..."
338 monitor_docker sdc-cs
339 }
340
341 #Cassandra-init
342 function sdc-cs-init {
343 echo "docker run sdc-cassandra-init..."
344 if [ ${LOCAL} = false ]; then
345         docker pull ${PREFIX}/sdc-cassandra-init:${RELEASE}
346 fi
347 docker run --name sdc-cs-init --env RELEASE="${RELEASE}" --env SDC_USER="${SDC_USER}" --env SDC_PASSWORD="${SDC_PASSWORD}" --env CS_PASSWORD="${CS_PASSWORD}" --env ENVNAME="${DEP_ENV}" --env HOST_IP=${IP} --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 $LOCAL_TIME_MOUNT_CMD --volume ${WORKSPACE}/data/CS:/var/lib/cassandra --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments --volume ${WORKSPACE}/data/CS-Init:/root/chef-solo/cache ${PREFIX}/sdc-cassandra-init:${RELEASE} > /dev/null 2>&1
348 rc=$?
349 docker_logs sdc-cs-init
350 if [[ $rc != 0 ]]; then exit $rc; fi
351 }
352
353 #Onboard Cassandra-init
354 function sdc-cs-onboard-init {
355 echo "docker run sdc-cs-onboard-init..."
356 if [ ${LOCAL} = false ]; then
357         docker pull ${PREFIX}/sdc-onboard-cassandra-init:${RELEASE}
358 fi
359 docker run --name sdc-cs-onboard-init --env RELEASE="${RELEASE}" --env CS_HOST_IP=${IP}  --env SDC_USER="${SDC_USER}" --env SDC_PASSWORD="${SDC_PASSWORD}" --env CS_PASSWORD="${CS_PASSWORD}" --env ENVNAME="${DEP_ENV}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 $LOCAL_TIME_MOUNT_CMD --volume ${WORKSPACE}/data/CS:/var/lib/cassandra --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments --volume ${WORKSPACE}/data/CS-Init:/root/chef-solo/cache ${PREFIX}/sdc-onboard-cassandra-init:${RELEASE}
360 rc=$?
361 docker_logs sdc-onboard-cs-init
362 if [[ $rc != 0 ]]; then exit $rc; fi
363 }
364
365 #Kibana
366 function sdc-kbn {
367 echo "docker run sdc-kibana..."
368 if [ ${LOCAL} = false ]; then
369         docker pull ${PREFIX}/sdc-kibana:${RELEASE}
370 docker run --detach --name sdc-kbn --env ENVNAME="${DEP_ENV}" --env NODE_OPTIONS="--max-old-space-size=200" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 $LOCAL_TIME_MOUNT_CMD --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments --publish 5601:5601 ${PREFIX}/sdc-kibana:${RELEASE}
371 fi
372
373 }
374
375 #Back-End
376 function sdc-BE {
377 echo "docker run sdc-backend..."
378 if [ ${LOCAL} = false ]; then
379         docker pull ${PREFIX}/sdc-backend:${RELEASE}
380 else
381         ADDITIONAL_ARGUMENTS=${DEBUG_PORT}
382 fi
383 docker run --detach --name sdc-BE --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" --env cassandra_ssl_enabled="false" --env JAVA_OPTIONS="${BE_JAVA_OPTIONS}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 $LOCAL_TIME_MOUNT_CMD --volume ${WORKSPACE}/data/logs/BE/:/var/lib/jetty/logs  --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments --publish 8443:8443 --publish 8080:8080 ${ADDITIONAL_ARGUMENTS} ${PREFIX}/sdc-backend:${RELEASE}
384
385 echo "please wait while BE is starting..."
386 monitor_docker sdc-BE
387 }
388
389 # Back-End-Init
390 function sdc-BE-init {
391 echo "docker run sdc-backend-init..."
392 if [ ${LOCAL} = false ]; then
393         docker pull ${PREFIX}/sdc-backend-init:${RELEASE}
394 fi
395 docker run --name sdc-BE-init --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 $LOCAL_TIME_MOUNT_CMD --volume ${WORKSPACE}/data/logs/BE/:/var/lib/jetty/logs  --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments ${PREFIX}/sdc-backend-init:${RELEASE} > /dev/null 2>&1
396 rc=$?
397 docker_logs sdc-BE-init
398 if [[ $rc != 0 ]]; then exit $rc; fi
399 }
400
401 # Onboard Back-End
402 function sdc-onboard-BE {
403
404 dir_perms
405 # Back-End
406 echo "docker run  sdc-onboard-BE ..."
407 if [ ${LOCAL} = false ]; then
408         docker pull ${PREFIX}/sdc-onboard-backend:${RELEASE}
409 else
410         ADDITIONAL_ARGUMENTS=${ONBOARD_DEBUG_PORT}
411 fi
412 docker run --detach --name sdc-onboard-BE --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" --env cassandra_ssl_enabled="false" --env SDC_CLUSTER_NAME="SDC-CS-${DEP_ENV}" --env SDC_USER="${SDC_USER}" --env SDC_PASSWORD="${SDC_PASSWORD}" --env JAVA_OPTIONS="${ONBOARD_BE_JAVA_OPTIONS}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 $LOCAL_TIME_MOUNT_CMD --volume ${WORKSPACE}/data/logs/ONBOARD:/var/lib/jetty/logs --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments --publish 8445:8445 --publish 8081:8081 ${ADDITIONAL_ARGUMENTS} ${PREFIX}/sdc-onboard-backend:${RELEASE}
413
414 echo "please wait while sdc-onboard-BE is starting..."
415 monitor_docker sdc-onboard-BE
416 }
417
418
419 # Front-End
420 function sdc-FE {
421 echo "docker run sdc-frontend..."
422 if [ ${LOCAL} = false ]; then
423         docker pull ${PREFIX}/sdc-frontend:${RELEASE}
424 fi
425 docker run --detach --name sdc-FE --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" --env JAVA_OPTIONS="${FE_JAVA_OPTIONS}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 $LOCAL_TIME_MOUNT_CMD  --volume ${WORKSPACE}/data/logs/FE/:/var/lib/jetty/logs --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments --publish 9443:9443 --publish 8181:8181 ${PREFIX}/sdc-frontend:${RELEASE}
426
427 echo "please wait while FE is starting....."
428 monitor_docker sdc-FE
429 }
430
431
432 # apis-sanity
433 function sdc-api-tests {
434 healthCheck
435 if [[ (${RUN_API_TESTS} = true) && (${healthCheck_http_code} == 200) ]]; then
436     echo "docker run sdc-api-tests..."
437     echo "Triger sdc-api-tests docker, please wait..."
438
439     if [ ${LOCAL} = false ]; then
440         docker pull ${PREFIX}/sdc-api-tests:${RELEASE}
441     fi
442
443 docker run --detach --name sdc-api-tests --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" --env JAVA_OPTIONS="${API_TESTS_JAVA_OPTIONS}" --env SUITE_NAME=${API_SUITE} --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 $LOCAL_TIME_MOUNT_CMD --volume ${WORKSPACE}/data/logs/sdc-api-tests/target:/var/lib/tests/target --volume ${WORKSPACE}/data/logs/sdc-api-tests/ExtentReport:/var/lib/tests/ExtentReport --volume ${WORKSPACE}/data/logs/sdc-api-tests/outputCsar:/var/lib/tests/outputCsar --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments --publish 9560:9560 ${PREFIX}/sdc-api-tests:${RELEASE} echo "please wait while SDC-API-TESTS is starting....."
444 monitor_docker sdc-api-tests
445
446 fi
447 }
448
449 # ui-sanity
450 function sdc-ui-tests {
451 healthCheck
452 if [[ (${RUN_UI_TESTS} = true) && (${healthCheck_http_code} == 200) ]]; then
453     echo "docker run sdc-ui-tets..."
454     echo "Triger sdc-ui-tests docker, please wait..."
455
456     if [ ${LOCAL} = false ]; then
457         docker pull ${PREFIX}/sdc-ui-tests:${RELEASE}
458     fi
459
460 sdc-sim
461 docker run --detach --name sdc-ui-tests --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" --env JAVA_OPTIONS="${UI_TESTS_JAVA_OPTIONS}" --env SUITE_NAME=${UI_SUITE} --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 $LOCAL_TIME_MOUNT_CMD --volume ${WORKSPACE}/data/logs/sdc-ui-tests/target:/var/lib/tests/target --volume ${WORKSPACE}/data/logs/sdc-ui-tests/ExtentReport:/var/lib/tests/ExtentReport --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments --publish 5901:5901 --publish 6901:6901 ${PREFIX}/sdc-ui-tests:${RELEASE}
462 echo "please wait while SDC-UI-TESTS is starting....."
463 monitor_docker sdc-ui-tests
464
465 fi
466 }
467
468
469 # SDC-Simulator
470 function sdc-sim {
471 echo "docker run sdc-webSimulator..."
472 if [ ${LOCAL} = false ]; then
473         docker pull ${PREFIX}/sdc-simulator:${RELEASE}
474 fi
475
476 probe_sim
477 if [ sim_stat=false ]; then
478
479 docker run --detach --name sdc-sim  --env JAVA_OPTIONS="${SIM_JAVA_OPTIONS}" --env ENVNAME="${DEP_ENV}" $LOCAL_TIME_MOUNT_CMD --volume ${WORKSPACE}/data/logs/WS/:/var/lib/jetty/logs --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments --publish 8285:8080 --publish 8286:8443 ${PREFIX}/sdc-simulator:${RELEASE}
480 echo "please wait while SDC-WEB-SIMULATOR is starting....."
481 monitor_docker sdc-sim
482
483 fi
484 }
485
486 if [ -z "${DOCKER}" ]; then
487   cleanup all
488         dir_perms
489         sdc-es
490         sdc-init-es
491         sdc-cs
492         sdc-cs-init
493 #       sdc-kbn
494         sdc-cs-onboard-init
495         sdc-onboard-BE
496         sdc-BE
497         sdc-BE-init
498         sdc-FE
499   healthCheck
500         sdc-api-tests
501   sdc-ui-tests
502 else
503         cleanup ${DOCKER}
504         dir_perms
505         ${DOCKER}
506     healthCheck
507 fi