Liveness for CSIT
[aaf/authz.git] / auth / sample / bin / pod_wait.sh
index 71773be..5a8d062 100644 (file)
@@ -14,7 +14,6 @@ function status {
   fi
 }
 
-echo $APP $OTHER
 
 function check {
   if [ -d "$DIR" ]; then
@@ -28,23 +27,60 @@ function check {
   fi
 }
 
-echo "App $APP is waiting to start until $OTHER is ready"
-status "waiting for $OTHER"
+function wait {
+  n=0
+  while [ $n -lt 40  ]; do 
+     rv="$(check)"
+     echo "$rv"
+     if [ "$rv" = "ready" ]; then
+       echo "$OTHER is $rv"
+       n=10000
+     else 
+       (( ++n )) 
+       echo "Sleep 10 (iteration $n)"
+       sleep 10
+     fi
+  done
+}
+
+function start {
+  n=0
+  while [ $n -lt 40  ]; do 
+     rv="$(check)"
+     echo "$OTHER is $rv"
+     if [ "$rv" = "ready" ]; then
+       # This is critical.  Until status is literally "ready" in the status directory, no processes will start
+       status ready
+       echo "Starting $@"
+       n=10000
+     else 
+       (( ++n )) 
+       echo "Sleep 10 (iteration $n)"
+       sleep 10
+     fi
+  done
+}
 
-n=0
-while [ $n -lt 40  ]; do 
-   rv="$(check)"
-   echo "$OTHER is $rv"
-   if [ "$rv" = "ready" ]; then
-     # This is critical.  Until status is literally "ready" in the status directory, no processes will start
-     status ready
-     echo "Starting $@"
-     n=10000
-   else 
-     (( ++n )) 
-     echo "Sleep 10 (iteration $n)"
-     sleep 10
-   fi
-done
+case "$OTHER" in
+  sleep)
+    echo "Sleeping $1"
+    status "Sleeping $1"
+    sleep $1
+    shift
+    status "ready"
+    echo "Done"
+    ;;
+  wait)
+    OTHER="$1"
+    shift    
+    wait
+    ;;
+  *)
+    echo "App $APP is waiting to start until $OTHER is ready"
+    status "waiting for $OTHER"
+  
+    start
+  ;;
+esac  
 
 eval "$@"