Disable stage3 in branch WIM
[osm/devops.git] / installers / osm_health.sh
index 2be8ce4..2684af7 100755 (executable)
@@ -1,9 +1,11 @@
 #!/bin/sh
 
-WAIT_TIME=60
-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)
+WAIT_FINAL=30
 
-while getopts "w:s:n:" o; do
+while getopts "w:s:n:c:" o; do
     case "${o}" in
         w)
             WAIT_TIME=${OPTARG}
@@ -14,14 +16,20 @@ 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
+        # all dockers are healthy now.
+        # final sleep is needed until more health checks are added to validate system is ready to handle requests
+        sleep $WAIT_FINAL
         exit 0
     fi
 
@@ -32,4 +40,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
+