2ffd5f2f61ef3ca284ba66fbeb205b74117914d6
[music.git] / distribution / cassandra_job / runcql.sh
1 #! /bin/bash
2 if [ -z "$TIMEOUT" ]; then
3     TIMEOUT=10;
4 fi
5 if [ -z "$DELAY" ]; then
6     DELAY=60;
7 fi
8 TO="--request-timeout=$TIMEOUT"
9
10 if [ $CASS_HOSTNAME ]; then
11     echo "Sleeping for $DELAY seconds before running cql";
12     sleep $DELAY;
13     >&2 echo "#############################################"
14     >&2 echo "############## Let run cql's ################"
15     >&2 echo "#############################################"
16     >&2 echo "Current Variables in play"
17     >&2 echo "Default User"
18     >&2 echo "DEF_USER="$DEF_USER
19     >&2 echo "DEF_PASS=***********"
20     >&2 echo "New User"
21     >&2 echo "USERNAME="$USERNAME
22     >&2 echo "PASSWORD=***********"
23     >&2 echo "TIMEOUT="$TIMEOUT
24     >&2 echo "Running cqlsh $TO -u cassandra -p cassandra -e \"describe keyspaces;\" ${CASS_HOSTNAME} ${PORT};"
25     if cqlsh $TO -u cassandra -p cassandra -e "describe keyspaces;" ${CASS_HOSTNAME} ${PORT};
26     then
27         >&2 echo "Cassandra user still avalable, will continue as usual";
28     else
29         CASSFAIL=true
30         >&2 echo "$DEF_USER failed, trying with $USERNAME"
31         if cqlsh $TO -u $USERNAME -p $PASSWORD -e "describe keyspaces;" ${CASS_HOSTNAME} ${PORT};
32         then
33             >&2 echo "Password $USERNAME in play, update Variables"
34             DEF_USER=$USERNAME
35             DEF_PASS=$PASSWORD
36             >&2 echo "DEF_USER="$DEF_USER
37             >&2 echo "DEF_PASS=***********"
38             if cqlsh $TO -u $USERNAME -p $PASSWORD -e "describe keyspaces;" ${CASS_HOSTNAME} ${PORT} | grep admin;
39             then
40                 >&2 echo "Admin table exists, everything looks good"
41                 exit 0;
42             else
43                 >&2 echo "Admin does not exists but password has changed. Continue as usual with proper username set"
44                 >&2 echo "DEF_USER=" $DEF_USER
45             fi
46         else
47             if [ $CASSFAIL ]; then
48                 >&2 echo "$DEF_USER and $USERNAME fail. DB might need to be initialized again. This shouldn't have happend."
49                 exit 1;
50             else
51                 >&2 echo "Continue and as usual"
52             fi
53         fi
54     fi
55     >&2 echo "Running admin.cql file:"
56     >&2 echo "Running cqlsh -u $DEF_USER -p $DEF_PASS -f /cql/admin.cql ${CASS_HOSTNAME} ${PORT}"
57     sleep 1;
58     if cqlsh $TO -u $DEF_USER -p $DEF_PASS -f /cql/admin.cql ${CASS_HOSTNAME} ${PORT};
59     then
60         >&2 echo "Success - admin.cql - Admin keyspace created";
61     else
62         >&2 echo "Failure - admin.cql";
63         exit 0;
64     fi
65     >&2 echo "Running admin_pw.cql file:"
66     >&2 echo "Running cqlsh -u $DEF_USER -p $DEF_PASS -f /cql/admin_pw.cql ${CASS_HOSTNAME} ${PORT}"
67     sleep 1;
68     if cqlsh $TO -u $DEF_USER -p $DEF_PASS -f /cql/admin_pw.cql ${CASS_HOSTNAME} ${PORT};
69     then
70         >&2 echo "Success - admin_pw.cql - Password Changed";
71     else
72         >&2 echo "Failure - admin_pw.cql";
73         exit 0;
74     fi
75
76     >&2 echo "Running Test - look for admin keyspace:"
77     >&2 echo "Running cqlsh -u $USERNAME -p $PASSWORD -e "select * from system_auth.roles;" ${CASS_HOSTNAME} ${PORT}"
78     sleep 1;
79     if cqlsh $TO -u $USERNAME -p $PASSWORD -e "select * from system_auth.roles;" ${CASS_HOSTNAME} ${PORT}
80     then
81         >&2 echo "Success - running test";
82     else
83         >&2 echo "Failure - running test";
84         exit 0;
85     fi
86
87 else
88     >&2 echo "Missing CASS_HOSTNAME";
89     exit 0;
90 fi
91