changed to unmaintained
[aaf/authz.git] / auth / auth-cass / cass_init / cmd.sh
index 0683fde..bfd592a 100644 (file)
@@ -1,10 +1,30 @@
 #!/bin/bash 
+#########
+#  ============LICENSE_START====================================================
+#  org.onap.aaf
+#  ===========================================================================
+#  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+#  ===========================================================================
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#  ============LICENSE_END====================================================
+#
 #
 # Engage normal Cass Init, then check for data installation
 #
 DIR="/opt/app/aaf/status"
 INSTALLED_VERSION=/var/lib/cassandra/AAF_VERSION
 AAF_INIT_DATA=/var/lib/cassandra/AAF_INIT_DATA
+CQLSH=${CQLSH:=/usr/bin/cqlsh}
 
 if [ ! -e /aaf_cmd ]; then
   ln -s /opt/app/aaf/cass_init/cmd.sh /aaf_cmd
@@ -14,11 +34,12 @@ fi
 # Always need startup status...
 if [ ! -e "$DIR" ]; then
   mkdir -p "$DIR"
+  chmod 777 $DIR
 fi
 
 function status {
      echo "$@"
-     echo "$@" > $DIR/aaf_cass
+     echo "$@" > $DIR/aaf-cass
 }
 
 function wait_start {
@@ -29,16 +50,29 @@ function wait_start {
         echo "Waiting for Cassandra to start... Sleep 10"
         sleep 10
       else
+         status cassandra started
          break
       fi
     done
+    # Logs state Cassandra is up.  Now use cqlsh to ensure responsive
+    echo "Cassandra started, wait until it is responsive"
+    for CNT in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
+      if  [ -z "$(cqlsh -e 'describe keyspaces')" ]; then
+        echo "Waiting for Cassandra to be responsive... Sleep 10"
+        sleep 10
+      else
+        echo "Cassandra responded"
+        status cassandra responsive
+       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
+     if [ -n "$($CQLSH -e 'describe keyspaces' | grep authz)"  ]; then
        break
      else
         echo "Waiting for Keyspaces to be loaded... Sleep 10"
@@ -50,7 +84,7 @@ function wait_cql {
 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)"
+       STATUS="$(cat $DIR/aaf-cass)"
        if [ "$STATUS" = "ready" ]; then
        break
      else
@@ -61,29 +95,30 @@ function wait_ready {
 }
 
 function install_cql {
-    wait_start started   
+    wait_start cassandra responsive   
     # Now, make sure data exists
-    if [ ! -e $INSTALLED_VERSION ] && [ -n "$(/usr/bin/cqlsh -e 'describe keyspaces' | grep authz)" ]; then
-      /usr/bin/cqlsh -e 'DROP KEYSPACE authz' 
+    if [ ! -e $INSTALLED_VERSION ] && [ -n "$($CQLSH -e 'describe keyspaces' | grep authz)" ]; then
+      $CQLSH --request-timeout=60 -e 'DROP KEYSPACE authz'
     fi
-    if [ -z "`/usr/bin/cqlsh -e 'describe keyspaces' | grep authz`" ]; then
+
+    if [ -z "$($CQLSH --request-timeout 60 -e 'describe keyspaces' | grep authz)" ]; then
         status install 
         echo "Initializing Cassandra DB" 
-        echo "Docker Installed Basic Cassandra on aaf_cass.  Executing the following "
+        echo "Docker Installed Basic Cassandra on aaf.cass.  Executing the following "
         echo "NOTE: This creator provided is only a Single Instance. For more complex Cassandra, create independently"
         echo ""
         echo " cd /opt/app/aaf/cass_init"
         cd /opt/app/aaf/cass_init
         echo " cqlsh -f keyspace.cql"
-        /usr/bin/cqlsh -f keyspace.cql
+        $CQLSH --request-timeout=100 -f keyspace.cql
        status keyspace installed
         echo " cqlsh -f init.cql"
-        /usr/bin/cqlsh -f init.cql
+        $CQLSH --request-timeout=100 -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"
-        echo "casablanca" > $INSTALLED_VERSION
+        echo "frankfurt" > $INSTALLED_VERSION
     else 
       echo "Cassandra DB already includes 'authz' keyspace"
     fi
@@ -101,6 +136,7 @@ function install_onap {
       status prep data 
       bash prep.sh
       status push data to cassandra
+      # bash push.sh
       bash push.sh
       cd -
       echo $(date) > $AAF_INIT_DATA
@@ -115,7 +151,7 @@ case "$1" in
 
     # Startup like normal
     echo "Cassandra Startup"
-    /usr/local/bin/docker-entrypoint.sh 
+    exec -c "/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
@@ -129,7 +165,10 @@ case "$1" in
 
     # Startup like normal
     echo "Cassandra Startup"
-    /usr/local/bin/docker-entrypoint.sh 
+    if ! cat /etc/cassandra/cassandra.yaml | grep "write_request_timeout_in_ms: 20000"; then
+      sed -i 's/write_request_timeout_in_ms: 2000/write_request_timeout_in_ms: 20000/' /etc/cassandra/cassandra.yaml
+    fi
+    exec /usr/local/bin/docker-entrypoint.sh 
   ;;
 esac