blob: 98194e089f90bc1895a341fcc6cbfd850f4d3cdd [file] [log] [blame]
Instrumentalbc299c02018-09-25 06:42:31 -05001#!/bin/bash
Instrumental7a1817b2018-11-05 11:11:15 -06002#########
3# ============LICENSE_START====================================================
4# org.onap.aaf
5# ===========================================================================
6# Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
7# ===========================================================================
8# Licensed under the Apache License, Version 2.0 (the "License");
9# you may not use this file except in compliance with the License.
10# You may obtain a copy of the License at
11#
12# http://www.apache.org/licenses/LICENSE-2.0
13#
14# Unless required by applicable law or agreed to in writing, software
15# distributed under the License is distributed on an "AS IS" BASIS,
16# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17# See the License for the specific language governing permissions and
18# limitations under the License.
19# ============LICENSE_END====================================================
20#
Instrumentalbc299c02018-09-25 06:42:31 -050021#
22# Engage normal Cass Init, then check for data installation
23#
Instrumental08e93402018-10-03 08:38:52 -050024DIR="/opt/app/aaf/status"
Instrumental50c23cc2018-10-31 02:40:03 -050025INSTALLED_VERSION=/var/lib/cassandra/AAF_VERSION
26AAF_INIT_DATA=/var/lib/cassandra/AAF_INIT_DATA
Instrumental08e93402018-10-03 08:38:52 -050027
Instrumentalbc299c02018-09-25 06:42:31 -050028if [ ! -e /aaf_cmd ]; then
29 ln -s /opt/app/aaf/cass_init/cmd.sh /aaf_cmd
30 chmod u+x /aaf_cmd
31fi
32
Instrumentalf0ddaf22018-10-03 22:29:23 -050033# Always need startup status...
34if [ ! -e "$DIR" ]; then
35 mkdir -p "$DIR"
36fi
37
Instrumental08e93402018-10-03 08:38:52 -050038function status {
Instrumental08e93402018-10-03 08:38:52 -050039 echo "$@"
40 echo "$@" > $DIR/aaf_cass
Instrumental08e93402018-10-03 08:38:52 -050041}
42
Instrumental1e3be602018-10-03 19:40:44 -050043function wait_start {
Instrumental08e93402018-10-03 08:38:52 -050044 sleep 10
45 status wait for cassandra to start
Instrumental1e3be602018-10-03 19:40:44 -050046 for CNT in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
47 if [ -z "$(grep 'listening for CQL clients' /var/log/cassandra/system.log)" ]; then
48 echo "Waiting for Cassandra to start... Sleep 10"
49 sleep 10
50 else
51 break
52 fi
53 done
54}
55
Instrumentalf0ddaf22018-10-03 22:29:23 -050056
Instrumental1e3be602018-10-03 19:40:44 -050057function wait_cql {
58 status wait for keyspace to be initialized
59 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 -050060 if [ -n "$(/usr/bin/cqlsh -e 'describe keyspaces' | grep authz)" ]; then
Instrumental1e3be602018-10-03 19:40:44 -050061 break
62 else
63 echo "Waiting for Keyspaces to be loaded... Sleep 10"
64 sleep 10
65 fi
66 done
67}
68
Instrumentalf0ddaf22018-10-03 22:29:23 -050069function wait_ready {
70 status wait for cassandra to be fully ready
71 for CNT in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
72 STATUS="$(cat $DIR/aaf_cass)"
73 if [ "$STATUS" = "ready" ]; then
74 break
75 else
76 echo "Waiting for Start, $STATUS... Sleep 10"
77 sleep 10
78 fi
79 done
80}
81
Instrumental1e3be602018-10-03 19:40:44 -050082function install_cql {
83 wait_start started
Instrumentalbc299c02018-09-25 06:42:31 -050084 # Now, make sure data exists
Instrumentale66f4282018-10-16 14:09:31 -050085 if [ ! -e $INSTALLED_VERSION ] && [ -n "$(/usr/bin/cqlsh -e 'describe keyspaces' | grep authz)" ]; then
86 /usr/bin/cqlsh -e 'DROP KEYSPACE authz'
87 fi
88 if [ -z "`/usr/bin/cqlsh -e 'describe keyspaces' | grep authz`" ]; then
89 status install
90 echo "Initializing Cassandra DB"
Instrumentalbc299c02018-09-25 06:42:31 -050091 echo "Docker Installed Basic Cassandra on aaf_cass. Executing the following "
92 echo "NOTE: This creator provided is only a Single Instance. For more complex Cassandra, create independently"
93 echo ""
94 echo " cd /opt/app/aaf/cass_init"
95 cd /opt/app/aaf/cass_init
96 echo " cqlsh -f keyspace.cql"
97 /usr/bin/cqlsh -f keyspace.cql
Instrumental08e93402018-10-03 08:38:52 -050098 status keyspace installed
Instrumentalbc299c02018-09-25 06:42:31 -050099 echo " cqlsh -f init.cql"
100 /usr/bin/cqlsh -f init.cql
Instrumental08e93402018-10-03 08:38:52 -0500101 status data initialized
Instrumentalbc299c02018-09-25 06:42:31 -0500102 echo ""
103 echo "The following will give you a temporary identity with which to start working, or emergency"
104 echo " cqlsh -f temp_identity.cql"
Instrumental2d18d8e2018-10-16 17:37:17 -0500105 echo "casablanca" > $INSTALLED_VERSION
Instrumentale66f4282018-10-16 14:09:31 -0500106 else
107 echo "Cassandra DB already includes 'authz' keyspace"
Instrumentalbc299c02018-09-25 06:42:31 -0500108 fi
Instrumental08e93402018-10-03 08:38:52 -0500109 status $1
Instrumentalbc299c02018-09-25 06:42:31 -0500110}
111
Instrumental08e93402018-10-03 08:38:52 -0500112function install_onap {
Instrumentala9391132018-10-16 12:34:12 -0500113 echo " cd /opt/app/aaf/cass_init"
Instrumental94053612018-10-08 11:27:18 -0500114 install_cql initialized
Instrumental50c23cc2018-10-31 02:40:03 -0500115 if [ -e "$AAF_INIT_DATA" ]; then
116 echo "AAF Data already initialized on this Cassandra"
117 else
118 status prep data for bootstrapping
119 cd /opt/app/aaf/cass_init
120 status prep data
121 bash prep.sh
122 status push data to cassandra
123 bash push.sh
124 cd -
125 echo $(date) > $AAF_INIT_DATA
126 fi
Instrumental08e93402018-10-03 08:38:52 -0500127 status ready
128}
129
130case "$1" in
131 start)
132 # start install_cql in background, waiting for process to start
133 install_cql ready &
134
135 # Startup like normal
136 echo "Cassandra Startup"
137 /usr/local/bin/docker-entrypoint.sh
138 ;;
Instrumental1e3be602018-10-03 19:40:44 -0500139 wait)
140 # 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 -0500141 wait_ready
Instrumental1e3be602018-10-03 19:40:44 -0500142
Instrumental1e3be602018-10-03 19:40:44 -0500143 ;;
Instrumental08e93402018-10-03 08:38:52 -0500144 onap)
Instrumentale66f4282018-10-16 14:09:31 -0500145 cd /opt/app/aaf/cass_init
Instrumental08e93402018-10-03 08:38:52 -0500146 # start install_onap (which calls install_cql first) in background, waiting for process to start
Instrumental696d9dc2018-10-24 19:45:47 -0500147 install_onap &
Instrumental08e93402018-10-03 08:38:52 -0500148
149 # Startup like normal
150 echo "Cassandra Startup"
151 /usr/local/bin/docker-entrypoint.sh
Instrumentalbc299c02018-09-25 06:42:31 -0500152 ;;
153esac
154