Adds MON to osm_health script
[osm/devops.git] / installers / osm_health.sh
1 #!/bin/sh
2
3 WAIT_TIME=180 # LCM healthcheck needs 140 senconds
4 SERVICES_WITH_HEALTH="nbi ro zookeeper lcm mon"
5 NUM_SERVICES_WITH_HEALTH=$(echo $SERVICES_WITH_HEALTH | wc -w)
6 WAIT_FINAL=30
7
8 while getopts "w:s:n:c:" o; do
9 case "${o}" in
10 w)
11 WAIT_TIME=${OPTARG}
12 ;;
13 s)
14 STACK_NAME=${OPTARG}
15 ;;
16 n)
17 NUM_SERVICES_WITH_HEALTH=${OPTARG}
18 ;;
19 c)
20 SERVICES_WITH_HEALTH="${OPTARG}"
21 ;;
22 esac
23 done
24
25
26 time=0
27 step=2
28 while [ $time -le "$WAIT_TIME" ]; do
29 if [ "$(docker ps | grep " ${STACK_NAME}_" | grep -i healthy | wc -l)" -ge "$NUM_SERVICES_WITH_HEALTH" ]; then
30 # all dockers are healthy now.
31 # final sleep is needed until more health checks are added to validate system is ready to handle requests
32 sleep $WAIT_FINAL
33 exit 0
34 fi
35
36 sleep $step
37 time=$((time+step))
38 done
39
40 echo "Not all Docker services are healthy"
41 docker ps | grep " ${STACK_NAME}_"
42
43 for S_WITH_HEALTH in $SERVICES_WITH_HEALTH ; do
44 docker ps | grep " ${STACK_NAME}_" | grep -i healthy | grep -q "_${S_WITH_HEALTH}." && continue
45 echo
46 echo BEGIN LOGS of container ${S_WITH_HEALTH} not healthy
47 docker service logs ${STACK_NAME}_${S_WITH_HEALTH} 2>&1 | tail -n 100
48 echo END LOGS of container ${S_WITH_HEALTH} not healthy
49 echo
50 done
51
52 exit 1
53