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