Fix casablanca policy script
[integration/csit.git] / scripts / policy / script1.sh
1 #!/bin/bash
2 #
3 # Copyright 2017-2018 AT&T Intellectual Property. All rights reserved.
4 #
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
8 #
9 #     http://www.apache.org/licenses/LICENSE-2.0
10 #
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.
16 #
17 echo "This is ${WORKSPACE}/scripts/policy/script1.sh"
18
19
20 # the directory of the script
21 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
22 echo ${DIR}
23
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"`
27 echo ${WORK_DIR}
28
29 cd ${WORK_DIR}
30
31 # check if tmp dir was created
32 if [[ ! "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then
33   echo "Could not create temp dir"
34   exit 1
35 fi
36
37 # bring down maven
38 mkdir maven
39 cd maven
40 curl -O http://apache.claz.org/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
41 tar -xzvf apache-maven-3.3.9-bin.tar.gz
42 ls -l
43 export PATH=${PATH}:${WORK_DIR}/maven/apache-maven-3.3.9/bin
44 ${WORK_DIR}/maven/apache-maven-3.3.9/bin/mvn -v
45 cd ..
46
47 ifconfig
48
49 export IP=`ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}'`
50 if [ -z "$IP" ]; then
51         echo "Could not determine IP address"
52         exit 1
53 fi
54 echo $IP
55
56 if ! ifconfig docker0; then
57         export DOCKER_IP="$IP"
58 else
59         export DOCKER_IP=`ifconfig docker0 | awk -F: '/inet addr/ {gsub(/ .*/,"",$2); print $2}'`
60 fi
61 echo $DOCKER_IP
62
63 git clone http://gerrit.onap.org/r/oparent
64 cd oparent
65 git checkout casablanca
66
67 cd ${WORK_DIR}
68 git clone http://gerrit.onap.org/r/policy/engine
69 cd engine
70 git checkout casablanca
71 cd packages/docker 
72 ${WORK_DIR}/maven/apache-maven-3.3.9/bin/mvn prepare-package --settings ${WORK_DIR}/oparent/settings.xml
73 docker build -t onap/policy-pe target/policy-pe
74
75 cd ${WORK_DIR}
76 git clone http://gerrit.onap.org/r/policy/drools-pdp
77 cd drools-pdp
78 git checkout casablanca
79 cd packages/docker 
80 ${WORK_DIR}/maven/apache-maven-3.3.9/bin/mvn prepare-package --settings ${WORK_DIR}/oparent/settings.xml
81 docker build -t onap/policy-drools target/policy-drools
82
83 cd ${WORK_DIR}
84 git clone http://gerrit.onap.org/r/policy/docker
85 cd docker
86 git checkout casablanca
87
88 chmod +x config/drools/drools-tweaks.sh
89
90 echo $IP > config/pe/ip_addr.txt
91 ls -l config/pe/ip_addr.txt
92 cat config/pe/ip_addr.txt
93
94 export MTU=9126
95
96 export PRELOAD_POLICIES=false
97 docker-compose -f docker-compose-integration.yml up -d 
98
99 if [ ! $? -eq 0 ]; then
100         echo "Docker compose failed"
101         exit 1
102 fi 
103
104 docker ps
105
106 POLICY_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' drools`
107 echo ${POLICY_IP}
108
109 PDP_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' pdp`
110 echo ${PDP_IP}
111
112 PAP_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' pap`
113 echo ${PAP_IP}
114
115 BRMS_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' brmsgw`
116 echo ${BRMS_IP}
117
118 NEXUS_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' nexus`
119 echo ${NEXUS_IP}
120
121 MARIADB_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' mariadb`
122 echo ${MARIADB_IP}
123
124 sleep 3m
125
126 docker logs mariadb 2>&1 | grep -q "mysqld: ready for connections"
127 if [ $? -eq 0 ]; then
128         # mariadb is ok - sleep a little longer for others
129         sleep 2m
130
131 else
132         echo mariadb is not ready
133         echo Restarting...
134
135         docker kill drools pdp pap brmsgw nexus mariadb
136         docker rm -f drools pdp pap brmsgw nexus mariadb
137
138         docker-compose -f docker-compose-integration.yml up -d 
139         
140         if [ ! $? -eq 0 ]; then
141                 echo "Docker compose failed"
142                 exit 1
143         fi 
144         
145         docker ps
146         
147         POLICY_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' drools`
148         echo ${POLICY_IP}
149         
150         PDP_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' pdp`
151         echo ${PDP_IP}
152         
153         PAP_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' pap`
154         echo ${PAP_IP}
155         
156         BRMS_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' brmsgw`
157         echo ${BRMS_IP}
158         
159         NEXUS_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' nexus`
160         echo ${NEXUS_IP}
161         
162         MARIADB_IP=`docker inspect --format '{{ .NetworkSettings.Networks.docker_default.IPAddress}}' mariadb`
163         echo ${MARIADB_IP}
164         
165         sleep 5m
166 fi
167
168 netstat -tnl
169
170 docker logs mariadb
171 ${DIR}/wait_for_port.sh ${MARIADB_IP} 3306
172
173 docker logs pap
174 ${DIR}/wait_for_port.sh ${PAP_IP} 9091
175
176 docker logs pdp
177 ${DIR}/wait_for_port.sh ${PDP_IP} 8081
178
179 docker logs brmsgw
180 ${DIR}/wait_for_port.sh ${BRMS_IP} 9989
181
182 docker logs nexus
183 ${DIR}/wait_for_port.sh ${NEXUS_IP} 8081
184
185 docker logs drools
186 ${DIR}/wait_for_port.sh ${POLICY_IP} 6969
187
188 TIME_OUT=600
189 INTERVAL=20 
190 TIME=0 
191 while [ "$TIME" -lt "$TIME_OUT" ]; do 
192     curl -k -i --user "demo@people.osaaf.org:demo123456!" -H "ContentType: application/json" -H "Accept: application/json" https://${POLICY_IP}:6969/healthcheck && break
193         
194   echo Sleep: $INTERVAL seconds before testing if Policy is up. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds 
195   sleep $INTERVAL 
196   TIME=$(($TIME+$INTERVAL))
197         
198 done
199
200 TIME_OUT=600
201 INTERVAL=20 
202 TIME=0 
203 while [ "$TIME" -lt "$TIME_OUT" ]; do 
204         
205         curl -k -i -v -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'ClientAuth: cHl0aG9uOnRlc3Q=' -H 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' -H 'Environment: TEST' -d '{"policyName": ".*"}' https://${PDP_IP}:8081/pdp/api/getConfig && break
206         
207 echo Sleep: $INTERVAL seconds before testing if Policy is up. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds 
208   sleep $INTERVAL 
209   TIME=$(($TIME+$INTERVAL))
210         
211 done
212
213 #
214 # Add more sleep for everything to settle
215 #
216 sleep 3m