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