summaryrefslogtreecommitdiffstats
path: root/auth/auth-cass/cass_init/cmd.sh
blob: 09379730e49ee5142347ee2d983e2c968853c195 (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
#!/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

function status {
  if [ -d "$DIR" ]; then
     echo "$@"
     echo "$@" > $DIR/aaf_cass
  fi
}

function install_cql {
    status install 
    sleep 10
    status wait for cassandra to start
    # Now, make sure data exists
    if [ "$(/usr/bin/cqlsh -e 'describe keyspaces' | grep authz)" = "" ]; then
      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
      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 
  ;;
  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