Liveness for CSIT

Issue-ID: AAF-606
Change-Id: I740c153d36d7428fbe0b35e8e997d1a5603d6f63
Signed-off-by: Instrumental <jonathan.gathman@att.com>
diff --git a/auth/auth-cass/docker/drun.sh b/auth/auth-cass/docker/drun.sh
index 1bcff83..7d05c7f 100644
--- a/auth/auth-cass/docker/drun.sh
+++ b/auth/auth-cass/docker/drun.sh
@@ -27,6 +27,7 @@
     -e CASSANDRA_DC=dc1 \
     -e CASSANDRA_CLUSTER_NAME=osaaf \
     -v "aaf_cass_data:/var/lib/cassandra" \
+    -v "aaf_status:/opt/app/aaf/status" \
     $PUBLISH \
     -d ${PREFIX}${ORG}/${PROJECT}/aaf_cass:${VERSION} "onap"
 else 
diff --git a/auth/docker/Dockerfile.config b/auth/docker/Dockerfile.config
index bc1eafc..59d8c56 100644
--- a/auth/docker/Dockerfile.config
+++ b/auth/docker/Dockerfile.config
@@ -13,6 +13,7 @@
 COPY CA /opt/app/aaf_config/CA
 COPY logs /opt/app/aaf_config/logs
 COPY bin/service.sh /opt/app/aaf_config/bin/agent.sh
+COPY bin/pod_wait.sh /opt/app/aaf_config/bin/
 COPY bin/aaf-auth-cmd-${AAF_VERSION}-full.jar /opt/app/aaf_config/bin/
 
 ENTRYPOINT ["/bin/bash","/opt/app/aaf_config/bin/agent.sh"]
diff --git a/auth/docker/aaf.sh b/auth/docker/aaf.sh
index 0512944..6ba8631 100644
--- a/auth/docker/aaf.sh
+++ b/auth/docker/aaf.sh
@@ -5,6 +5,7 @@
 function run_it() {
   $DOCKER run $@ \
     -v "aaf_config:$CONF_ROOT_DIR" \
+    -v "aaf_status:/opt/app/aaf/status" \
     --add-host="$HOSTNAME:$HOST_IP" \
     --add-host="aaf.osaaf.org:$HOST_IP" \
     --env HOSTNAME=${HOSTNAME} \
@@ -24,9 +25,17 @@
 }
 
 PARAMS="$@"
-if [ -z "$PARAMS" ]; then
-  run_it --rm 
-else
-  run_it -it --rm 
-fi
+case "$1" in 
+  bash)
+    run_it -it --rm 
+    ;;
+  -it)
+    shift 
+    PARAMS="$@"
+    run_it -it --rm 
+    ;;
+  *)
+    run_it --rm 
+    ;;
+esac
 
diff --git a/auth/docker/drun.sh b/auth/docker/drun.sh
index 358e923..f5756b8 100644
--- a/auth/docker/drun.sh
+++ b/auth/docker/drun.sh
@@ -25,7 +25,7 @@
 DOCKER=${DOCKER:=docker}
 
 # Running without params keeps from being TTY
-bash aaf.sh 
+bash ./aaf.sh 
 
 if [ "$1" == "" ]; then
     AAF_COMPONENTS=$(cat components)
@@ -34,31 +34,49 @@
 fi
 
 for AAF_COMPONENT in ${AAF_COMPONENTS}; do
+    LINKS=""
+    CMD_LINE=""
+    PORTMAP=""
     case "$AAF_COMPONENT" in
     "service")
         PORTMAP="8100:8100"
         LINKS="--link aaf_cass:cassandra "
+        # CASS_HOST is for Container based Cassadra
+        if [ -z "$CASS_HOST" ]; then
+	  CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_service sleep 0 cd /opt/app/aaf;bin/service"
+        else
+	  CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_service aaf_cass cd /opt/app/aaf;bin/service"
+        fi
         ;;
     "locate")
         PORTMAP="8095:8095"
         LINKS="--link aaf_cass:cassandra "
+	CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_locate aaf_service cd /opt/app/aaf;bin/locate"
         ;;
     "oauth")
         PORTMAP="8140:8140"
         LINKS="--link aaf_cass:cassandra "
+	CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_oauth aaf_service cd /opt/app/aaf;bin/oauth"
         ;;
     "gui")
         PORTMAP="8200:8200"
+        LINKS=""
+	CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_gui aaf_locate cd /opt/app/aaf;bin/gui"
         ;;
     "cm")
         PORTMAP="8150:8150"
         LINKS="--link aaf_cass:cassandra "
+	CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_cm aaf_locate cd /opt/app/aaf;bin/cm"
         ;;
     "hello")
         PORTMAP="8130:8130"
+        LINKS=""
+	CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_hello aaf_locate cd /opt/app/aaf;bin/hello"
         ;;
     "fs")
         PORTMAP="80:8096"
+        LINKS=""
+	CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_fs aaf_locate cd /opt/app/aaf;bin/fs"
         ;;
     esac
 
@@ -74,8 +92,7 @@
        ADD_HOST="$ADD_HOST --add-host=$A:$HOST_IP"
     done
 
-    if [[ "$CASS_HOST" =~ ":" ]]; then
-       echo "Adding Cassandra Host $CASS_HOST"
+    if [ ! -z "$LINKS" ] && [[ "$CASS_HOST" =~ ":" ]]; then
        ADD_HOST="$ADD_HOST --add-host=$CASS_HOST"
     fi
     $DOCKER run \
@@ -95,5 +112,7 @@
         --env CASSANDRA_PORT=${CASSANDRA_PORT} \
         --publish $PORTMAP \
         -v "aaf_config:$CONF_ROOT_DIR" \
-        ${PREFIX}${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${VERSION}
+        -v "aaf_status:/opt/app/aaf/status" \
+        ${PREFIX}${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${VERSION} \
+	$CMD_LINE
 done
diff --git a/auth/sample/bin/pod_wait.sh b/auth/sample/bin/pod_wait.sh
index 1435036..5a8d062 100644
--- a/auth/sample/bin/pod_wait.sh
+++ b/auth/sample/bin/pod_wait.sh
@@ -27,6 +27,22 @@
   fi
 }
 
+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 
@@ -45,18 +61,26 @@
   done
 }
 
-if [ "sleep" = "$OTHER" ]; then
-  echo "Sleeping $1"
-  status "Sleeping $1"
-  sleep $1
-  shift
-  status "ready"
-  echo "Done"
-else
-  echo "App $APP is waiting to start until $OTHER is ready"
-  status "waiting for $OTHER"
-
-  start
-fi  
+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 "$@"
diff --git a/auth/sample/bin/service.sh b/auth/sample/bin/service.sh
index 7e443b5..5116d36 100644
--- a/auth/sample/bin/service.sh
+++ b/auth/sample/bin/service.sh
@@ -248,6 +248,9 @@
     taillog) 
 	sh /opt/app/osaaf/logs/taillog
 	;;
+    wait)
+	bash $CONFIG/bin/pod_wait.sh wait $1
+        ;;
     --help | -?)
         case "$1" in
         "")