blob: 4625dc8052335768e3250145eb42fa07766b28c7 [file] [log] [blame]
Mike Marchetti9d9192b2018-09-21 12:03:05 -04001#!/bin/sh
2
Mike Marchetti7abb18b2018-09-25 12:09:51 -04003WAIT_TIME=60
Mike Marchetti9d9192b2018-09-21 12:03:05 -04004NUM_SERVICES_WITH_HEALTH=3
tiernobc983ec2018-10-11 15:03:06 +02005SERVICES_WITH_HEALTH="nbi ro kafka"
Mike Marchetti9d9192b2018-09-21 12:03:05 -04006
tiernobc983ec2018-10-11 15:03:06 +02007while getopts "w:s:n:c:" o; do
Mike Marchetti9d9192b2018-09-21 12:03:05 -04008 case "${o}" in
9 w)
10 WAIT_TIME=${OPTARG}
11 ;;
12 s)
13 STACK_NAME=${OPTARG}
14 ;;
15 n)
16 NUM_SERVICES_WITH_HEALTH=${OPTARG}
17 ;;
tiernobc983ec2018-10-11 15:03:06 +020018 c)
19 SERVICES_WITH_HEALTH="${OPTARG}"
20 ;;
Mike Marchetti9d9192b2018-09-21 12:03:05 -040021 esac
22done
23
24
25time=0
26step=1
27while [ $time -le "$WAIT_TIME" ]; do
28 if [ "$(docker ps | grep " ${STACK_NAME}_" | grep -i healthy | wc -l)" -ge "$NUM_SERVICES_WITH_HEALTH" ]; then
29 exit 0
30 fi
31
32 sleep $step
33 time=$((time+step))
34done
Mike Marchetti37c3f512018-09-24 10:27:00 -040035
36echo "Not all Docker services are healthy"
37docker ps | grep " ${STACK_NAME}_"
38
tiernobc983ec2018-10-11 15:03:06 +020039for S_WITH_HEALTH in $SERVICES_WITH_HEALTH ; do
40 docker ps | grep " ${STACK_NAME}_" | grep -i healthy | grep -q "_${S_WITH_HEALTH}." && continue
41 echo
42 echo BEGIN LOGS of container ${S_WITH_HEALTH} not healthy
43 docker service logs ${STACK_NAME}_${S_WITH_HEALTH} 2>&1 | tail -n 100
44 echo END LOGS of container ${S_WITH_HEALTH} not healthy
45 echo
46done
47
Mike Marchetti9d9192b2018-09-21 12:03:05 -040048exit 1
tiernobc983ec2018-10-11 15:03:06 +020049