f5756b8162463bde2d24b0cf73e2e810d91340f3
[aaf/authz.git] / auth / docker / drun.sh
1 #!/bin/bash
2 # Validate for realtime Cassandra info
3
4 # check if outside Cluster defined... otherwise, set CASS_HOST for using expected Docker based Cass
5 if [ -z "$(grep -e '^CASS_CLUSTER=.*' d.props)" ]; then
6   if [ "$(uname)" = "Darwin" ]; then
7     SED="sed -i .bak"
8   else
9     SED="sed -i"
10   fi
11
12   CASSANDRA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' aaf_cass)
13   if [ -z "$(grep -e '^CASS_HOST.*' d.props)" ]; then
14     $SED "s/# CASS_HOST=.*/CASS_HOST=cass.aaf.osaaf.org:$CASSANDRA_IP/"  d.props
15   else 
16     $SED "s/CASS_HOST=.*/CASS_HOST=cass.aaf.osaaf.org:$CASSANDRA_IP/"  d.props
17   fi
18   echo "Updated d.props for CASSANDRA Name/IP"
19   grep -e '^CASS_HOST.*' d.props
20 fi
21
22 # Pull in Variables from d.props
23 . ./d.props
24
25 DOCKER=${DOCKER:=docker}
26
27 # Running without params keeps from being TTY
28 bash ./aaf.sh 
29
30 if [ "$1" == "" ]; then
31     AAF_COMPONENTS=$(cat components)
32 else
33     AAF_COMPONENTS="$@"
34 fi
35
36 for AAF_COMPONENT in ${AAF_COMPONENTS}; do
37     LINKS=""
38     CMD_LINE=""
39     PORTMAP=""
40     case "$AAF_COMPONENT" in
41     "service")
42         PORTMAP="8100:8100"
43         LINKS="--link aaf_cass:cassandra "
44         # CASS_HOST is for Container based Cassadra
45         if [ -z "$CASS_HOST" ]; then
46           CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_service sleep 0 cd /opt/app/aaf;bin/service"
47         else
48           CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_service aaf_cass cd /opt/app/aaf;bin/service"
49         fi
50         ;;
51     "locate")
52         PORTMAP="8095:8095"
53         LINKS="--link aaf_cass:cassandra "
54         CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_locate aaf_service cd /opt/app/aaf;bin/locate"
55         ;;
56     "oauth")
57         PORTMAP="8140:8140"
58         LINKS="--link aaf_cass:cassandra "
59         CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_oauth aaf_service cd /opt/app/aaf;bin/oauth"
60         ;;
61     "gui")
62         PORTMAP="8200:8200"
63         LINKS=""
64         CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_gui aaf_locate cd /opt/app/aaf;bin/gui"
65         ;;
66     "cm")
67         PORTMAP="8150:8150"
68         LINKS="--link aaf_cass:cassandra "
69         CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_cm aaf_locate cd /opt/app/aaf;bin/cm"
70         ;;
71     "hello")
72         PORTMAP="8130:8130"
73         LINKS=""
74         CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_hello aaf_locate cd /opt/app/aaf;bin/hello"
75         ;;
76     "fs")
77         PORTMAP="80:8096"
78         LINKS=""
79         CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_fs aaf_locate cd /opt/app/aaf;bin/fs"
80         ;;
81     esac
82
83     echo Starting aaf_$AAF_COMPONENT...
84
85     if [ -n "$AAF_REGISTER_AS" ] && [ "$HOSTNAME" != "$AAF_REGISTER_AS" ]; then
86        AH_ROOT="$HOSTNAME $AAF_REGISTER_AS"
87     else
88        AH_ROOT="$HOSTNAME"
89     fi
90
91     for A in aaf.osaaf.org $AH_ROOT; do 
92        ADD_HOST="$ADD_HOST --add-host=$A:$HOST_IP"
93     done
94
95     if [ ! -z "$LINKS" ] && [[ "$CASS_HOST" =~ ":" ]]; then
96        ADD_HOST="$ADD_HOST --add-host=$CASS_HOST"
97     fi
98     $DOCKER run \
99         -d \
100         --name aaf_$AAF_COMPONENT \
101         --hostname="${AAF_COMPONENT}.aaf.osaaf.org" \
102         $ADD_HOST \
103         ${LINKS} \
104         --env AAF_ENV=${AAF_ENV} \
105         --env AAF_REGISTER_AS=${AAF_REGISTER_AS} \
106         --env LATITUDE=${LATITUDE} \
107         --env LONGITUDE=${LONGITUDE} \
108         --env CASS_HOST=${CASS_HOST} \
109         --env CASSANDRA_CLUSTER=${CASSANDRA_CLUSTER} \
110         --env CASSANDRA_USER=${CASSANDRA_USER} \
111         --env CASSANDRA_PASSWORD=${CASSANDRA_PASSWORD} \
112         --env CASSANDRA_PORT=${CASSANDRA_PORT} \
113         --publish $PORTMAP \
114         -v "aaf_config:$CONF_ROOT_DIR" \
115         -v "aaf_status:/opt/app/aaf/status" \
116         ${PREFIX}${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${VERSION} \
117         $CMD_LINE
118 done