#! /bin/bash # # ============LICENSE_START========================================== # org.onap.music # =================================================================== # Copyright (c) 2019 AT&T Intellectual Property # =================================================================== # 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============================================= # ==================================================================== if [ -z "$TIMEOUT" ]; then TIMEOUT=10; fi if [ -z "$DELAY" ]; then DELAY=60; fi TO="--request-timeout=$TIMEOUT" if [ $CASS_HOSTNAME ]; then echo "Sleeping for $DELAY seconds before running cql"; sleep $DELAY; >&2 echo "#############################################" >&2 echo "############## Let run cql's ################" >&2 echo "#############################################" >&2 echo "Current Variables in play" >&2 echo "Default User" >&2 echo "DEF_USER="$DEF_USER >&2 echo "DEF_PASS=***********" >&2 echo "New User" >&2 echo "USERNAME="$USERNAME >&2 echo "PASSWORD=***********" >&2 echo "TIMEOUT="$TIMEOUT >&2 echo "Running cqlsh $TO -u cassandra -p cassandra -e \"describe keyspaces;\" ${CASS_HOSTNAME} ${PORT};" if cqlsh $TO -u cassandra -p cassandra -e "describe keyspaces;" ${CASS_HOSTNAME} ${PORT}; then >&2 echo "Cassandra user still avalable, will continue as usual"; else CASSFAIL=true >&2 echo "$DEF_USER failed, trying with $USERNAME" if cqlsh $TO -u $USERNAME -p $PASSWORD -e "describe keyspaces;" ${CASS_HOSTNAME} ${PORT}; then >&2 echo "Password $USERNAME in play, update Variables" DEF_USER=$USERNAME DEF_PASS=$PASSWORD >&2 echo "DEF_USER="$DEF_USER >&2 echo "DEF_PASS=***********" if cqlsh $TO -u $USERNAME -p $PASSWORD -e "describe keyspaces;" ${CASS_HOSTNAME} ${PORT} | grep admin; then >&2 echo "Admin table exists, everything looks good" exit 0; else >&2 echo "Admin does not exists but password has changed. Continue as usual with proper username set" >&2 echo "DEF_USER=" $DEF_USER fi else if [ $CASSFAIL ]; then >&2 echo "$DEF_USER and $USERNAME fail. DB might need to be initialized again. This shouldn't have happend." exit 1; else >&2 echo "Continue and as usual" fi fi fi >&2 echo "Running admin.cql file:" >&2 echo "Running cqlsh -u $DEF_USER -p $DEF_PASS -f /cql/admin.cql ${CASS_HOSTNAME} ${PORT}" sleep 1; if cqlsh $TO -u $DEF_USER -p $DEF_PASS -f /cql/admin.cql ${CASS_HOSTNAME} ${PORT}; then >&2 echo "Success - admin.cql - Admin keyspace created"; else >&2 echo "Failure - admin.cql"; exit 0; fi >&2 echo "Running admin_pw.cql file:" >&2 echo "Running cqlsh -u $DEF_USER -p $DEF_PASS -f /cql/admin_pw.cql ${CASS_HOSTNAME} ${PORT}" sleep 1; if cqlsh $TO -u $DEF_USER -p $DEF_PASS -f /cql/admin_pw.cql ${CASS_HOSTNAME} ${PORT}; then >&2 echo "Success - admin_pw.cql - Password Changed"; else >&2 echo "Failure - admin_pw.cql"; exit 0; fi >&2 echo "Running Test - look for admin keyspace:" >&2 echo "Running cqlsh -u $USERNAME -p $PASSWORD -e "select * from system_auth.roles;" ${CASS_HOSTNAME} ${PORT}" sleep 1; if cqlsh $TO -u $USERNAME -p $PASSWORD -e "select * from system_auth.roles;" ${CASS_HOSTNAME} ${PORT} then >&2 echo "Success - running test"; else >&2 echo "Failure - running test"; exit 0; fi else >&2 echo "Missing CASS_HOSTNAME"; exit 0; fi