Adjust DFC test files to use FTPES instead of FTPS
[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 server_check_https() {
16         for i in {1..10}; do
17                 res=$(curl  -k -s -o /dev/null -w "%{http_code}" https://localhost:$2$3)
18                 if [ $res -gt 199 ] && [ $res -lt 300 ]; then
19                         echo "Simulator " $1 " on https://localhost:$2$3 responded ok"
20                         return
21                 fi
22                 sleep 1
23         done
24         echo "Simulator " $1 " on https://localhost:$2$3 - no response"
25 }
26
27 ftpes_server_check() {
28         for i in {1..10}; do
29                 res=$(curl --silent --max-time 3 localhost:$2 2>&1 | grep vsFTPd)
30                 if ! [ -z "$res" ]; then
31                         echo "Simulator " $1 " on localhost:$2 responded ok"
32                         return
33                 fi
34                 sleep 1
35         done
36         echo "Simulator " $1 " on localhost:$2 - no response"
37 }
38
39 sftp_server_check() {
40         for i in {1..10}; do
41                 res=$(curl --silent --max-time 3 localhost:$2 2>&1 | grep OpenSSH)
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 # Starts all simulators with the test settings
52 # Intended for CSIT test and auto test. For manual start, use the docker-compose-setup.sh
53
54 DOCKER_SIM_NWNAME="dfcnet"
55 echo "Creating docker network $DOCKER_SIM_NWNAME, if needed"
56 docker network ls| grep $DOCKER_SIM_NWNAME > /dev/null || docker network create $DOCKER_SIM_NWNAME
57
58 docker-compose -f docker-compose-template.yml config > docker-compose.yml
59
60 docker-compose up -d
61
62 sudo chown $(id -u):$(id -g) consul
63 sudo chown $(id -u):$(id -g) consul/consul/
64
65 declare -a SFTP_SIM
66 declare -a FTPES_SIM
67
68 DR_SIM="$(docker ps -q --filter='name=dfc_dr-sim')"
69 DR_RD_SIM="$(docker ps -q --filter='name=dfc_dr-redir-sim')"
70 MR_SIM="$(docker ps -q --filter='name=dfc_mr-sim')"
71 SFTP_SIM[0]="$(docker ps -q --filter='name=dfc_sftp-server0')"
72 SFTP_SIM[1]="$(docker ps -q --filter='name=dfc_sftp-server1')"
73 SFTP_SIM[2]="$(docker ps -q --filter='name=dfc_sftp-server2')"
74 SFTP_SIM[3]="$(docker ps -q --filter='name=dfc_sftp-server3')"
75 SFTP_SIM[4]="$(docker ps -q --filter='name=dfc_sftp-server4')"
76 FTPES_SIM[0]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd0')"
77 FTPES_SIM[1]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd1')"
78 FTPES_SIM[2]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd2')"
79 FTPES_SIM[3]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd3')"
80 FTPES_SIM[4]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd4')"
81 CBS_SIM="$(docker ps -q --filter='name=dfc_cbs')"
82 CONSUL_SIM="$(docker ps -q --filter='name=dfc_consul')"
83
84 #Wait for initialization of docker containers for all simulators
85 for i in {1..10}; do
86 if [ $(docker inspect --format '{{ .State.Running }}' $DR_SIM) ] && \
87 [ $(docker inspect --format '{{ .State.Running }}' $DR_RD_SIM) ] && \
88 [ $(docker inspect --format '{{ .State.Running }}' $MR_SIM) ] && \
89 [ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[0]}) ] && \
90 [ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[1]}) ] && \
91 [ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[2]}) ] && \
92 [ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[3]}) ] && \
93 [ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[4]}) ] && \
94 [ $(docker inspect --format '{{ .State.Running }}' ${FTPES_SIM[0]}) ] && \
95 [ $(docker inspect --format '{{ .State.Running }}' ${FTPES_SIM[1]}) ] && \
96 [ $(docker inspect --format '{{ .State.Running }}' ${FTPES_SIM[2]}) ] && \
97 [ $(docker inspect --format '{{ .State.Running }}' ${FTPES_SIM[3]}) ] && \
98 [ $(docker inspect --format '{{ .State.Running }}' ${FTPES_SIM[4]}) ] && \
99 [ $(docker inspect --format '{{ .State.Running }}' $CBS_SIM) ] && \
100 [ $(docker inspect --format '{{ .State.Running }}' $CONSUL_SIM) ]
101  then
102    echo "All simulators Started"
103    break
104  else
105    echo sleep $i
106    sleep $i
107  fi
108 done
109
110 server_check      "cbs          " 10000 "/healthcheck"
111 server_check      "consul       " 8500 "/v1/catalog/service/agent"
112 server_check      "DR sim       " 3906 "/"
113 server_check      "DR redir sim " 3908 "/"
114 server_check      "MR sim       " 2222 "/"
115 server_check_https "DR sim https      " 3907 "/"
116 server_check_https "DR redir sim https" 3909 "/"
117 server_check_https "MR sim https      " 2223 "/"
118 ftpes_server_check "FTPES server 0" 1032
119 ftpes_server_check "FTPES server 1" 1033
120 ftpes_server_check "FTPES server 2" 1034
121 ftpes_server_check "FTPES server 3" 1035
122 ftpes_server_check "FTPES server 4" 1036
123 sftp_server_check "SFTP server 0" 1022
124 sftp_server_check "SFTP server 1" 1023
125 sftp_server_check "SFTP server 2" 1024
126 sftp_server_check "SFTP server 3" 1025
127 sftp_server_check "SFTP server 4" 1026
128
129 echo ""
130
131 #Populate the ftp server with files
132 if [ -z "$NUM_FTPFILES" ]
133  then
134  NUM_FTPFILES=200
135 fi
136 if [ -z "$NUM_PNFS" ]
137  then
138  NUM_PNFS=1
139 fi
140 if [ -z "$FILE_SIZE" ]
141  then
142  FILE_SIZE="ALL"
143 fi
144 if [ -z "$FTP_TYPE" ]
145  then
146  FTP_TYPE="ALL"
147 fi
148 if [ -z "$FTP_FILE_PREFIXES" ]
149  then
150  FTP_FILE_PREFIXES="A"
151 fi
152
153 if [ -z "$NUM_FTP_SERVERS" ]
154  then
155  NUM_FTP_SERVERS=1
156 fi
157
158
159 if [ $FTP_TYPE = "ALL" ] || [ $FTP_TYPE = "SFTP" ]; then
160         echo "Creating files for SFTP server, may take time...."
161         p=0
162         while [ $p -lt $NUM_FTP_SERVERS ]; do
163                 docker cp setup-ftp-files-for-image.sh ${SFTP_SIM[$p]}:/tmp/
164                 #Double slash needed for docker on win...
165                 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
166                 let p=p+1
167         done
168 fi
169 if [ $FTP_TYPE = "ALL" ] || [ $FTP_TYPE = "FTPES" ]; then
170         echo "Creating files for FTPES server, may take time...."
171         p=0
172         while [ $p -lt $NUM_FTP_SERVERS ]; do
173                 docker cp setup-ftp-files-for-image.sh ${FTPES_SIM[$p]}:/tmp/setup-ftp-files-for-image.sh
174                 #Double slash needed for docker on win...
175                 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
176                 let p=p+1
177         done
178 fi
179 echo "Done: All simulators started and configured"