3 # Modifications copyright (C) 2021 Nokia. 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
14 res=$(curl -s -o /dev/null -w "%{http_code}" localhost:$2$3)
15 if [ $res -gt 199 ] && [ $res -lt 300 ]; then
16 echo "Simulator " $1 " on localhost:$2$3 responded ok"
21 echo "Simulator " $1 " on localhost:$2$3 - no response"
24 http_https_basic_server_check() {
26 res=$(curl $4 -s -o /dev/null -w "%{http_code}" "$3"://"$BASIC_AUTH_LOGIN":"$BASIC_AUTH_PASSWORD"@localhost:"$2")
27 if [ $res -gt 199 ] && [ $res -lt 300 ]; then
28 echo "Simulator " "$1" " on localhost: ""$2"" responded ok"
33 echo "Simulator " "$1" " on localhost:""$2"" - no response"
36 http_https_server_check() {
38 res=$(curl $4 -s -o /dev/null -w "%{http_code}" $3://localhost:$2)
39 if [ $res -gt 199 ] && [ $res -lt 300 ]; then
40 echo "Simulator " $1 " on localhost:$2 responded ok"
45 echo "Simulator " $1 " on localhost:$2 - no response"
48 server_check_https() {
50 res=$(curl -k -s -o /dev/null -w "%{http_code}" https://localhost:$2$3)
51 if [ $res -gt 199 ] && [ $res -lt 300 ]; then
52 echo "Simulator " $1 " on https://localhost:$2$3 responded ok"
57 echo "Simulator " $1 " on https://localhost:$2$3 - no response"
60 ftpes_server_check() {
62 res=$(curl --silent --max-time 3 ftp://localhost:$2 --ftp-ssl -v -k 2>&1 | grep vsFTPd)
63 if ! [ -z "$res" ]; then
64 echo "Simulator " $1 " on localhost:$2 responded ok"
69 echo "Simulator " $1 " on localhost:$2 - no response"
74 res=$(curl --silent --max-time 3 sftp://localhost:$2 -v -k 2>&1 | grep Connected)
75 if ! [ -z "$res" ]; then
76 echo "Simulator " $1 " on localhost:"$2" responded ok"
81 echo "Simulator " $1 " on localhost:"$2" - no response"
84 # Starts all simulators with the test settings
85 # Intended for CSIT test and auto test. For manual start, use the docker-compose-setup.sh
87 DOCKER_SIM_NWNAME="dfcnet"
88 echo "Creating docker network $DOCKER_SIM_NWNAME, if needed"
89 docker network ls| grep $DOCKER_SIM_NWNAME > /dev/null || docker network create $DOCKER_SIM_NWNAME
91 if [ -z "$SIM_GROUP" ]
93 export SIM_GROUP="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
96 if [ -z "$NUM_FTP_SERVERS" ]
98 export NUM_FTP_SERVERS=1
101 if [ -z "$NUM_HTTP_SERVERS" ]
103 export NUM_HTTP_SERVERS=1
106 docker-compose -f docker-compose-template.yml config > docker-compose.yml
110 sudo chown $(id -u):$(id -g) consul
111 sudo chown $(id -u):$(id -g) consul/consul/
117 DR_SIM="$(docker ps -q --filter='name=dfc_dr-sim')"
118 DR_RD_SIM="$(docker ps -q --filter='name=dfc_dr-redir-sim')"
119 MR_SIM="$(docker ps -q --filter='name=dfc_mr-sim')"
120 SFTP_SIM[0]="$(docker ps -q --filter='name=dfc_sftp-server0')"
121 SFTP_SIM[1]="$(docker ps -q --filter='name=dfc_sftp-server1')"
122 SFTP_SIM[2]="$(docker ps -q --filter='name=dfc_sftp-server2')"
123 SFTP_SIM[3]="$(docker ps -q --filter='name=dfc_sftp-server3')"
124 SFTP_SIM[4]="$(docker ps -q --filter='name=dfc_sftp-server4')"
125 FTPES_SIM[0]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd0')"
126 FTPES_SIM[1]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd1')"
127 FTPES_SIM[2]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd2')"
128 FTPES_SIM[3]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd3')"
129 FTPES_SIM[4]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd4')"
130 HTTP_SIM[0]="$(docker ps -q --filter='name=dfc_http-https-server0')"
131 HTTP_SIM[1]="$(docker ps -q --filter='name=dfc_http-https-server1')"
132 HTTP_SIM[2]="$(docker ps -q --filter='name=dfc_http-https-server2')"
133 HTTP_SIM[3]="$(docker ps -q --filter='name=dfc_http-https-server3')"
134 HTTP_SIM[4]="$(docker ps -q --filter='name=dfc_http-https-server4')"
135 CBS_SIM="$(docker ps -q --filter='name=dfc_cbs')"
136 CONSUL_SIM="$(docker ps -q --filter='name=dfc_consul')"
138 #Wait for initialization of docker containers for all simulators
140 if [ $(docker inspect --format '{{ .State.Running }}' $DR_SIM) ] && \
141 [ $(docker inspect --format '{{ .State.Running }}' $DR_RD_SIM) ] && \
142 [ $(docker inspect --format '{{ .State.Running }}' $MR_SIM) ] && \
143 [ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[0]}) ] && \
144 [ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[1]}) ] && \
145 [ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[2]}) ] && \
146 [ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[3]}) ] && \
147 [ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[4]}) ] && \
148 [ $(docker inspect --format '{{ .State.Running }}' ${FTPES_SIM[0]}) ] && \
149 [ $(docker inspect --format '{{ .State.Running }}' ${FTPES_SIM[1]}) ] && \
150 [ $(docker inspect --format '{{ .State.Running }}' ${FTPES_SIM[2]}) ] && \
151 [ $(docker inspect --format '{{ .State.Running }}' ${FTPES_SIM[3]}) ] && \
152 [ $(docker inspect --format '{{ .State.Running }}' ${FTPES_SIM[4]}) ] && \
153 [ $(docker inspect --format '{{ .State.Running }}' ${HTTP_SIM[0]}) ] && \
154 [ $(docker inspect --format '{{ .State.Running }}' ${HTTP_SIM[1]}) ] && \
155 [ $(docker inspect --format '{{ .State.Running }}' ${HTTP_SIM[2]}) ] && \
156 [ $(docker inspect --format '{{ .State.Running }}' ${HTTP_SIM[3]}) ] && \
157 [ $(docker inspect --format '{{ .State.Running }}' ${HTTP_SIM[4]}) ] && \
158 [ $(docker inspect --format '{{ .State.Running }}' $CBS_SIM) ] && \
159 [ $(docker inspect --format '{{ .State.Running }}' $CONSUL_SIM) ]
161 echo "All simulators Started"
169 if [ -z "$BASIC_AUTH_LOGIN" ]
171 BASIC_AUTH_LOGIN=demo
174 if [ -z "$BASIC_AUTH_PASSWORD" ]
176 BASIC_AUTH_PASSWORD=demo123456!
179 server_check "cbs " 10000 "/healthcheck"
180 server_check "consul " 8500 "/v1/catalog/service/agent"
181 server_check "DR sim " 3906 "/"
182 server_check "DR redir sim " 3908 "/"
183 server_check "MR sim " 2222 "/"
184 server_check_https "DR sim https " 3907 "/"
185 server_check_https "DR redir sim https" 3909 "/"
186 server_check_https "MR sim https " 2223 "/"
187 ftpes_server_check "FTPES server 0" 1032
188 ftpes_server_check "FTPES server 1" 1033
189 ftpes_server_check "FTPES server 2" 1034
190 ftpes_server_check "FTPES server 3" 1035
191 ftpes_server_check "FTPES server 4" 1036
192 sftp_server_check "SFTP server 0" 1022
193 sftp_server_check "SFTP server 1" 1023
194 sftp_server_check "SFTP server 2" 1024
195 sftp_server_check "SFTP server 3" 1025
196 sftp_server_check "SFTP server 4" 1026
197 http_https_basic_server_check "HTTP basic auth server 0" 81 http
198 http_https_basic_server_check "HTTP basic auth server 1" 82 http
199 http_https_basic_server_check "HTTP basic auth server 2" 83 http
200 http_https_basic_server_check "HTTP basic auth server 3" 84 http
201 http_https_basic_server_check "HTTP basic auth server 4" 85 http
202 http_https_basic_server_check "HTTPS basic auth server 0" 444 https -k
203 http_https_basic_server_check "HTTPS basic auth server 1" 445 https -k
204 http_https_basic_server_check "HTTPS basic auth server 2" 446 https -k
205 http_https_basic_server_check "HTTPS basic auth server 3" 447 https -k
206 http_https_basic_server_check "HTTPS basic auth server 4" 448 https -k
207 http_https_server_check "HTTPS client certificate authentication server 0" 444 https "-k --cert ../certservice/generated-certs/apache-pem/keystore.pem --key ../certservice/generated-certs/apache-pem/key.pem"
208 http_https_server_check "HTTPS client certificate authentication server 1" 445 https "-k --cert ../certservice/generated-certs/apache-pem/keystore.pem --key ../certservice/generated-certs/apache-pem/key.pem"
209 http_https_server_check "HTTPS client certificate authentication server 2" 446 https "-k --cert ../certservice/generated-certs/apache-pem/keystore.pem --key ../certservice/generated-certs/apache-pem/key.pem"
210 http_https_server_check "HTTPS client certificate authentication server 3" 447 https "-k --cert ../certservice/generated-certs/apache-pem/keystore.pem --key ../certservice/generated-certs/apache-pem/key.pem"
211 http_https_server_check "HTTPS client certificate authentication server 4" 448 https "-k --cert ../certservice/generated-certs/apache-pem/keystore.pem --key ../certservice/generated-certs/apache-pem/key.pem"
212 http_https_server_check "HTTPS no auth server 0" 8081 https -k
213 http_https_server_check "HTTPS no auth server 1" 8082 https -k
214 http_https_server_check "HTTPS no auth server 2" 8083 https -k
215 http_https_server_check "HTTPS no auth server 3" 8084 https -k
216 http_https_server_check "HTTPS no auth server 4" 8085 https -k
220 #Populate the ftp server with files
221 if [ -z "$NUM_FTPFILES" ]
225 if [ -z "$NUM_PNFS" ]
229 if [ -z "$FILE_SIZE" ]
233 if [ -z "$FTP_TYPE" ]
237 if [ -z "$FTP_FILE_PREFIXES" ]
239 FTP_FILE_PREFIXES="A"
244 if [ $FTP_TYPE = "ALL" ] || [ $FTP_TYPE = "SFTP" ]; then
245 echo "Creating files for SFTP server, may take time...."
247 while [ $p -lt $NUM_FTP_SERVERS ]; do
248 docker cp setup-ftp-files-for-image.sh ${SFTP_SIM[$p]}:/tmp/
249 #Double slash needed for docker on win...
250 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
254 if [ $FTP_TYPE = "ALL" ] || [ $FTP_TYPE = "FTPES" ]; then
255 echo "Creating files for FTPES server, may take time...."
257 while [ $p -lt $NUM_FTP_SERVERS ]; do
258 docker cp setup-ftp-files-for-image.sh ${FTPES_SIM[$p]}:/tmp/setup-ftp-files-for-image.sh
259 #Double slash needed for docker on win...
260 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
265 #Populate the http server with files. Note some common variables with ftp files!
266 if [ -z "$NUM_HTTPFILES" ]
270 if [ -z "$HTTP_TYPE" ]
274 if [ -z "$HTTP_FILE_PREFIXES" ]
276 HTTP_FILE_PREFIXES="A"
279 if [ $HTTP_TYPE = "ALL" ] || [ $HTTP_TYPE = "HTTP" ] || [ $HTTP_TYPE = "HTTPS" ]; then
280 echo "Creating files for HTTP server, may take time...."
282 while [ $p -lt $NUM_HTTP_SERVERS ]; do
283 docker cp setup-http-files-for-image.sh ${HTTP_SIM[$p]}:/tmp/setup-http-files-for-image.sh
284 #Double slash needed for docker on win...
285 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
289 echo "Done: All simulators started and configured"