-#!/bin/bash
+#!/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
+DOCKER=${DOCKER:=docker}
+
+# 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=$1
+ AAF_COMPONENTS="$@"
fi
-
-for AAF_COMPONENT in ${AAF_COMPONENTS}; do
- case "$AAF_COMPONENT" in
- "service")
- PORTMAP="8100:8100"
- LINKS="--link aaf_cass:cassandra --add-host=$CASS_HOST"
- ;;
- "locate")
- PORTMAP="8095:8095"
- LINKS="--link aaf_cass:cassandra --add-host=$CASS_HOST"
- ;;
- "oauth")
- PORTMAP="8140:8140"
- LINKS="--link aaf_cass:cassandra --add-host=$CASS_HOST"
- ;;
- "gui")
- PORTMAP="8200:8200"
- ;;
- "cm")
- PORTMAP="8150:8150"
- LINKS="--link aaf_cass:cassandra --add-host=$CASS_HOST"
- ;;
- "hello")
- PORTMAP="8130:8130"
- ;;
- "fs")
- PORTMAP="80:8096"
- ;;
- esac
-
- echo Starting aaf_$AAF_COMPONENT...
-
- 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" \
- ${LINKS} \
- --publish $PORTMAP \
- --mount type=bind,source=$CONF_ROOT_DIR,target=/opt/app/osaaf \
- ${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${VERSION}
+
+for AAF_COMPONENT in ${AAF_COMPONENTS}; do
+ LINKS=""
+ CMD_LINE=""
+ PORTMAP=""
+ case "$AAF_COMPONENT" in
+ "service")
+ PORTMAP="8100:8100"
+ 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 "
+ 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 "
+ 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 "
+ 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...
+
+ 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 \
+ ${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 \
+ -v "aaf_config:$CONF_ROOT_DIR" \
+ -v "aaf_status:/opt/app/aaf/status" \
+ ${PREFIX}${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${VERSION} \
+ $CMD_LINE
done