Missing Licenses
[aaf/authz.git] / auth / docker / drun.sh
index 8cedbcc..9f77005 100644 (file)
 #!/bin/bash
+#########
+#  ============LICENSE_START====================================================
+#  org.onap.aaf
+#  ===========================================================================
+#  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+#  ===========================================================================
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#  ============LICENSE_END====================================================
+#
+# Validate for realtime Cassandra info
+
+# check if outside Cluster defined... otherwise, set CASS_HOST for using expected Docker based Cass
+if [ -z "$(grep -e '^CASS_CLUSTER=.*' d.props)" ]; then
+  if [ "$(uname)" = "Darwin" ]; then
+    SED="sed -i .bak"
+  else
+    SED="sed -i"
+  fi
+
+  CASSANDRA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' aaf_cass)
+  if [ -z "$(grep -e '^CASS_HOST.*' d.props)" ]; then
+    $SED "s/# CASS_HOST=.*/CASS_HOST=cass.aaf.osaaf.org:$CASSANDRA_IP/"  d.props
+  else 
+    $SED "s/CASS_HOST=.*/CASS_HOST=cass.aaf.osaaf.org:$CASSANDRA_IP/"  d.props
+  fi
+  echo "Updated d.props for CASSANDRA Name/IP"
+  grep -e '^CASS_HOST.*' d.props
+fi
+
 # Pull in Variables from d.props
 . ./d.props
 
-# Only need Cassandra Link Info when initializing the container.
-if [ ! -e ./cass.props ]; then
-    cp cass.props.init cass.props
-    echo "Edit appropriate Cassandra Link Info into cass.props"
-    exit
-fi
+DOCKER=${DOCKER:=docker}
 
-. ./cass.props
+# Running without params keeps from being TTY
+bash ./aaf.sh 
 
 if [ "$1" == "" ]; then
-    AAF_COMPONENTS=$(ls -r ../aaf_${VERSION}/bin | grep -v '\.')
+    AAF_COMPONENTS=$(cat components)
 else
     AAF_COMPONENTS="$@"
 fi
 
 for AAF_COMPONENT in ${AAF_COMPONENTS}; do
+    LINKS=""
+    CMD_LINE=""
+    PORTMAP=""
     case "$AAF_COMPONENT" in
     "service")
         PORTMAP="8100:8100"
-        LINKS="--link aaf_cass:cassandra --add-host=$CASS_HOST"
+        LINKS="--link aaf_cass:cassandra "
+        # CASS_HOST is for Container based Cassadra
+        if [ -z "$CASS_HOST" ]; then
+         CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_service sleep 0 cd /opt/app/aaf;bin/service"
+        else
+         CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_service aaf_cass cd /opt/app/aaf;bin/service"
+        fi
         ;;
     "locate")
         PORTMAP="8095:8095"
-        LINKS="--link aaf_cass:cassandra --add-host=$CASS_HOST"
+        LINKS="--link aaf_cass:cassandra "
+       CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_locate aaf_service cd /opt/app/aaf;bin/locate"
         ;;
     "oauth")
         PORTMAP="8140:8140"
-        LINKS="--link aaf_cass:cassandra --add-host=$CASS_HOST"
+        LINKS="--link aaf_cass:cassandra "
+       CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_oauth aaf_service cd /opt/app/aaf;bin/oauth"
         ;;
     "gui")
         PORTMAP="8200:8200"
+        LINKS=""
+       CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_gui aaf_locate cd /opt/app/aaf;bin/gui"
         ;;
     "cm")
         PORTMAP="8150:8150"
-        LINKS="--link aaf_cass:cassandra --add-host=$CASS_HOST"
+        LINKS="--link aaf_cass:cassandra "
+       CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_cm aaf_locate cd /opt/app/aaf;bin/cm"
         ;;
     "hello")
         PORTMAP="8130:8130"
+        LINKS=""
+       CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_hello aaf_locate cd /opt/app/aaf;bin/hello"
         ;;
     "fs")
         PORTMAP="80:8096"
+        LINKS=""
+       CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_fs aaf_locate cd /opt/app/aaf;bin/fs"
         ;;
     esac
 
     echo Starting aaf_$AAF_COMPONENT...
 
-    docker run \
+    if [ -n "$AAF_REGISTER_AS" ] && [ "$HOSTNAME" != "$AAF_REGISTER_AS" ]; then
+       AH_ROOT="$HOSTNAME $AAF_REGISTER_AS"
+    else
+       AH_ROOT="$HOSTNAME"
+    fi
+
+    for A in aaf.osaaf.org $AH_ROOT; do 
+       ADD_HOST="$ADD_HOST --add-host=$A:$HOST_IP"
+    done
+
+    if [ ! -z "$LINKS" ] && [[ "$CASS_HOST" =~ ":" ]]; then
+       ADD_HOST="$ADD_HOST --add-host=$CASS_HOST"
+    fi
+    $DOCKER run \
         -d \
         --name aaf_$AAF_COMPONENT \
         --hostname="${AAF_COMPONENT}.aaf.osaaf.org" \
-        --add-host="$HOSTNAME:$HOST_IP" \
-        --add-host="aaf.osaaf.org:$HOST_IP" \
+       $ADD_HOST \
         ${LINKS} \
+        --env AAF_ENV=${AAF_ENV} \
+        --env AAF_REGISTER_AS=${AAF_REGISTER_AS} \
+        --env LATITUDE=${LATITUDE} \
+        --env LONGITUDE=${LONGITUDE} \
+        --env CASS_HOST=${CASS_HOST} \
+        --env CASSANDRA_CLUSTER=${CASSANDRA_CLUSTER} \
+        --env CASSANDRA_USER=${CASSANDRA_USER} \
+        --env CASSANDRA_PASSWORD=${CASSANDRA_PASSWORD} \
+        --env CASSANDRA_PORT=${CASSANDRA_PORT} \
         --publish $PORTMAP \
-        --mount 'type=volume,src=aaf_config,dst='$CONF_ROOT_DIR',volume-driver=local' \
-        ${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${VERSION}
+        -v "aaf_config:$CONF_ROOT_DIR" \
+        -v "aaf_status:/opt/app/aaf/status" \
+        ${PREFIX}${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${VERSION} \
+       $CMD_LINE
 done