summaryrefslogtreecommitdiffstats
path: root/auth/auth-cass/cass_init/cmd.sh
diff options
context:
space:
mode:
Diffstat (limited to 'auth/auth-cass/cass_init/cmd.sh')
-rw-r--r--auth/auth-cass/cass_init/cmd.sh158
1 files changed, 158 insertions, 0 deletions
diff --git a/auth/auth-cass/cass_init/cmd.sh b/auth/auth-cass/cass_init/cmd.sh
new file mode 100644
index 00000000..d1e70515
--- /dev/null
+++ b/auth/auth-cass/cass_init/cmd.sh
@@ -0,0 +1,158 @@
+#!/bin/bash
+#
+# 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
+ 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 "
+ 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
+ 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
+
+ # 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")
+ 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
+ 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
+ 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_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
+