3 # Copyright 2017-2019 AT&T Intellectual Property. All rights reserved.
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
17 echo "This is ${WORKSPACE}/scripts/policy/drools-pdp-script.sh"
20 # the directory of the script
21 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
24 # the temp directory used, within $DIR
25 # omit the -p parameter to create a temporal directory in the default location
26 WORK_DIR=`mktemp -d -p "$DIR"`
31 # check if tmp dir was created
32 if [[ ! "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then
33 echo "Could not create temp dir"
40 # download maven from automatically selected mirror server
41 curl -vLO "https://www.apache.org/dyn/mirrors/mirrors.cgi?cca2=us&preferred=http://apache.claz.org/&action=download&filename=maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz"
42 if ! tar -xzvf apache-maven-3.3.9-bin.tar.gz ; then
43 echo "Installation of maven has failed!"
47 export PATH=${PATH}:${WORK_DIR}/maven/apache-maven-3.3.9/bin
48 ${WORK_DIR}/maven/apache-maven-3.3.9/bin/mvn -v
53 export IP=`ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}'`
55 echo "Could not determine IP address"
60 if ! ifconfig docker0; then
61 export DOCKER_IP="$IP"
63 export DOCKER_IP=`ifconfig docker0 | awk -F: '/inet addr/ {gsub(/ .*/,"",$2); print $2}'`
67 git clone http://gerrit.onap.org/r/oparent
69 git clone http://gerrit.onap.org/r/policy/engine
70 cd engine/packages/docker
71 ${WORK_DIR}/maven/apache-maven-3.3.9/bin/mvn prepare-package --settings ${WORK_DIR}/oparent/settings.xml
72 docker build -t onap/policy-pe target/policy-pe
75 git clone http://gerrit.onap.org/r/policy/drools-pdp
76 cd drools-pdp/packages/docker
77 ${WORK_DIR}/maven/apache-maven-3.3.9/bin/mvn prepare-package --settings ${WORK_DIR}/oparent/settings.xml
78 docker build -t onap/policy-drools target/policy-drools
81 git clone http://gerrit.onap.org/r/policy/docker
84 chmod +x config/drools/drools-tweaks.sh
86 echo $IP > config/pe/ip_addr.txt
87 ls -l config/pe/ip_addr.txt
88 cat config/pe/ip_addr.txt
92 export PRELOAD_POLICIES=false
93 docker-compose -f docker-compose-integration.yml up -d
95 if [ ! $? -eq 0 ]; then
96 echo "Docker compose failed"
102 POLICY_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' drools`
105 PDP_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' pdp`
108 PAP_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' pap`
111 BRMS_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' brmsgw`
114 NEXUS_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' nexus`
117 MARIADB_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' mariadb`
122 docker logs mariadb 2>&1 | grep -q "mysqld: ready for connections"
123 if [ $? -eq 0 ]; then
124 # mariadb is ok - sleep a little longer for others
128 echo mariadb is not ready
131 docker kill drools pdp pap brmsgw nexus mariadb
132 docker rm -f drools pdp pap brmsgw nexus mariadb
134 docker-compose -f docker-compose-integration.yml up -d
136 if [ ! $? -eq 0 ]; then
137 echo "Docker compose failed"
143 POLICY_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' drools`
146 PDP_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' pdp`
149 PAP_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' pap`
152 BRMS_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' brmsgw`
155 NEXUS_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' nexus`
158 MARIADB_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' mariadb`
166 ${DIR}/wait_for_port.sh ${MARIADB_IP} 3306
168 if [[ $rc != 0 ]]; then
169 echo "cannot open ${MARIADB_IP} 3306"
170 telnet ${MARIADB_IP} 3306 < /dev/null
171 nc -vz ${MARIADB_IP} 3306
176 ${DIR}/wait_for_port.sh ${NEXUS_IP} 8081
178 if [[ $rc != 0 ]]; then
179 echo "cannot open ${NEXUS_IP} 8081"
180 telnet ${NEXUS_IP} 8081 < /dev/null
181 nc -vz ${NEXUS_IP} 8081
186 ${DIR}/wait_for_port.sh ${POLICY_IP} 9696
188 if [[ $rc != 0 ]]; then
189 echo "cannot open ${POLICY_IP} 9696"
190 telnet ${POLICY_IP} 9696 < /dev/null
191 nc -vz ${POLICY_IP} 9696
196 ${DIR}/wait_for_port.sh ${PAP_IP} 9091
198 if [[ $rc != 0 ]]; then
199 echo "cannot open ${PAP_IP} 9091"
200 telnet ${PAP_IP} 9091 < /dev/null
201 nc -vz ${PAP_IP} 9091
206 ${DIR}/wait_for_port.sh ${PDP_IP} 8081
208 if [[ $rc != 0 ]]; then
209 echo "cannot open ${PDP_IP} 8081"
210 telnet ${PDP_IP} 8081 < /dev/null
211 nc -vz ${PDP_IP} 8081
216 ${DIR}/wait_for_port.sh ${BRMS_IP} 9989
218 if [[ $rc != 0 ]]; then
219 echo "cannot open ${BRMS_IP} 9989"
220 telnet ${BRMS_IP} 9989" < /dev/null
221 nc -vz ${BRMS_IP} 9989"
234 while [ "$TIME" -lt "$TIME_OUT" ]; do
235 curl -k -i --user "demo@people.osaaf.org:demo123456!" -H "ContentType: application/json" -H "Accept: application/json" https://${POLICY_IP}:9696/healthcheck && break
237 echo Sleep: $INTERVAL seconds before testing if Policy is up. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds
239 TIME=$(($TIME+$INTERVAL))
244 # Add more sleep for everything to settle