Artifacts to Bootstrap
[aaf/authz.git] / auth / auth-cass / cass_init / cmd.sh
index 056faed..970aef4 100644 (file)
@@ -2,22 +2,67 @@
 #
 # 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
 
+# Always need startup status...
+if [ ! -e "$DIR" ]; then
+  mkdir -p "$DIR"
+fi
+
+function status {
+     echo "$@"
+     echo "$@" > $DIR/aaf_cass
+}
+
+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 wait_ready {
+   status wait for cassandra to be fully ready
+   for CNT in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
+       STATUS="$(cat $DIR/aaf_cass)"
+       if [ "$STATUS" = "ready" ]; then
+       break
+     else
+        echo "Waiting for Start, $STATUS... 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,63 +72,48 @@ 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
+}
+
+function install_onap {
+    install_cql initialized
+    status prep data for bootstrapping
+    bash prep.sh
+    status push 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 
   ;;
-  onap)
-       install_cql
+  wait)
+    # Wait for initialization.  This can be called from Docker only as a check to make sure it is ready
+    wait_ready 
 
-       # Change date expiring dat files to more recent
-       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")
-           echo $DATE
-            CRED="/opt/app/aaf/cass_init/dats/cred.dat"
-            # Enter for People
-            echo "Default Passwords for Apps"
-            for ID in $(grep '|a|' $ID_FILE | sed -e "s/|.*//"); do
-               if [ "$ID" = "aaf" ]; then
-                  DOMAIN="aaf.osaaf.org";
-               else
-                  DOMAIN="$ID.onap.org";
-               fi
-               unset FIRST
-               for D in ${DOMAIN//./ }; do
-                  if [ -z "$FIRST" ]; then
-                    NS="$D"
-                    FIRST="N"
-                  else
-                    NS="$D.$NS"
-                  fi
-               done
-               echo "$ID@$DOMAIN|2|${DATE}|0xd993c5617486296f1b99d04de31633332b8ba1a550038e23860f9dbf0b2fcf95|Initial ID|$NS|53344|" >> $CRED
-            done
-           
-           # Enter for People
-            for ID in $(grep '|e|' $ID_FILE | sed -e "s/|.*//"); do
-               echo "$ID@people.osaaf.org|2|${DATE}|0xd993c5617486296f1b99d04de31633332b8ba1a550038e23860f9dbf0b2fcf95|Initial ID|org.osaaf.people|53344|" >> $CRED
-            done
-
-           # Change UserRole
-            mv dats/user_role.dat tmp
-            sed "s/\(^.*|\)\(.*|\)\(.*|\)\(.*\)/\1${DATE}|\3\4/" tmp > dats/user_role.dat
+  ;;
+  onap)
+    # start install_onap (which calls install_cql first) in background, waiting for process to start
+    install_onap &
 
-           # Remove ID File, which is marker for initializing Creds
-            rm $ID_FILE
-        fi
-       bash push.sh
+    # Startup like normal
+    echo "Cassandra Startup"
+    /usr/local/bin/docker-entrypoint.sh 
   ;;
 esac