blob: d1e7051588c9669309ab37c0e7dea22f96a1d322 [file] [log] [blame]
Instrumentalbc299c02018-09-25 06:42:31 -05001#!/bin/bash
2#
3# Engage normal Cass Init, then check for data installation
4#
Instrumental08e93402018-10-03 08:38:52 -05005DIR="/opt/app/aaf/status"
6
Instrumentalbc299c02018-09-25 06:42:31 -05007if [ ! -e /aaf_cmd ]; then
8 ln -s /opt/app/aaf/cass_init/cmd.sh /aaf_cmd
9 chmod u+x /aaf_cmd
10fi
11
Instrumentalf0ddaf22018-10-03 22:29:23 -050012# Always need startup status...
13if [ ! -e "$DIR" ]; then
14 mkdir -p "$DIR"
15fi
16
Instrumental08e93402018-10-03 08:38:52 -050017function status {
Instrumental08e93402018-10-03 08:38:52 -050018 echo "$@"
19 echo "$@" > $DIR/aaf_cass
Instrumental08e93402018-10-03 08:38:52 -050020}
21
Instrumental1e3be602018-10-03 19:40:44 -050022function wait_start {
Instrumental08e93402018-10-03 08:38:52 -050023 sleep 10
24 status wait for cassandra to start
Instrumental1e3be602018-10-03 19:40:44 -050025 for CNT in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
26 if [ -z "$(grep 'listening for CQL clients' /var/log/cassandra/system.log)" ]; then
27 echo "Waiting for Cassandra to start... Sleep 10"
28 sleep 10
29 else
30 break
31 fi
32 done
33}
34
Instrumentalf0ddaf22018-10-03 22:29:23 -050035
Instrumental1e3be602018-10-03 19:40:44 -050036function wait_cql {
37 status wait for keyspace to be initialized
38 for CNT in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
Instrumental235dd9a2018-10-03 21:36:44 -050039 if [ -n "$(/usr/bin/cqlsh -e 'describe keyspaces' | grep authz)" ]; then
Instrumental1e3be602018-10-03 19:40:44 -050040 break
41 else
42 echo "Waiting for Keyspaces to be loaded... Sleep 10"
43 sleep 10
44 fi
45 done
46}
47
Instrumentalf0ddaf22018-10-03 22:29:23 -050048function wait_ready {
49 status wait for cassandra to be fully ready
50 for CNT in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
51 STATUS="$(cat $DIR/aaf_cass)"
52 if [ "$STATUS" = "ready" ]; then
53 break
54 else
55 echo "Waiting for Start, $STATUS... Sleep 10"
56 sleep 10
57 fi
58 done
59}
60
Instrumental1e3be602018-10-03 19:40:44 -050061function install_cql {
62 wait_start started
Instrumentalbc299c02018-09-25 06:42:31 -050063 # Now, make sure data exists
64 if [ "$(/usr/bin/cqlsh -e 'describe keyspaces' | grep authz)" = "" ]; then
Instrumental1e3be602018-10-03 19:40:44 -050065 status install
Instrumentalbc299c02018-09-25 06:42:31 -050066 echo "Initializing Cassandra DB"
67 if [ "`/usr/bin/cqlsh -e 'describe keyspaces' | grep authz`" == "" ]; then
68 echo "Docker Installed Basic Cassandra on aaf_cass. Executing the following "
69 echo "NOTE: This creator provided is only a Single Instance. For more complex Cassandra, create independently"
70 echo ""
71 echo " cd /opt/app/aaf/cass_init"
72 cd /opt/app/aaf/cass_init
73 echo " cqlsh -f keyspace.cql"
74 /usr/bin/cqlsh -f keyspace.cql
Instrumental08e93402018-10-03 08:38:52 -050075 status keyspace installed
Instrumentalbc299c02018-09-25 06:42:31 -050076 echo " cqlsh -f init.cql"
77 /usr/bin/cqlsh -f init.cql
Instrumental08e93402018-10-03 08:38:52 -050078 status data initialized
Instrumentalbc299c02018-09-25 06:42:31 -050079 echo ""
80 echo "The following will give you a temporary identity with which to start working, or emergency"
81 echo " cqlsh -f temp_identity.cql"
82 fi
83 fi
Instrumental08e93402018-10-03 08:38:52 -050084 status $1
Instrumentalbc299c02018-09-25 06:42:31 -050085}
86
Instrumental08e93402018-10-03 08:38:52 -050087function install_onap {
88 install_cql initialized
Instrumentalbc299c02018-09-25 06:42:31 -050089
90 # Change date expiring dat files to more recent
Instrumental08e93402018-10-03 08:38:52 -050091 status Creating ONAP Identities
Instrumentalbc299c02018-09-25 06:42:31 -050092 ID_FILE=/opt/app/aaf/cass_init/sample.identities.dat
93 if [ -e $ID_FILE ]; then
94 DATE=$(date "+%Y-%m-%d %H:%M:%S.000+0000" -d "+6 months")
95 echo $DATE
96 CRED="/opt/app/aaf/cass_init/dats/cred.dat"
97 # Enter for People
98 echo "Default Passwords for Apps"
99 for ID in $(grep '|a|' $ID_FILE | sed -e "s/|.*//"); do
100 if [ "$ID" = "aaf" ]; then
101 DOMAIN="aaf.osaaf.org";
102 else
103 DOMAIN="$ID.onap.org";
104 fi
105 unset FIRST
106 for D in ${DOMAIN//./ }; do
107 if [ -z "$FIRST" ]; then
108 NS="$D"
109 FIRST="N"
110 else
111 NS="$D.$NS"
112 fi
113 done
114 echo "$ID@$DOMAIN|2|${DATE}|0xd993c5617486296f1b99d04de31633332b8ba1a550038e23860f9dbf0b2fcf95|Initial ID|$NS|53344|" >> $CRED
115 done
116
117 # Enter for People
118 for ID in $(grep '|e|' $ID_FILE | sed -e "s/|.*//"); do
119 echo "$ID@people.osaaf.org|2|${DATE}|0xd993c5617486296f1b99d04de31633332b8ba1a550038e23860f9dbf0b2fcf95|Initial ID|org.osaaf.people|53344|" >> $CRED
120 done
121
122 # Change UserRole
Instrumental08e93402018-10-03 08:38:52 -0500123 status Setting up User Roles
Instrumentalbc299c02018-09-25 06:42:31 -0500124 mv dats/user_role.dat tmp
125 sed "s/\(^.*|\)\(.*|\)\(.*|\)\(.*\)/\1${DATE}|\3\4/" tmp > dats/user_role.dat
126
127 # Remove ID File, which is marker for initializing Creds
128 rm $ID_FILE
129 fi
Instrumental08e93402018-10-03 08:38:52 -0500130 status Pushing data to cassandra
131 bash push.sh
132 status ready
133}
134
135case "$1" in
136 start)
137 # start install_cql in background, waiting for process to start
138 install_cql ready &
139
140 # Startup like normal
141 echo "Cassandra Startup"
142 /usr/local/bin/docker-entrypoint.sh
143 ;;
Instrumental1e3be602018-10-03 19:40:44 -0500144 wait)
145 # Wait for initialization. This can be called from Docker only as a check to make sure it is ready
Instrumentalf0ddaf22018-10-03 22:29:23 -0500146 wait_ready
Instrumental1e3be602018-10-03 19:40:44 -0500147
Instrumental1e3be602018-10-03 19:40:44 -0500148 ;;
Instrumental08e93402018-10-03 08:38:52 -0500149 onap)
150 # start install_onap (which calls install_cql first) in background, waiting for process to start
151 install_onap &
152
153 # Startup like normal
154 echo "Cassandra Startup"
155 /usr/local/bin/docker-entrypoint.sh
Instrumentalbc299c02018-09-25 06:42:31 -0500156 ;;
157esac
158