X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fdocker%2Fagent.sh;h=575e21f98d27d7a0c38d60b61726beb3017783a5;hb=54f1bd25e5a6fb84502d100dbb00e915d4be6556;hp=4aba092cb613830dbf105dc595391ab99116d49d;hpb=5b37375d4f4e3764e10b813829881ae7217403f0;p=aaf%2Fauthz.git diff --git a/auth/docker/agent.sh b/auth/docker/agent.sh index 4aba092c..575e21f9 100644 --- a/auth/docker/agent.sh +++ b/auth/docker/agent.sh @@ -1,6 +1,24 @@ #!/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==================================================== +# -CADI_VERSION=2.1.2-SNAPSHOT # Fill out "aaf.props" if not filled out already if [ ! -e aaf.props ]; then @@ -9,21 +27,45 @@ fi . ./aaf.props -for V in VERSION AAF_FQDN AAF_FQDN_IP DEPLOY_FQI APP_FQDN APP_FQI VOLUME DRIVER LATITUDE LONGITUDE; do +DOCKER=${DOCKER:=docker} +CADI_VERSION=${CADI_VERSION:=2.1.16} + +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" - DEF=$(host $AAF_FQDN | grep "has address" | tail -1 | cut -f 4 -d ' ') + LOOKUP=$(host "${AAF_FQDN}" | grep "has address") + if [ -n "${LOOKUP}" ]; then + DEF=$(echo ${LOOKUP} | tail -1 | cut -f 4 -d ' ') + fi ;; - APP_FQI) PROMPT="App's FQI";; - APP_FQDN) PROMPT="App's Root FQDN";; - VOLUME) PROMPT="APP's AAF Configuration Volume";; + 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;; @@ -36,27 +78,39 @@ for V in VERSION AAF_FQDN AAF_FQDN_IP DEPLOY_FQI APP_FQDN APP_FQI VOLUME DRIVER read -p "$PROMPT" VAR if [ "$VAR" = "" ]; then if [ "$DEF" = "" ]; then - echo "agent.sh needs each value queried. Please start again." - exit + 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 +if [ "$($DOCKER volume ls | grep ${VOLUME})" = "" ]; then echo -n "Creating Volume: " - docker volume create -d ${DRIVER} ${VOLUME} + $DOCKER volume create -d ${DRIVER} ${VOLUME} fi -docker run \ - -it \ - --rm \ - --mount 'type=volume,src='${VOLUME}',dst=/opt/app/osaaf,volume-driver='${DRIVER} \ +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} \ @@ -65,6 +119,82 @@ docker run \ --env APP_FQDN=${APP_FQDN} \ --env LATITUDE=${LATITUDE} \ --env LONGITUDE=${LONGITUDE} \ - --name aaf_agent_$USER \ - onap/aaf/aaf_agent:$VERSION \ - /bin/bash "$@" + --env aaf_locator_container_ns=${CONTAINER_NS} \ + --env aaf_locator_container=docker \ + --link aaf-service --link aaf-locate --link aaf-oauth --link aaf-cm \ + --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 +