blob: f59bd228ed6e8049095b11edf3f1e4afbd24291c [file] [log] [blame]
Instrumental9ec28952018-07-12 11:14:10 -05001#!/bin/bash
Instrumental7a1817b2018-11-05 11:11:15 -06002#########
3# ============LICENSE_START====================================================
4# org.onap.aaf
5# ===========================================================================
6# Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
7# ===========================================================================
8# Licensed under the Apache License, Version 2.0 (the "License");
9# you may not use this file except in compliance with the License.
10# You may obtain a copy of the License at
11#
12# http://www.apache.org/licenses/LICENSE-2.0
13#
14# Unless required by applicable law or agreed to in writing, software
15# distributed under the License is distributed on an "AS IS" BASIS,
16# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17# See the License for the specific language governing permissions and
18# limitations under the License.
19# ============LICENSE_END====================================================
20#
Instrumental21872892018-12-12 17:16:30 -060021
22
Instrumental32cdd552018-07-19 13:29:32 -050023# Fill out "aaf.props" if not filled out already
24if [ ! -e aaf.props ]; then
25 > ./aaf.props
26fi
Instrumental5b373752018-07-23 10:49:55 -050027
28. ./aaf.props
29
Instrumental21872892018-12-12 17:16:30 -060030DOCKER=${DOCKER:=docker}
Instrumental4d0a0452019-11-14 12:14:16 -060031VERSION=${VERSION}
32CADI_VERSION=${CADI_VERSION:=${VERSION}}
Instrumentalca323312018-08-15 04:57:04 -050033
Instrumental2b46f762019-02-20 11:14:41 -060034for V in VERSION DOCKER_REPOSITORY HOSTNAME CONTAINER_NS AAF_FQDN AAF_FQDN_IP DEPLOY_FQI APP_FQDN APP_FQI VOLUME DRIVER LATITUDE LONGITUDE; do
Instrumental32cdd552018-07-19 13:29:32 -050035 if [ "$(grep $V ./aaf.props)" = "" ]; then
36 unset DEF
37 case $V in
Instrumentalca323312018-08-15 04:57:04 -050038 DOCKER_REPOSITORY)
Instrumental21872892018-12-12 17:16:30 -060039 PROMPT="Docker Repo"
Instrumental7f1e2c02019-02-18 10:06:21 -060040 DEF="nexus3.onap.org:10003"
Instrumental21872892018-12-12 17:16:30 -060041 ;;
Instrumental12414fe2019-01-22 10:27:32 -060042 HOSTNAME)
43 PROMPT="HOSTNAME (blank for Default)"
44 DEF=""
45 ;;
Instrumental21872892018-12-12 17:16:30 -060046 AAF_FQDN) PROMPT="AAF's FQDN";;
47 DEPLOY_FQI) PROMPT="Deployer's FQI";;
Instrumental5b373752018-07-23 10:49:55 -050048 AAF_FQDN_IP)
Instrumental21872892018-12-12 17:16:30 -060049 # Need AAF_FQDN's IP, because not might not be available in mini-container
50 PROMPT="AAF FQDN IP"
Instrumental7f1e2c02019-02-18 10:06:21 -060051 LOOKUP=$(host "${AAF_FQDN}" | grep "has address")
Instrumentalbf3d3072019-02-18 14:01:07 -060052 if [ -n "${LOOKUP}" ]; then
Instrumental7f1e2c02019-02-18 10:06:21 -060053 DEF=$(echo ${LOOKUP} | tail -1 | cut -f 4 -d ' ')
54 fi
Instrumental21872892018-12-12 17:16:30 -060055 ;;
Instrumentalbf3d3072019-02-18 14:01:07 -060056 APP_FQDN) PROMPT="App's Root FQDN";;
57 APP_FQI) PROMPT="App's FQI"
58 if [[ "${APP_FQDN}" != *"."* ]]; then
59 DEF="${APP_FQDN}@${APP_FQDN}.onap.org"
60 fi
61 ;;
62 VOLUME) PROMPT="APP's AAF Configuration Volume"
63 if [[ "${APP_FQDN}" != *"."* ]]; then
64 DEF="${APP_FQDN}_config"
65 fi
66 ;;
Instrumental32cdd552018-07-19 13:29:32 -050067 DRIVER) PROMPT=$V;DEF=local;;
Instrumental2b46f762019-02-20 11:14:41 -060068 CONTAINER_NS)
69 PROMPT=$V;DEF=onap;;
Instrumental21872892018-12-12 17:16:30 -060070 VERSION) PROMPT="CADI Version";DEF=$CADI_VERSION;;
Instrumental32cdd552018-07-19 13:29:32 -050071 LATITUDE|LONGITUDE) PROMPT="$V of Node";;
72 *) PROMPT=$V;;
73 esac
74 if [ "$DEF" = "" ]; then
75 PROMPT="$PROMPT: "
76 else
77 PROMPT="$PROMPT ($DEF): "
78 fi
79 read -p "$PROMPT" VAR
80 if [ "$VAR" = "" ]; then
81 if [ "$DEF" = "" ]; then
Instrumental12414fe2019-01-22 10:27:32 -060082 if [ "$V" != "HOSTNAME" ]; then
83 echo "agent.sh needs each value queried. Please start again."
84 exit
85 fi
Instrumental32cdd552018-07-19 13:29:32 -050086 else
87 VAR=$DEF
88 fi
89 fi
90 echo "$V=$VAR" >> ./aaf.props
Instrumental7f1e2c02019-02-18 10:06:21 -060091 declare "$V"="$VAR"
Instrumental32cdd552018-07-19 13:29:32 -050092 fi
93done
94. ./aaf.props
95
Instrumental21872892018-12-12 17:16:30 -060096# Make sure Container Volume exists
97if [ "$($DOCKER volume ls | grep ${VOLUME})" = "" ]; then
98 echo -n "Creating Volume: "
99 $DOCKER volume create -d ${DRIVER} ${VOLUME}
100fi
101
Instrumental365638c2018-10-01 15:26:03 -0500102if [ -n "$DOCKER_REPOSITORY" ]; then
103 PREFIX="$DOCKER_REPOSITORY/"
104else
105 PREFIX=""
106fi
107
Instrumental628b7102019-02-15 19:40:04 -0600108function run_it() {
Instrumental628b7102019-02-15 19:40:04 -0600109 if [ -n "${DUSER}" ]; then
110 USER_LINE="--user ${DUSER}"
111 fi
112 $DOCKER run -it --rm \
113 ${USER_LINE} \
Instrumental94053612018-10-08 11:27:18 -0500114 -v "${VOLUME}:/opt/app/osaaf" \
Instrumentalc23f2cd2018-07-20 20:27:49 -0500115 --add-host="$AAF_FQDN:$AAF_FQDN_IP" \
Instrumental32cdd552018-07-19 13:29:32 -0500116 --env AAF_FQDN=${AAF_FQDN} \
117 --env DEPLOY_FQI=${DEPLOY_FQI} \
118 --env DEPLOY_PASSWORD=${DEPLOY_PASSWORD} \
119 --env APP_FQI=${APP_FQI} \
120 --env APP_FQDN=${APP_FQDN} \
Instrumental9c8a8b02018-07-16 18:41:10 -0500121 --env LATITUDE=${LATITUDE} \
122 --env LONGITUDE=${LONGITUDE} \
Instrumental2b46f762019-02-20 11:14:41 -0600123 --env aaf_locator_container_ns=${CONTAINER_NS} \
Instrumentalbe7e0d12019-04-04 21:42:19 -0500124 --env aaf_locator_container=docker \
Instrumentalb3a68142019-07-24 14:42:22 -0500125 --link aaf-service --link aaf-locate --link aaf-oauth --link aaf-cm \
Instrumental628b7102019-02-15 19:40:04 -0600126 --name aaf-agent-$USER \
Instrumental365638c2018-10-01 15:26:03 -0500127 "$PREFIX"onap/aaf/aaf_agent:$VERSION \
Instrumental628b7102019-02-15 19:40:04 -0600128 bash -c "bash /opt/app/aaf_config/bin/agent.sh $PARAMS"
129}
130
Instrumentalce76c7d2019-02-21 07:18:51 -0600131function sso {
132 if [ -n "$2" ]; then
Instrumentalf54a4aa2019-02-22 01:18:51 -0600133 echo "$1=$2" >> $HOME/.aaf/sso.props
Instrumentalce76c7d2019-02-21 07:18:51 -0600134 fi
135}
136
137function reset_sso {
138 mkdir -p ~/.aaf
Instrumentalf54a4aa2019-02-22 01:18:51 -0600139 > $HOME/.aaf/sso.props
Instrumentalce76c7d2019-02-21 07:18:51 -0600140 sso aaf_locate_url "https://$AAF_FQDN:8095"
141 sso cadi_latitude "$LATITUDE"
142 sso cadi_longitude "$LONGITUDE"
143 sso cadi_loglevel "DEBUG"
144 TRUSTSTORE="$(ls truststore*.jks | tail -1)"
145 if [ -z "$TRUSTSTORE" ]; then
146 echo "Place a truststore*.jar which has YOUR CA in it here"
147 exit
148 fi
149 sso cadi_truststore "${PWD}/${TRUSTSTORE}"
150 sso cadi_truststore_password changeit
151}
152
Instrumental628b7102019-02-15 19:40:04 -0600153PARAMS=$@
154case "$1" in
155 bash)
156 PARAMS="&& cd /opt/app/osaaf/local && exec bash"
157 run_it -it --rm
158 ;;
Instrumental7f1e2c02019-02-18 10:06:21 -0600159 taillog)
160 run_it -it --rm
161 ;;
Instrumentalce76c7d2019-02-21 07:18:51 -0600162 aafcli)
163 shift
164 reset_sso
Instrumentalaae5c072019-03-29 15:42:37 -0500165 if [ -f aaf-cadi-aaf-$VERSION-full.jar ]; then
166 java -Dcadi_prop_files="$HOME/.aaf/sso.props" -jar aaf-cadi-aaf-$VERSION-full.jar $@
Instrumentalce76c7d2019-02-21 07:18:51 -0600167 else
Instrumentalaae5c072019-03-29 15:42:37 -0500168 echo "For local use, you need to have 'aaf-cadi-aaf-$VERSION-full.jar' (or newer)"
Instrumentalce76c7d2019-02-21 07:18:51 -0600169 fi
170 ;;
171 local)
172 shift
173 CMD="$1"
174 if [ -z "$2" ]; then
175 CMD="$CMD $APP_FQI $APP_FQDN"
176 else
177 if [ "-" = "$2" ]; then
178 CMD="$CMD $APP_FQI"
179 else
180 CMD="$CMD $2"
181 fi
182 if [ "-" = "$3" ]; then
183 CMD="$CMD $APP_FQDN"
184 else
185 CMD="$CMD $3"
186 fi
187 fi
188 reset_sso
189 sso aaf_id "$DEPLOY_FQI"
190 sso aaf_password "$DEPLOY_PASSWORD"
Instrumentalaae5c072019-03-29 15:42:37 -0500191 if [ -f aaf-cadi-aaf-$VERSION-full.jar ]; then
192 java -Dcadi_prop_files="$HOME/.aaf/sso.props" -cp aaf-cadi-aaf-$VERSION-full.jar org.onap.aaf.cadi.configure.Agent $CMD
Instrumentalce76c7d2019-02-21 07:18:51 -0600193 else
Instrumentalaae5c072019-03-29 15:42:37 -0500194 echo "For local use, you need to have 'aaf-cadi-aaf-$VERSION-full.jar' (or newer)"
Instrumentalce76c7d2019-02-21 07:18:51 -0600195 fi
196 ;;
Instrumental628b7102019-02-15 19:40:04 -0600197 *)
198 run_it --rm
199 ;;
200esac
201