blob: 2449ba752c53e82875c495cbfc9429954dd3a502 [file] [log] [blame]
Frederic Lecaille573d2892018-12-13 22:15:08 +01001varnishtest "Health-checks"
2feature ignore_unknown_macro
3
4#REQUIRE_VERSION=1.8
Frédéric Lécaille15685c72018-12-20 09:55:45 +01005#EXCLUDE_TARGETS=freebsd
Frederic Lecaille573d2892018-12-13 22:15:08 +01006
7# This script start 40 servers named s0 up to s39.
8# For 0 <= i <= 19:
9# - s(i) and s(i+1) belong to backend be(2*i+1),
10# - fe(2*i+1) backend is configured to used be(2*i+1) backend.
11# - only s(2*i+1) servers have health-checks enabled,
12# - we start 20 clients named s(2*i+1) which connect to fe(2*i+1) frontend,
13# - so that to ensure that health-checks do not consume any connection
14# (any varnishtest server without -repeat <n> with n > 1 accepts
15# only one connection).
16
17# Note that the first syslog message received is: "Proxy <name> started."
18syslog S1 -level notice {
19 recv
20 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be1 started."
21 recv
22 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be1/srv1 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
23} -start
24
25syslog S3 -level notice {
26 recv
27 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be3 started."
28 recv
29 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be3/srv3 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
30} -start
31
32syslog S5 -level notice {
33 recv
34 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be5 started."
35 recv
36 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be5/srv5 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
37} -start
38
39syslog S7 -level notice {
40 recv
41 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be7 started."
42 recv
43 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be7/srv7 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
44} -start
45
46syslog S9 -level notice {
47 recv
48 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be9 started."
49 recv
50 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be9/srv9 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
51} -start
52
53syslog S11 -level notice {
54 recv
55 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be11 started."
56 recv
57 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be11/srv11 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
58} -start
59
60syslog S13 -level notice {
61 recv
62 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be13 started."
63 recv
64 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be13/srv13 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
65} -start
66
67syslog S15 -level notice {
68 recv
69 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be15 started."
70 recv
71 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be15/srv15 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
72} -start
73
74syslog S17 -level notice {
75 recv
76 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be17 started."
77 recv
78 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be17/srv17 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
79} -start
80
81syslog S19 -level notice {
82 recv
83 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be19 started."
84 recv
85 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be19/srv19 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
86} -start
87
88syslog S21 -level notice {
89 recv
90 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be21 started."
91 recv
92 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be21/srv21 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
93} -start
94
95syslog S23 -level notice {
96 recv
97 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be23 started."
98 recv
99 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be23/srv23 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
100} -start
101
102syslog S25 -level notice {
103 recv
104 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be25 started."
105 recv
106 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be25/srv25 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
107} -start
108
109syslog S27 -level notice {
110 recv
111 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be27 started."
112 recv
113 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be27/srv27 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
114} -start
115
116syslog S29 -level notice {
117 recv
118 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be29 started."
119 recv
120 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be29/srv29 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
121} -start
122
123syslog S31 -level notice {
124 recv
125 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be31 started."
126 recv
127 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be31/srv31 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
128} -start
129
130syslog S33 -level notice {
131 recv
132 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be33 started."
133 recv
134 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be33/srv33 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
135} -start
136
137syslog S35 -level notice {
138 recv
139 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be35 started."
140 recv
141 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be35/srv35 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
142} -start
143
144syslog S37 -level notice {
145 recv
146 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be37 started."
147 recv
148 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be37/srv37 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
149} -start
150
151syslog S39 -level notice {
152 recv
153 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be39 started."
154 recv
155 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be39/srv39 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP"
156} -start
157
158server s0 {} -start
159server s2 {} -start
160server s4 {} -start
161server s6 {} -start
162server s8 {} -start
163server s10 {} -start
164server s12 {} -start
165server s14 {} -start
166server s16 {} -start
167server s18 {} -start
168server s20 {} -start
169server s22 {} -start
170server s24 {} -start
171server s26 {} -start
172server s28 {} -start
173server s30 {} -start
174server s32 {} -start
175server s34 {} -start
176server s36 {} -start
177server s38 {} -start
178
179server s1 {
180 rxreq
181 txresp
182} -start
183
184server s3 {
185 rxreq
186 txresp
187} -start
188
189server s5 {
190 rxreq
191 txresp
192} -start
193
194server s7 {
195 rxreq
196 txresp
197} -start
198
199server s9 {
200 rxreq
201 txresp
202} -start
203
204server s11 {
205 rxreq
206 txresp
207} -start
208
209server s13 {
210 rxreq
211 txresp
212} -start
213
214server s15 {
215 rxreq
216 txresp
217} -start
218
219server s17 {
220 rxreq
221 txresp
222} -start
223
224server s19 {
225 rxreq
226 txresp
227} -start
228
229server s21 {
230 rxreq
231 txresp
232} -start
233
234server s23 {
235 rxreq
236 txresp
237} -start
238
239server s25 {
240 rxreq
241txresp
242} -start
243
244server s27 {
245 rxreq
246 txresp
247} -start
248
249server s29 {
250 rxreq
251 txresp
252} -start
253
254server s31 {
255 rxreq
256 txresp
257} -start
258
259server s33 {
260 rxreq
261 txresp
262} -start
263
264server s35 {
265 rxreq
266 txresp
267} -start
268
269server s37 {
270 rxreq
271 txresp
272} -start
273
274server s39 {
275 rxreq
276 txresp
277} -start
278
279haproxy h1 -conf {
280 defaults
281 timeout client 1s
282 timeout server 1s
283 timeout connect 1s
284 balance first
285 default-server no-check inter 5ms downinter 1s rise 1 fall 1
286
287 backend be1
288 option log-health-checks
289 log ${S1_addr}:${S1_port} daemon
290 server srv1 ${s1_addr}:${s1_port} check
291 server srv0 ${s0_addr}:${s0_port}
292
293 backend be3
294 option log-health-checks
295 log ${S3_addr}:${S3_port} daemon
296 server srv3 ${s3_addr}:${s3_port} check
297 server srv2 ${s2_addr}:${s2_port}
298
299 backend be5
300 option log-health-checks
301 log ${S5_addr}:${S5_port} daemon
302 server srv5 ${s5_addr}:${s5_port} check
303 server srv4 ${s4_addr}:${s4_port}
304
305 backend be7
306 option log-health-checks
307 log ${S7_addr}:${S7_port} daemon
308 server srv7 ${s7_addr}:${s7_port} check
309 server srv6 ${s6_addr}:${s6_port}
310
311 backend be9
312 option log-health-checks
313 log ${S9_addr}:${S9_port} daemon
314 server srv9 ${s9_addr}:${s9_port} check
315 server srv8 ${s8_addr}:${s8_port}
316
317 backend be11
318 option log-health-checks
319 log ${S11_addr}:${S11_port} daemon
320 server srv11 ${s11_addr}:${s11_port} check
321 server srv10 ${s10_addr}:${s10_port}
322
323 backend be13
324 option log-health-checks
325 log ${S13_addr}:${S13_port} daemon
326 server srv13 ${s13_addr}:${s13_port} check
327 server srv12 ${s12_addr}:${s12_port}
328
329 backend be15
330 option log-health-checks
331 log ${S15_addr}:${S15_port} daemon
332 server srv15 ${s15_addr}:${s15_port} check
333 server srv14 ${s14_addr}:${s14_port}
334
335 backend be17
336 option log-health-checks
337 log ${S17_addr}:${S17_port} daemon
338 server srv17 ${s17_addr}:${s17_port} check
339 server srv16 ${s16_addr}:${s16_port}
340
341 backend be19
342 option log-health-checks
343 log ${S19_addr}:${S19_port} daemon
344 server srv19 ${s19_addr}:${s19_port} check
345 server srv18 ${s18_addr}:${s18_port}
346
347 backend be21
348 option log-health-checks
349 log ${S21_addr}:${S21_port} daemon
350 server srv21 ${s21_addr}:${s21_port} check
351 server srv20 ${s20_addr}:${s20_port}
352
353 backend be23
354 option log-health-checks
355 log ${S23_addr}:${S23_port} daemon
356 server srv23 ${s23_addr}:${s23_port} check
357 server srv22 ${s22_addr}:${s22_port}
358
359 backend be25
360 option log-health-checks
361 log ${S25_addr}:${S25_port} daemon
362 server srv25 ${s25_addr}:${s25_port} check
363 server srv24 ${s24_addr}:${s24_port}
364
365 backend be27
366 option log-health-checks
367 log ${S27_addr}:${S27_port} daemon
368 server srv27 ${s27_addr}:${s27_port} check
369 server srv26 ${s26_addr}:${s26_port}
370
371 backend be29
372 option log-health-checks
373 log ${S29_addr}:${S29_port} daemon
374 server srv29 ${s29_addr}:${s29_port} check
375 server srv28 ${s28_addr}:${s28_port}
376
377 backend be31
378 option log-health-checks
379 log ${S31_addr}:${S31_port} daemon
380 server srv31 ${s31_addr}:${s31_port} check
381 server srv30 ${s30_addr}:${s30_port}
382
383 backend be33
384 option log-health-checks
385 log ${S33_addr}:${S33_port} daemon
386 server srv33 ${s33_addr}:${s33_port} check
387 server srv32 ${s32_addr}:${s32_port}
388
389 backend be35
390 option log-health-checks
391 log ${S35_addr}:${S35_port} daemon
392 server srv35 ${s35_addr}:${s35_port} check
393 server srv34 ${s34_addr}:${s34_port}
394
395 backend be37
396 option log-health-checks
397 log ${S37_addr}:${S37_port} daemon
398 server srv37 ${s37_addr}:${s37_port} check
399 server srv36 ${s36_addr}:${s36_port}
400
401 backend be39
402 option log-health-checks
403 log ${S39_addr}:${S39_port} daemon
404 server srv39 ${s39_addr}:${s39_port} check
405 server srv38 ${s38_addr}:${s38_port}
406
407 frontend fe1
408 bind "fd@${fe1}"
409 use_backend be1
410
411 frontend fe3
412 bind "fd@${fe3}"
413 use_backend be3
414
415 frontend fe5
416 bind "fd@${fe5}"
417 use_backend be5
418
419 frontend fe7
420 bind "fd@${fe7}"
421 use_backend be7
422
423 frontend fe9
424 bind "fd@${fe9}"
425 use_backend be9
426
427 frontend fe11
428 bind "fd@${fe11}"
429 use_backend be11
430
431 frontend fe13
432 bind "fd@${fe13}"
433 use_backend be13
434
435 frontend fe15
436 bind "fd@${fe15}"
437 use_backend be15
438
439 frontend fe17
440 bind "fd@${fe17}"
441 use_backend be17
442
443 frontend fe19
444 bind "fd@${fe19}"
445 use_backend be19
446
447 frontend fe21
448 bind "fd@${fe21}"
449 use_backend be21
450
451 frontend fe23
452 bind "fd@${fe23}"
453 use_backend be23
454
455 frontend fe25
456 bind "fd@${fe25}"
457 use_backend be25
458
459 frontend fe27
460 bind "fd@${fe27}"
461 use_backend be27
462
463 frontend fe29
464 bind "fd@${fe29}"
465 use_backend be29
466
467 frontend fe31
468 bind "fd@${fe31}"
469 use_backend be31
470
471 frontend fe33
472 bind "fd@${fe33}"
473 use_backend be33
474
475 frontend fe35
476 bind "fd@${fe35}"
477 use_backend be35
478
479 frontend fe37
480 bind "fd@${fe37}"
481 use_backend be37
482
483 frontend fe39
484 bind "fd@${fe39}"
485 use_backend be39
486} -start
487
488# This is a sort of synchronization: after having waited for all the syslog
489# servers we are sure that all the health-checks have succeeded.
490syslog S1 -wait
491syslog S3 -wait
492syslog S5 -wait
493syslog S7 -wait
494syslog S9 -wait
495syslog S11 -wait
496syslog S13 -wait
497syslog S15 -wait
498syslog S17 -wait
499syslog S19 -wait
500syslog S21 -wait
501syslog S23 -wait
502syslog S25 -wait
503syslog S27 -wait
504syslog S29 -wait
505syslog S31 -wait
506syslog S33 -wait
507syslog S35 -wait
508syslog S37 -wait
509syslog S39 -wait
510
511client c1 -connect ${h1_fe1_sock} {
512 txreq
513 rxresp
514 expect resp.status == 200
515} -start
516
517client c3 -connect ${h1_fe3_sock} {
518 txreq
519 rxresp
520 expect resp.status == 200
521} -start
522
523client c5 -connect ${h1_fe5_sock} {
524 txreq
525 rxresp
526 expect resp.status == 200
527} -start
528
529client c7 -connect ${h1_fe7_sock} {
530 txreq
531 rxresp
532 expect resp.status == 200
533} -start
534
535client c9 -connect ${h1_fe9_sock} {
536 txreq
537 rxresp
538 expect resp.status == 200
539} -start
540
541client c11 -connect ${h1_fe11_sock} {
542 txreq
543 rxresp
544 expect resp.status == 200
545} -start
546
547client c13 -connect ${h1_fe13_sock} {
548 txreq
549 rxresp
550 expect resp.status == 200
551} -start
552
553client c15 -connect ${h1_fe15_sock} {
554 txreq
555 rxresp
556 expect resp.status == 200
557} -start
558
559client c17 -connect ${h1_fe17_sock} {
560 txreq
561 rxresp
562 expect resp.status == 200
563} -start
564
565client c19 -connect ${h1_fe19_sock} {
566 txreq
567 rxresp
568 expect resp.status == 200
569} -start
570
571client c21 -connect ${h1_fe21_sock} {
572 txreq
573 rxresp
574 expect resp.status == 200
575} -start
576
577client c23 -connect ${h1_fe23_sock} {
578 txreq
579 rxresp
580 expect resp.status == 200
581} -start
582
583client c25 -connect ${h1_fe25_sock} {
584 txreq
585 rxresp
586 expect resp.status == 200
587} -start
588
589client c27 -connect ${h1_fe27_sock} {
590 txreq
591 rxresp
592 expect resp.status == 200
593} -start
594
595client c29 -connect ${h1_fe29_sock} {
596 txreq
597 rxresp
598 expect resp.status == 200
599} -start
600
601client c31 -connect ${h1_fe31_sock} {
602 txreq
603 rxresp
604 expect resp.status == 200
605} -start
606
607client c33 -connect ${h1_fe33_sock} {
608 txreq
609 rxresp
610 expect resp.status == 200
611} -start
612
613client c35 -connect ${h1_fe35_sock} {
614 txreq
615 rxresp
616 expect resp.status == 200
617} -start
618
619client c37 -connect ${h1_fe37_sock} {
620 txreq
621 rxresp
622 expect resp.status == 200
623} -start
624
625client c39 -connect ${h1_fe39_sock} {
626 txreq
627 rxresp
628 expect resp.status == 200
629} -start
630
631client c1 -wait
632client c3 -wait
633client c5 -wait
634client c7 -wait
635client c9 -wait
636client c11 -wait
637client c13 -wait
638client c15 -wait
639client c17 -wait
640client c19 -wait
641client c21 -wait
642client c23 -wait
643client c25 -wait
644client c27 -wait
645client c29 -wait
646client c31 -wait
647client c33 -wait
648client c35 -wait
649client c37 -wait
650client c39 -wait
651
652server s1 -wait
653server s3 -wait
654server s5 -wait
655server s7 -wait
656server s9 -wait
657server s11 -wait
658server s13 -wait
659server s15 -wait
660server s17 -wait
661server s19 -wait
662server s21 -wait
663server s23 -wait
664server s25 -wait
665server s27 -wait
666server s29 -wait
667server s31 -wait
668server s33 -wait
669server s35 -wait
670server s37 -wait
671server s39 -wait
672
673
674haproxy h1 -cli {
675 send "show servers state"
676 expect ~ "# be_id be_name srv_id srv_name srv_addr srv_op_state srv_admin_state srv_uweight srv_iweight srv_time_since_last_change srv_check_status srv_check_result srv_check_health srv_check_state srv_agent_state bk_f_forced_id srv_f_forced_id srv_fqdn srv_port srvrecord\n2 be1 1 srv1 ${s1_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s1_port} -\n2 be1 2 srv0 ${s0_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s0_port} -\n3 be3 1 srv3 ${s3_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s3_port} -\n3 be3 2 srv2 ${s2_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s2_port} -\n4 be5 1 srv5 ${s5_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s5_port} -\n4 be5 2 srv4 ${s4_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s4_port} -\n5 be7 1 srv7 ${s7_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s7_port} -\n5 be7 2 srv6 ${s6_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s6_port} -\n6 be9 1 srv9 ${s9_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s9_port} -\n6 be9 2 srv8 ${s8_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s8_port} -\n7 be11 1 srv11 ${s11_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s11_port} -\n7 be11 2 srv10 ${s10_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s10_port} -\n8 be13 1 srv13 ${s13_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s13_port} -\n8 be13 2 srv12 ${s12_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s12_port} -\n9 be15 1 srv15 ${s15_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s15_port} -\n9 be15 2 srv14 ${s14_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s14_port} -\n10 be17 1 srv17 ${s17_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s17_port} -\n10 be17 2 srv16 ${s16_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s16_port} -\n11 be19 1 srv19 ${s19_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s19_port} -\n11 be19 2 srv18 ${s18_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s18_port} -\n12 be21 1 srv21 ${s21_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s21_port} -\n12 be21 2 srv20 ${s20_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s20_port} -\n13 be23 1 srv23 ${s23_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s23_port} -\n13 be23 2 srv22 ${s22_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s22_port} -\n14 be25 1 srv25 ${s25_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s25_port} -\n14 be25 2 srv24 ${s24_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s24_port} -\n15 be27 1 srv27 ${s27_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s27_port} -\n15 be27 2 srv26 ${s26_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s26_port} -\n16 be29 1 srv29 ${s29_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s29_port} -\n16 be29 2 srv28 ${s28_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s28_port} -\n17 be31 1 srv31 ${s31_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s31_port} -\n17 be31 2 srv30 ${s30_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s30_port} -\n18 be33 1 srv33 ${s33_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s33_port} -\n18 be33 2 srv32 ${s32_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s32_port} -\n19 be35 1 srv35 ${s35_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s35_port} -\n19 be35 2 srv34 ${s34_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s34_port} -\n20 be37 1 srv37 ${s37_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s37_port} -\n20 be37 2 srv36 ${s36_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s36_port} -\n21 be39 1 srv39 ${s39_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s39_port} -\n21 be39 2 srv38 ${s38_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s38_port} -\n"
677}
678