Add HTTP to DFC tests
[integration.git] / test / mocks / datafilecollector-testharness / simulator-group / simulators-start.sh
1 #!/bin/bash
2 set -x
3 server_check() {
4         for i in {1..10}; do
5                 res=$(curl  -s -o /dev/null -w "%{http_code}" localhost:$2$3)
6                 if [ $res -gt 199 ] && [ $res -lt 300 ]; then
7                         echo "Simulator " $1 " on localhost:$2$3 responded ok"
8                         return
9                 fi
10                 sleep 1
11         done
12         echo "Simulator " $1 " on localhost:$2$3 - no response"
13 }
14
15 basic_auth_server_check() {
16         for i in {1..10}; do
17                 res=$(curl  -s -o /dev/null -w "%{http_code}" http://$BASIC_AUTH_LOGIN:$BASIC_AUTH_PASSWORD@localhost:$2$3)
18                 if [ $res -gt 199 ] && [ $res -lt 300 ]; then
19                         echo "Simulator " $1 " on localhost:$2$3 responded ok"
20                         return
21                 fi
22                 sleep 1
23         done
24         echo "Simulator " $1 " on localhost:$2$3 - no response"
25 }
26
27 server_check_https() {
28         for i in {1..10}; do
29                 res=$(curl  -k -s -o /dev/null -w "%{http_code}" https://localhost:$2$3)
30                 if [ $res -gt 199 ] && [ $res -lt 300 ]; then
31                         echo "Simulator " $1 " on https://localhost:$2$3 responded ok"
32                         return
33                 fi
34                 sleep 1
35         done
36         echo "Simulator " $1 " on https://localhost:$2$3 - no response"
37 }
38
39 ftpes_server_check() {
40         for i in {1..10}; do
41                 res=$(curl --silent --max-time 3 localhost:$2 2>&1 | grep vsFTPd)
42                 if ! [ -z "$res" ]; then
43                         echo "Simulator " $1 " on localhost:$2 responded ok"
44                         return
45                 fi
46                 sleep 1
47         done
48         echo "Simulator " $1 " on localhost:$2 - no response"
49 }
50
51 sftp_server_check() {
52         for i in {1..10}; do
53                 res=$(curl --silent --max-time 3 localhost:$2 2>&1 | grep OpenSSH)
54                 if ! [ -z "$res" ]; then
55                         echo "Simulator " $1 " on localhost:"$2" responded ok"
56                         return
57                 fi
58                 sleep 1
59         done
60         echo "Simulator " $1 " on localhost:"$2" - no response"
61 }
62
63 # Starts all simulators with the test settings
64 # Intended for CSIT test and auto test. For manual start, use the docker-compose-setup.sh
65
66 DOCKER_SIM_NWNAME="dfcnet"
67 echo "Creating docker network $DOCKER_SIM_NWNAME, if needed"
68 docker network ls| grep $DOCKER_SIM_NWNAME > /dev/null || docker network create $DOCKER_SIM_NWNAME
69
70 if [ -z "$NUM_FTP_SERVERS" ]
71  then
72  export NUM_FTP_SERVERS=1
73 fi
74
75 if [ -z "$NUM_HTTP_SERVERS" ]
76  then
77  export NUM_HTTP_SERVERS=1
78 fi
79
80 docker-compose -f docker-compose-template.yml config > docker-compose.yml
81
82 docker-compose up -d
83
84 sudo chown $(id -u):$(id -g) consul
85 sudo chown $(id -u):$(id -g) consul/consul/
86
87 declare -a SFTP_SIM
88 declare -a FTPES_SIM
89 declare -a HTTP_SIM
90
91 DR_SIM="$(docker ps -q --filter='name=dfc_dr-sim')"
92 DR_RD_SIM="$(docker ps -q --filter='name=dfc_dr-redir-sim')"
93 MR_SIM="$(docker ps -q --filter='name=dfc_mr-sim')"
94 SFTP_SIM[0]="$(docker ps -q --filter='name=dfc_sftp-server0')"
95 SFTP_SIM[1]="$(docker ps -q --filter='name=dfc_sftp-server1')"
96 SFTP_SIM[2]="$(docker ps -q --filter='name=dfc_sftp-server2')"
97 SFTP_SIM[3]="$(docker ps -q --filter='name=dfc_sftp-server3')"
98 SFTP_SIM[4]="$(docker ps -q --filter='name=dfc_sftp-server4')"
99 FTPES_SIM[0]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd0')"
100 FTPES_SIM[1]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd1')"
101 FTPES_SIM[2]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd2')"
102 FTPES_SIM[3]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd3')"
103 FTPES_SIM[4]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd4')"
104 HTTP_SIM[0]="$(docker ps -q --filter='name=dfc_http-server0')"
105 HTTP_SIM[1]="$(docker ps -q --filter='name=dfc_http-server1')"
106 HTTP_SIM[2]="$(docker ps -q --filter='name=dfc_http-server2')"
107 HTTP_SIM[3]="$(docker ps -q --filter='name=dfc_http-server3')"
108 HTTP_SIM[4]="$(docker ps -q --filter='name=dfc_http-server4')"
109 CBS_SIM="$(docker ps -q --filter='name=dfc_cbs')"
110 CONSUL_SIM="$(docker ps -q --filter='name=dfc_consul')"
111
112 #Wait for initialization of docker containers for all simulators
113 for i in {1..10}; do
114 if [ $(docker inspect --format '{{ .State.Running }}' $DR_SIM) ] && \
115 [ $(docker inspect --format '{{ .State.Running }}' $DR_RD_SIM) ] && \
116 [ $(docker inspect --format '{{ .State.Running }}' $MR_SIM) ] && \
117 [ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[0]}) ] && \
118 [ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[1]}) ] && \
119 [ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[2]}) ] && \
120 [ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[3]}) ] && \
121 [ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[4]}) ] && \
122 [ $(docker inspect --format '{{ .State.Running }}' ${FTPES_SIM[0]}) ] && \
123 [ $(docker inspect --format '{{ .State.Running }}' ${FTPES_SIM[1]}) ] && \
124 [ $(docker inspect --format '{{ .State.Running }}' ${FTPES_SIM[2]}) ] && \
125 [ $(docker inspect --format '{{ .State.Running }}' ${FTPES_SIM[3]}) ] && \
126 [ $(docker inspect --format '{{ .State.Running }}' ${FTPES_SIM[4]}) ] && \
127 [ $(docker inspect --format '{{ .State.Running }}' ${HTTP_SIM[0]}) ] && \
128 [ $(docker inspect --format '{{ .State.Running }}' ${HTTP_SIM[1]}) ] && \
129 [ $(docker inspect --format '{{ .State.Running }}' ${HTTP_SIM[2]}) ] && \
130 [ $(docker inspect --format '{{ .State.Running }}' ${HTTP_SIM[3]}) ] && \
131 [ $(docker inspect --format '{{ .State.Running }}' ${HTTP_SIM[4]}) ] && \
132 [ $(docker inspect --format '{{ .State.Running }}' $CBS_SIM) ] && \
133 [ $(docker inspect --format '{{ .State.Running }}' $CONSUL_SIM) ]
134  then
135    echo "All simulators Started"
136    break
137  else
138    echo sleep $i
139    sleep $i
140  fi
141 done
142
143 if [ -z "$BASIC_AUTH_LOGIN" ]
144  then
145  BASIC_AUTH_LOGIN=demo
146 fi
147
148 if [ -z "$BASIC_AUTH_PASSWORD" ]
149  then
150  BASIC_AUTH_PASSWORD=demo123456!
151 fi
152
153 server_check      "cbs          " 10000 "/healthcheck"
154 server_check      "consul       " 8500 "/v1/catalog/service/agent"
155 server_check      "DR sim       " 3906 "/"
156 server_check      "DR redir sim " 3908 "/"
157 server_check      "MR sim       " 2222 "/"
158 server_check_https "DR sim https      " 3907 "/"
159 server_check_https "DR redir sim https" 3909 "/"
160 server_check_https "MR sim https      " 2223 "/"
161 ftpes_server_check "FTPES server 0" 1032
162 ftpes_server_check "FTPES server 1" 1033
163 ftpes_server_check "FTPES server 2" 1034
164 ftpes_server_check "FTPES server 3" 1035
165 ftpes_server_check "FTPES server 4" 1036
166 sftp_server_check "SFTP server 0" 1022
167 sftp_server_check "SFTP server 1" 1023
168 sftp_server_check "SFTP server 2" 1024
169 sftp_server_check "SFTP server 3" 1025
170 sftp_server_check "SFTP server 4" 1026
171 basic_auth_server_check "HTTP server 0" 81
172 basic_auth_server_check "HTTP server 1" 82
173 basic_auth_server_check "HTTP server 2" 83
174 basic_auth_server_check "HTTP server 3" 84
175 basic_auth_server_check "HTTP server 4" 85
176
177 echo ""
178
179 #Populate the ftp server with files
180 if [ -z "$NUM_FTPFILES" ]
181  then
182  NUM_FTPFILES=200
183 fi
184 if [ -z "$NUM_PNFS" ]
185  then
186  NUM_PNFS=1
187 fi
188 if [ -z "$FILE_SIZE" ]
189  then
190  FILE_SIZE="ALL"
191 fi
192 if [ -z "$FTP_TYPE" ]
193  then
194  FTP_TYPE="ALL"
195 fi
196 if [ -z "$FTP_FILE_PREFIXES" ]
197  then
198  FTP_FILE_PREFIXES="A"
199 fi
200
201
202
203 if [ $FTP_TYPE = "ALL" ] || [ $FTP_TYPE = "SFTP" ]; then
204         echo "Creating files for SFTP server, may take time...."
205         p=0
206         while [ $p -lt $NUM_FTP_SERVERS ]; do
207                 docker cp setup-ftp-files-for-image.sh ${SFTP_SIM[$p]}:/tmp/
208                 #Double slash needed for docker on win...
209                 docker exec -w //home/onap/ ${SFTP_SIM[$p]} //tmp/setup-ftp-files-for-image.sh $NUM_FTPFILES $NUM_PNFS $FILE_SIZE $FTP_FILE_PREFIXES $NUM_FTP_SERVERS $p #>/dev/null 2>&1
210                 let p=p+1
211         done
212 fi
213 if [ $FTP_TYPE = "ALL" ] || [ $FTP_TYPE = "FTPES" ]; then
214         echo "Creating files for FTPES server, may take time...."
215         p=0
216         while [ $p -lt $NUM_FTP_SERVERS ]; do
217                 docker cp setup-ftp-files-for-image.sh ${FTPES_SIM[$p]}:/tmp/setup-ftp-files-for-image.sh
218                 #Double slash needed for docker on win...
219                 docker exec -w //srv ${FTPES_SIM[$p]} //tmp/setup-ftp-files-for-image.sh $NUM_FTPFILES $NUM_PNFS $FILE_SIZE $FTP_FILE_PREFIXES $NUM_FTP_SERVERS $p #>/dev/null 2>&1
220                 let p=p+1
221         done
222 fi
223
224 #Populate the http server with files. Note some common variables with ftp files!
225 if [ -z "$NUM_HTTPFILES" ]
226  then
227  NUM_HTTPFILES=200
228 fi
229 if [ -z "$HTTP_TYPE" ]
230  then
231  HTTP_TYPE="ALL"
232 fi
233 if [ -z "$HTTP_FILE_PREFIXES" ]
234  then
235  HTTP_FILE_PREFIXES="A"
236 fi
237
238 if [ $HTTP_TYPE = "ALL" ] || [ $HTTP_TYPE = "HTTP" ]; then
239         echo "Creating files for HTTP server, may take time...."
240         p=0
241         while [ $p -lt $NUM_HTTP_SERVERS ]; do
242                 docker cp setup-http-files-for-image.sh ${HTTP_SIM[$p]}:/tmp/setup-http-files-for-image.sh
243                 #Double slash needed for docker on win...
244                 docker exec -w //usr//local//apache2//htdocs ${HTTP_SIM[$p]} //tmp/setup-http-files-for-image.sh $NUM_HTTPFILES $NUM_PNFS $FILE_SIZE $HTTP_FILE_PREFIXES $NUM_HTTP_SERVERS $p #>/dev/null 2>&1
245                 let p=p+1
246         done
247 fi
248 echo "Done: All simulators started and configured"