Auto Auth Data 2
[aaf/authz.git] / auth / auth-cass / docker / dinstall.sh
1 #!/bin/bash 
2 if [ -e /usr/bin/docker ]; then 
3   DOCKER=/usr/bin/docker
4 elif [ -e /usr/local/bin/docker ]; then
5   DOCKER=/usr/local/bin/docker
6 else
7   echo Docker not available in /usr/bin or /usr/local/bin
8   exit
9 fi
10
11 if [ "$($DOCKER volume ls | grep aaf_cass_data)" = "" ]; then
12   $DOCKER volume create aaf_cass_data
13   echo "Created Cassandra Volume aaf_cass_data"
14 fi
15
16 echo "Running DInstall"
17 if [ "`$DOCKER ps -a | grep aaf_cass`" == "" ]; then
18   echo "starting Cass from 'run'"
19   # NOTE: These HEAP Sizes are minimal. Not set for full organizations.
20   $DOCKER run \
21     --name aaf_cass \
22     -e HEAP_NEWSIZE=512M \
23     -e MAX_HEAP_SIZE=1024M \
24     -e CASSANDRA_DC=dc1 \
25     -e CASSANDRA_CLUSTER_NAME=osaaf \
26     --mount 'type=volume,src=aaf_cass_data,dst=/var/lib/cassandra,volume-driver=local' \
27     -d cassandra:3.11 
28   # Set on local Disk
29   # -v /opt/app/cass:/var/lib/cassandra 
30   echo "aaf_cass Starting"
31   for CNT in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
32      if [ "`$DOCKER container logs aaf_cass | grep 'listening for CQL clients'`" == "" ]; then
33         echo "Sleep 10"
34         sleep 10
35      else 
36         break
37      fi
38   done
39   
40   echo "Running Phase 2 DInstall"
41   $DOCKER container ps
42   
43   echo "Creating /opt/app/cass_init dir on aaf_cass"
44   $DOCKER exec aaf_cass mkdir -p /opt/app/cass_init
45   echo "cp the following files to /opt/app/cass_init dir on aaf_cass"
46   $DOCKER cp "../src/main/cql/." aaf_cass:/opt/app/cass_init
47   echo "The following files are on /opt/app/cass_init dir on aaf_cass"
48   $DOCKER exec aaf_cass ls /opt/app/cass_init
49   
50   if [ "`$DOCKER exec aaf_cass /usr/bin/cqlsh -e 'describe keyspaces' | grep authz`" == "" ]; then
51     echo "Docker Installed Basic Cassandra on aaf_cass.  Executing the following "
52     echo "NOTE: This creator provided is only a Single Instance. For more complex Cassandra, create independently"
53     echo ""
54     echo " cd /opt/app/cass_init"  
55     echo " cqlsh -f keyspace.cql"
56     echo " cqlsh -f init.cql"
57     echo ""
58     echo "The following will give you a temporary identity with which to start working, or emergency"
59     echo " cqlsh -f temp_identity.cql"
60     echo "Create Keyspaces and Tables"
61     $DOCKER exec aaf_cass bash /usr/bin/cqlsh -f /opt/app/cass_init/keyspace.cql
62     $DOCKER exec aaf_cass bash /usr/bin/cqlsh -e 'describe keyspaces'
63     $DOCKER exec aaf_cass bash /usr/bin/cqlsh -f /opt/app/cass_init/init.cql
64     cd ../../sample/cass_data
65     ID_FILE=../data/identities.dat 
66     if [ -e $ID_FILE ]; then
67       DATE=$(date "+%Y-%m-%d %H:%M:%S.000+0000" -d "+6 months")
68       echo $DATE
69       CRED="cred.dat"
70       # Enter for People
71       echo "Default Passwords for People"
72       for ID in $(grep '|a|' $ID_FILE | sed -e "s/|.*//"); do
73          if [ "$ID" = "aaf" ]; then
74             DOMAIN="aaf.osaaf.org";
75          else
76             DOMAIN="$ID.onap.org";
77          fi
78          echo "$ID@$DOMAIN|2|${DATE}|0xd993c5617486296f1b99d04de31633332b8ba1a550038e23860f9dbf0b2fcf95|Initial ID|$DOMAIN|53344|" >> $CRED
79       done
80     
81       for ID in $(grep '|e|' $ID_FILE | sed -e "s/|.*//"); do
82          echo "$ID@people.osaaf.org|2|${DATE}|0xd993c5617486296f1b99d04de31633332b8ba1a550038e23860f9dbf0b2fcf95|Initial ID|org.osaaf.people|53344|" >> $CRED
83       done
84     
85       mv user_role.dat tmp
86       sed "s/\(^.*|\)\(.*|\)\(.*|\)\(.*\)/\1${DATE}|\3\4/" tmp > user_role.dat 
87
88       for DAT in ns perm role ns_attrib user_role cred; do 
89           $DOCKER container cp $DAT.dat aaf_cass:/tmp/$DAT.dat
90           $DOCKER exec aaf_cass bash /usr/bin/cqlsh -k authz -e "COPY authz.$DAT FROM '/tmp/$DAT.dat' WITH DELIMITER='|'"
91           $DOCKER exec -t aaf_cass rm /tmp/$DAT.dat
92       done
93       rm $CRED
94       mv tmp user_role.dat
95     else
96         echo DInstall requires access to 'identities.dat'
97     fi
98     cd -
99   fi
100 else 
101   $DOCKER start aaf_cass
102 fi