changed to unmaintained
[aaf/authz.git] / auth / docker / drun.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 # Pull in Variables from d.props
22 . ./d.props
23
24 CASSANDRA_CLUSTER=${CASSANDRA_CLUSTER:=$CASSANDRA_DOCKER}
25
26 DOCKER=${DOCKER:=docker}
27
28 # Running without params keeps from being TTY
29 bash ./aaf.sh 
30
31 if [ "$1" == "" ]; then
32     AAF_COMPONENTS=$(cat components)
33 else
34     AAF_COMPONENTS="$@"
35 fi
36
37 # All the NORMAL services use common directory
38 #  remove this for Hello, which we want non shared
39 CONFIG="-v aaf_config:$CONF_ROOT_DIR"
40 if [ -n "${DUSER}" ]; then
41   THE_USER="--user $DUSER"
42 fi
43 IMAGE="${PREFIX}${ORG}/${PROJECT}/aaf_core:${VERSION}"
44
45 for AAF_COMPONENT in ${AAF_COMPONENTS}; do
46     LINKS=""
47     CMD_LINE=""
48     PUBLISH=""
49     case "$AAF_COMPONENT" in
50     "service")
51         PUBLISH="--publish 8100:8100"
52         if [ -z "$CASSANDRA_DOCKER" ]; then
53           CMD_LINE="cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-service && exec bin/service"
54         else
55           CMD_LINE="cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-service aaf-cass && exec bin/service"
56           LINKS="--link $CASSANDRA_DOCKER"
57           echo $CASSANDRA_CLUSTER
58         fi
59         ;;
60     "locate")
61         PUBLISH="--publish 8095:8095"
62         LINKS="--link aaf-cass --link aaf-service"
63         CMD_LINE="cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-locate aaf-service && exec bin/locate"
64         ;;
65     "oauth")
66         PUBLISH="--publish 8140:8140"
67         LINKS="--link aaf-cass --link aaf-service --link aaf-locate"
68         CMD_LINE="cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-oauth aaf-service && exec bin/oauth"
69         ;;
70     "cm")
71         PUBLISH="--publish 8150:8150"
72         LINKS="--link aaf-cass --link aaf-service --link aaf-locate --link aaf-oauth"
73         CMD_LINE="cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-cm aaf-locate && exec bin/cm"
74         ;;
75     "gui")
76         PUBLISH="--publish 8200:8200"
77         LINKS="--link aaf-service --link aaf-locate --link aaf-oauth --link aaf-cm"
78         CMD_LINE="cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-gui aaf-locate && exec bin/gui"
79         ;;
80     "fs")
81         PUBLISH="--publish 80:8096"
82         LINKS="--link aaf-locate"
83         CMD_LINE="cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-fs aaf-locate && exec bin/fs"
84         ;;
85     "hello")
86         LINKS="--link aaf-service --link aaf-locate --link aaf-oauth --link aaf-cm"
87         CONFIG="-v aaf_hello_config:/opt/app/osaaf/local"
88
89         # Since Helm based element have init-containers, take the same approach here.
90         if [ -z "$(docker volume ls | grep aaf_hello_config)" ]; then
91             echo Init Hello Config Container
92
93             echo -n "Creating Volume: "
94             $DOCKER volume create -d local aaf_hello_config
95
96             $DOCKER run --rm --name aaf_hello_config ${LINKS} \
97                 $CONFIG \
98                 --env AAF_FQDN=$HOSTNAME \
99                 --env DEPLOY_FQI=deployer@people.osaaf.org \
100                 --env DEPLOY_PASSWORD=demo123456! \
101                 --env APP_FQI=aaf@aaf.osaaf.org \
102                 --env APP_FQDN=aaf-hello \
103                 --env LATITUDE=$LATITUDE \
104                 --env LONGITUDE=$LONGITUDE \
105                 --env aaf_locator_container_ns=onap \
106                 --env aaf_locator_container=docker \
107                 $LINKS \
108                 "${PREFIX}${ORG}/${PROJECT}/aaf_agent:${VERSION}" \
109                 bash -c "bash /opt/app/aaf_config/bin/agent.sh && chown -R ${DUSER}:${DUSER} /opt/app/osaaf/local"
110         fi
111
112         PUBLISH="--publish 8130:8130"
113         #CMD_LINE="cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-hello aaf-locate aaf-cm && sleep 240"
114         CMD_LINE="cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-hello aaf-locate aaf-cm && exec bin/hello"
115         IMAGE="${PREFIX}${ORG}/${PROJECT}/aaf_hello:${VERSION}"
116         ;;
117     esac
118
119     echo Starting aaf-$AAF_COMPONENT...
120
121     $DOCKER run  \
122         -d \
123         ${THE_USER} \
124         --name aaf-$AAF_COMPONENT \
125         ${LINKS} \
126         --env AAF_ENV=${AAF_ENV} \
127         --env aaf_locator_container=docker \
128         --env aaf_locator_container_ns=${NAMESPACE} \
129         --env aaf_locator_fqdn=${HOSTNAME} \
130         --env aaf_locator_public_fqdn=${HOSTNAME} \
131         --env aaf_deployed_version=${VERSION} \
132         --env LATITUDE=${LATITUDE} \
133         --env LONGITUDE=${LONGITUDE} \
134         --env CASSANDRA_CLUSTER=${CASSANDRA_CLUSTER} \
135         --env CASSANDRA_USER=${CASSANDRA_USER} \
136         --env CASSANDRA_PASSWORD=${CASSANDRA_PASSWORD} \
137         --env CASSANDRA_PORT=${CASSANDRA_PORT} \
138         -v "aaf_status:/opt/app/aaf/status" \
139         $PUBLISH \
140         $CONFIG \
141         $IMAGE \
142         /bin/bash -c "$CMD_LINE"
143
144 done