adding healthcheck to LCM
[osm/devops.git] / installers / osm_health.sh
index 3a7eaf9..b8e24ad 100755 (executable)
@@ -1,9 +1,10 @@
 #!/bin/sh
 
-WAIT_TIME=30
-NUM_SERVICES_WITH_HEALTH=3
+WAIT_TIME=180  # LCM healthcheck needs 140 senconds
+SERVICES_WITH_HEALTH="nbi ro zookeeper lcm"
+NUM_SERVICES_WITH_HEALTH=$(echo $SERVICES_WITH_HEALTH | wc -w)
 
-while getopts "w:s:n:" o; do
+while getopts "w:s:n:c:" o; do
     case "${o}" in
         w)
             WAIT_TIME=${OPTARG}
@@ -14,12 +15,15 @@ while getopts "w:s:n:" o; do
         n)
             NUM_SERVICES_WITH_HEALTH=${OPTARG}
             ;;
+        c)
+            SERVICES_WITH_HEALTH="${OPTARG}"
+            ;;
     esac
 done
 
 
 time=0
-step=1
+step=2
 while [ $time -le "$WAIT_TIME" ]; do
     if [ "$(docker ps | grep " ${STACK_NAME}_" | grep -i healthy | wc -l)" -ge "$NUM_SERVICES_WITH_HEALTH" ]; then
         exit 0
@@ -32,4 +36,14 @@ done
 echo "Not all Docker services are healthy"
 docker ps | grep " ${STACK_NAME}_"
 
+for S_WITH_HEALTH in $SERVICES_WITH_HEALTH ; do
+    docker ps | grep " ${STACK_NAME}_" | grep -i healthy | grep -q "_${S_WITH_HEALTH}."  && continue
+    echo
+    echo BEGIN LOGS of container ${S_WITH_HEALTH} not healthy
+    docker service logs ${STACK_NAME}_${S_WITH_HEALTH} 2>&1 | tail -n 100
+    echo END LOGS of container ${S_WITH_HEALTH} not healthy
+    echo
+done
+
 exit 1
+