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