changed to unmaintained
[aaf/authz.git] / auth / docker / agent.sh
1 #!/bin/bash
2 #########
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 #
21
22
23 # Fill out "aaf.props" if not filled out already
24 if [ ! -e aaf.props ]; then
25   > ./aaf.props
26 fi
27  
28 . ./aaf.props
29
30 DOCKER=${DOCKER:=docker}
31 VERSION=${VERSION}
32 CADI_VERSION=${CADI_VERSION:=${VERSION}}
33
34 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
35    if [ "$(grep $V ./aaf.props)" = "" ]; then
36       unset DEF
37       case $V in
38          DOCKER_REPOSITORY) 
39                 PROMPT="Docker Repo"
40                 DEF="nexus3.onap.org:10003"
41                 ;;
42          HOSTNAME) 
43                 PROMPT="HOSTNAME (blank for Default)"
44                 DEF=""
45                 ;;
46          AAF_FQDN)   PROMPT="AAF's FQDN";;
47          DEPLOY_FQI) PROMPT="Deployer's FQI";;
48          AAF_FQDN_IP)
49                 # Need AAF_FQDN's IP, because not might not be available in mini-container
50                 PROMPT="AAF FQDN IP"
51                 LOOKUP=$(host "${AAF_FQDN}" | grep "has address")
52                 if [ -n "${LOOKUP}" ]; then
53                     DEF=$(echo ${LOOKUP} | tail -1 | cut -f 4 -d ' ')
54                 fi
55                 ;;
56          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                  ;;
67          DRIVER)     PROMPT=$V;DEF=local;;
68          CONTAINER_NS)     
69                      PROMPT=$V;DEF=onap;;
70          VERSION)    PROMPT="CADI Version";DEF=$CADI_VERSION;;
71          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
82             if [ "$V" != "HOSTNAME" ]; then
83               echo "agent.sh needs each value queried.  Please start again."
84               exit
85             fi
86          else
87             VAR=$DEF
88          fi
89       fi
90       echo "$V=$VAR" >> ./aaf.props
91       declare "$V"="$VAR"
92    fi
93 done
94 . ./aaf.props
95
96 # Make sure Container Volume exists
97 if [ "$($DOCKER volume ls | grep ${VOLUME})" = "" ]; then
98   echo -n "Creating Volume: " 
99   $DOCKER volume create -d ${DRIVER} ${VOLUME}
100 fi
101
102 if [ -n "$DOCKER_REPOSITORY" ]; then
103   PREFIX="$DOCKER_REPOSITORY/"
104 else
105   PREFIX=""
106 fi 
107
108 function run_it() {
109   if [ -n "${DUSER}" ]; then
110     USER_LINE="--user ${DUSER}"
111   fi
112   $DOCKER run  -it  --rm \
113     ${USER_LINE} \
114     -v "${VOLUME}:/opt/app/osaaf/local" \
115     --add-host="$AAF_FQDN:$AAF_FQDN_IP" \
116     $USER_LINE \
117     --env AAF_FQDN=${AAF_FQDN} \
118     --env DEPLOY_FQI=${DEPLOY_FQI} \
119     --env DEPLOY_PASSWORD=${DEPLOY_PASSWORD} \
120     --env APP_FQI=${APP_FQI} \
121     --env APP_FQDN=${APP_FQDN} \
122     --env LATITUDE=${LATITUDE} \
123     --env LONGITUDE=${LONGITUDE} \
124     --env aaf_locator_container_ns=${CONTAINER_NS} \
125     --env aaf_locator_container=docker \
126     --link aaf-service --link aaf-locate --link aaf-oauth --link aaf-cm \
127     --name aaf-agent-$USER \
128     "$PREFIX"onap/aaf/aaf_agent:$VERSION \
129     bash -c "bash /opt/app/aaf_config/bin/agent.sh $PARAMS"
130 }
131
132 function sso {
133   if [ -n "$2" ]; then
134     echo "$1=$2" >> $HOME/.aaf/sso.props
135   fi
136 }
137
138 function reset_sso {
139     mkdir -p ~/.aaf
140     > $HOME/.aaf/sso.props
141     sso aaf_locate_url "https://$AAF_FQDN:8095"
142     sso aaf_url_cm "https://$AAF_FQDN:8150"
143     sso cadi_latitude "$LATITUDE"
144     sso cadi_longitude "$LONGITUDE"
145     sso cadi_loglevel "DEBUG"
146     TRUSTSTORE="$(ls truststore*.jks | tail -1)"
147     if [ -z "$TRUSTSTORE" ]; then
148       echo "Place a truststore*.jar which has YOUR CA in it here"
149       exit
150     fi
151     sso cadi_truststore "${PWD}/${TRUSTSTORE}"
152     sso cadi_truststore_password changeit
153 }
154
155 PARAMS=$@
156 case "$1" in 
157   bash)
158     PARAMS="&& cd /opt/app/osaaf/local && exec bash"
159     run_it -it --rm  
160     ;;
161   taillog)
162     run_it -it --rm 
163     ;;
164   aafcli) 
165     shift
166     reset_sso
167     if [ -f aaf-cadi-aaf-$VERSION-full.jar ]; then
168       java -Dcadi_prop_files="$HOME/.aaf/sso.props" -jar aaf-cadi-aaf-$VERSION-full.jar $@
169     else 
170       echo "For local use, you need to have 'aaf-cadi-aaf-$VERSION-full.jar' (or newer)"
171     fi
172     ;;
173   local) 
174     shift
175     CMD="$1"
176     if [ -z "$2" ]; then 
177         CMD="$CMD $APP_FQI $APP_FQDN"
178     else 
179       if [ "-" = "$2" ]; then
180          CMD="$CMD $APP_FQI"
181       else
182          CMD="$CMD $2"
183       fi
184       if [ "-" = "$3" ]; then
185          CMD="$CMD $APP_FQDN"
186       else
187          CMD="$CMD $3"
188       fi
189     fi
190     reset_sso
191     sso aaf_id "$DEPLOY_FQI"
192     sso aaf_password "$DEPLOY_PASSWORD"
193     if [ -f aaf-cadi-aaf-$VERSION-full.jar ]; then
194       java -Dcadi_prop_files="$HOME/.aaf/sso.props" -cp aaf-cadi-aaf-$VERSION-full.jar org.onap.aaf.cadi.configure.Agent $CMD 
195     else 
196       echo "For local use, you need to have 'aaf-cadi-aaf-$VERSION-full.jar' (or newer)"
197     fi
198     ;;
199   *)
200     run_it --rm 
201     ;;
202 esac
203