#!/bin/bash
-. ./d.props
-
-docker run \
- -it \
- --rm \
- --mount 'type=volume,src=aaf_config,dst='$CONF_ROOT_DIR',volume-driver=local' \
- --add-host="$HOSTNAME:$HOST_IP" \
- --add-host="aaf.osaaf.org:$HOST_IP" \
- --env AAF_ENV=${AAF_ENV} \
- --env AAF_REGISTER_AS=${AAF_REGISTER_AS} \
+#########
+# ============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====================================================
+#
+
+
+# Fill out "aaf.props" if not filled out already
+if [ ! -e aaf.props ]; then
+ > ./aaf.props
+fi
+
+. ./aaf.props
+
+DOCKER=${DOCKER:=docker}
+CADI_VERSION=${CADI_VERSION:=2.1.14-SNAPSHOT}
+
+for V in VERSION DOCKER_REPOSITORY HOSTNAME CONTAINER_NS AAF_FQDN AAF_FQDN_IP DEPLOY_FQI APP_FQDN APP_FQI VOLUME DRIVER LATITUDE LONGITUDE; do
+ if [ "$(grep $V ./aaf.props)" = "" ]; then
+ unset DEF
+ case $V in
+ DOCKER_REPOSITORY)
+ PROMPT="Docker Repo"
+ DEF="nexus3.onap.org:10003"
+ ;;
+ HOSTNAME)
+ PROMPT="HOSTNAME (blank for Default)"
+ DEF=""
+ ;;
+ AAF_FQDN) PROMPT="AAF's FQDN";;
+ DEPLOY_FQI) PROMPT="Deployer's FQI";;
+ AAF_FQDN_IP)
+ # Need AAF_FQDN's IP, because not might not be available in mini-container
+ PROMPT="AAF FQDN IP"
+ LOOKUP=$(host "${AAF_FQDN}" | grep "has address")
+ if [ -n "${LOOKUP}" ]; then
+ DEF=$(echo ${LOOKUP} | tail -1 | cut -f 4 -d ' ')
+ fi
+ ;;
+ APP_FQDN) PROMPT="App's Root FQDN";;
+ APP_FQI) PROMPT="App's FQI"
+ if [[ "${APP_FQDN}" != *"."* ]]; then
+ DEF="${APP_FQDN}@${APP_FQDN}.onap.org"
+ fi
+ ;;
+ VOLUME) PROMPT="APP's AAF Configuration Volume"
+ if [[ "${APP_FQDN}" != *"."* ]]; then
+ DEF="${APP_FQDN}_config"
+ fi
+ ;;
+ DRIVER) PROMPT=$V;DEF=local;;
+ CONTAINER_NS)
+ PROMPT=$V;DEF=onap;;
+ VERSION) PROMPT="CADI Version";DEF=$CADI_VERSION;;
+ LATITUDE|LONGITUDE) PROMPT="$V of Node";;
+ *) PROMPT=$V;;
+ esac
+ if [ "$DEF" = "" ]; then
+ PROMPT="$PROMPT: "
+ else
+ PROMPT="$PROMPT ($DEF): "
+ fi
+ read -p "$PROMPT" VAR
+ if [ "$VAR" = "" ]; then
+ if [ "$DEF" = "" ]; then
+ if [ "$V" != "HOSTNAME" ]; then
+ echo "agent.sh needs each value queried. Please start again."
+ exit
+ fi
+ else
+ VAR=$DEF
+ fi
+ fi
+ echo "$V=$VAR" >> ./aaf.props
+ declare "$V"="$VAR"
+ fi
+done
+. ./aaf.props
+
+# Make sure Container Volume exists
+if [ "$($DOCKER volume ls | grep ${VOLUME})" = "" ]; then
+ echo -n "Creating Volume: "
+ $DOCKER volume create -d ${DRIVER} ${VOLUME}
+fi
+
+if [ -n "$DOCKER_REPOSITORY" ]; then
+ PREFIX="$DOCKER_REPOSITORY/"
+else
+ PREFIX=""
+fi
+
+function run_it() {
+ if [ -n "${DUSER}" ]; then
+ USER_LINE="--user ${DUSER}"
+ fi
+ $DOCKER run -it --rm \
+ ${USER_LINE} \
+ -v "${VOLUME}:/opt/app/osaaf" \
+ --add-host="$AAF_FQDN:$AAF_FQDN_IP" \
+ --env AAF_FQDN=${AAF_FQDN} \
+ --env DEPLOY_FQI=${DEPLOY_FQI} \
+ --env DEPLOY_PASSWORD=${DEPLOY_PASSWORD} \
+ --env APP_FQI=${APP_FQI} \
+ --env APP_FQDN=${APP_FQDN} \
--env LATITUDE=${LATITUDE} \
--env LONGITUDE=${LONGITUDE} \
- --name aaf_agent_$USER \
- ${ORG}/${PROJECT}/aaf_config:${VERSION} \
- /bin/bash "$@"
+ --env aaf_locator_container_ns=${CONTAINER_NS} \
+ --env aaf_locator_container=docker \
+ --name aaf-agent-$USER \
+ "$PREFIX"onap/aaf/aaf_agent:$VERSION \
+ bash -c "bash /opt/app/aaf_config/bin/agent.sh $PARAMS"
+}
+
+function sso {
+ if [ -n "$2" ]; then
+ echo "$1=$2" >> $HOME/.aaf/sso.props
+ fi
+}
+
+function reset_sso {
+ mkdir -p ~/.aaf
+ > $HOME/.aaf/sso.props
+ sso aaf_locate_url "https://$AAF_FQDN:8095"
+ sso cadi_latitude "$LATITUDE"
+ sso cadi_longitude "$LONGITUDE"
+ sso cadi_loglevel "DEBUG"
+ TRUSTSTORE="$(ls truststore*.jks | tail -1)"
+ if [ -z "$TRUSTSTORE" ]; then
+ echo "Place a truststore*.jar which has YOUR CA in it here"
+ exit
+ fi
+ sso cadi_truststore "${PWD}/${TRUSTSTORE}"
+ sso cadi_truststore_password changeit
+}
+
+PARAMS=$@
+case "$1" in
+ bash)
+ PARAMS="&& cd /opt/app/osaaf/local && exec bash"
+ run_it -it --rm
+ ;;
+ taillog)
+ run_it -it --rm
+ ;;
+ aafcli)
+ shift
+ reset_sso
+ if [ -f aaf-cadi-aaf-$VERSION-full.jar ]; then
+ java -Dcadi_prop_files="$HOME/.aaf/sso.props" -jar aaf-cadi-aaf-$VERSION-full.jar $@
+ else
+ echo "For local use, you need to have 'aaf-cadi-aaf-$VERSION-full.jar' (or newer)"
+ fi
+ ;;
+ local)
+ shift
+ CMD="$1"
+ if [ -z "$2" ]; then
+ CMD="$CMD $APP_FQI $APP_FQDN"
+ else
+ if [ "-" = "$2" ]; then
+ CMD="$CMD $APP_FQI"
+ else
+ CMD="$CMD $2"
+ fi
+ if [ "-" = "$3" ]; then
+ CMD="$CMD $APP_FQDN"
+ else
+ CMD="$CMD $3"
+ fi
+ fi
+ reset_sso
+ sso aaf_id "$DEPLOY_FQI"
+ sso aaf_password "$DEPLOY_PASSWORD"
+ if [ -f aaf-cadi-aaf-$VERSION-full.jar ]; then
+ java -Dcadi_prop_files="$HOME/.aaf/sso.props" -cp aaf-cadi-aaf-$VERSION-full.jar org.onap.aaf.cadi.configure.Agent $CMD
+ else
+ echo "For local use, you need to have 'aaf-cadi-aaf-$VERSION-full.jar' (or newer)"
+ fi
+ ;;
+ *)
+ run_it --rm
+ ;;
+esac
+