Adjust start scripts
[aaf/authz.git] / auth / auth-cass / cass_init / cmd.sh
index 056faed..b3d5292 100644 (file)
@@ -2,22 +2,50 @@
 #
 # Engage normal Cass Init, then check for data installation
 #
+DIR="/opt/app/aaf/status"
+
 if [ ! -e /aaf_cmd ]; then
   ln -s /opt/app/aaf/cass_init/cmd.sh /aaf_cmd
   chmod u+x /aaf_cmd
 fi
 
+function status {
+  if [ -d "$DIR" ]; then
+     echo "$@"
+     echo "$@" > $DIR/aaf_cass
+  fi
+}
+
+function wait_start {
+    sleep 10
+    status wait for cassandra to start
+    for CNT in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
+      if [ -z "$(grep 'listening for CQL clients' /var/log/cassandra/system.log)" ]; then
+        echo "Waiting for Cassandra to start... Sleep 10"
+        sleep 10
+      else
+         break
+      fi
+    done
+}
+
+function wait_cql {
+   status wait for keyspace to be initialized
+   for CNT in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
+     if [ -n "$(/usr/bin/cqlsh -e 'describe keyspaces' | grep authz)"  ]; then
+       break
+     else
+        echo "Waiting for Keyspaces to be loaded... Sleep 10"
+        sleep 10
+      fi
+    done
+}
+
 function install_cql {
+    wait_start started   
     # Now, make sure data exists
     if [ "$(/usr/bin/cqlsh -e 'describe keyspaces' | grep authz)" = "" ]; then
-      for CNT in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
-         if [ -z "$(grep 'listening for CQL clients' /var/log/cassandra/system.log)" ]; then
-            echo "Waiting for Cassandra to start... Sleep 10"
-            sleep 10
-         else
-            break
-         fi
-      done
+      status install 
       echo "Initializing Cassandra DB" 
       if [ "`/usr/bin/cqlsh -e 'describe keyspaces' | grep authz`" == "" ]; then
         echo "Docker Installed Basic Cassandra on aaf_cass.  Executing the following "
@@ -27,25 +55,23 @@ function install_cql {
         cd /opt/app/aaf/cass_init
         echo " cqlsh -f keyspace.cql"
         /usr/bin/cqlsh -f keyspace.cql
+       status keyspace installed
         echo " cqlsh -f init.cql"
         /usr/bin/cqlsh -f init.cql
+       status data initialized
         echo ""
         echo "The following will give you a temporary identity with which to start working, or emergency"
         echo " cqlsh -f temp_identity.cql"
       fi
     fi
+    status $1
 }
 
-case "$1" in
-  start)
-    # Startup like normal
-    echo "Cassandra Startup"
-    /usr/local/bin/docker-entrypoint.sh 
-  ;;
-  onap)
-       install_cql
+function install_onap {
+       install_cql initialized
 
        # Change date expiring dat files to more recent
+       status Creating ONAP Identities
        ID_FILE=/opt/app/aaf/cass_init/sample.identities.dat    
        if [ -e $ID_FILE ]; then
            DATE=$(date "+%Y-%m-%d %H:%M:%S.000+0000" -d "+6 months")
@@ -77,13 +103,44 @@ case "$1" in
             done
 
            # Change UserRole
+           status Setting up User Roles
             mv dats/user_role.dat tmp
             sed "s/\(^.*|\)\(.*|\)\(.*|\)\(.*\)/\1${DATE}|\3\4/" tmp > dats/user_role.dat
 
            # Remove ID File, which is marker for initializing Creds
             rm $ID_FILE
         fi
-       bash push.sh
+      status Pushing data to cassandra
+      bash push.sh
+    status ready
+}
+
+case "$1" in
+  start)
+    # start install_cql in background, waiting for process to start
+    install_cql ready &
+
+    # Startup like normal
+    echo "Cassandra Startup"
+    /usr/local/bin/docker-entrypoint.sh 
+  ;;
+  wait)
+    # Wait for initialization.  This can be called from Docker only as a check to make sure it is ready
+    wait_start started 
+
+    # Make sure Keyspace is loaded
+    wait_cql 
+
+    # Wait for Data load?
+    status ready
+  ;;
+  onap)
+    # start install_onap (which calls install_cql first) in background, waiting for process to start
+    install_onap &
+
+    # Startup like normal
+    echo "Cassandra Startup"
+    /usr/local/bin/docker-entrypoint.sh 
   ;;
 esac