-
-
Notifications
You must be signed in to change notification settings - Fork 36
/
Copy pathlayer.vtc
92 lines (75 loc) · 1.75 KB
/
layer.vtc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
varnishtest "Layering test"
feature cmd "getent hosts localhost"
server s1 {
rxreq
txresp
rxreq
txresp
rxreq
txresp
} -start
varnish v1 -vcl {backend none none;} -start
shell {
cat >${tmpdir}/layer.vcl <<-EOF
vcl 4.1;
import ${vmod_dynamic};
import directors;
import std;
backend s1 {
.host = "localhost";
.port = "${s1_port}";
}
sub vcl_init {
new d1 = dynamic.director(
domain_usage_timeout = 0.1s,
port = "${s1_port}");
d1.debug(true);
new rr = directors.round_robin();
rr.add_backend(d1.backend("localhost"));
std.log("Resolve: " + rr.backend().resolve());
}
sub vcl_recv {
std.log("Resolve: " + rr.backend().resolve());
set req.backend_hint = rr.backend();
return (pass);
}
sub vcl_backend_error {
# the director may resolve ::1 first
return (retry);
}
EOF
}
logexpect l1 -v v1 -d 1 -g raw {
expect * 0 VCL_Log "Resolve: d1"
} -start
logexpect l2 -v v1 -q "vxid == 1001" {
expect * 1001 VCL_Log "Resolve: d1"
} -start
varnish v1 -cliok "vcl.load vclX1 ${tmpdir}/layer.vcl"
varnish v1 -cliok "vcl.use vclX1"
varnish v1 -cliok "vcl.discard vcl1"
varnish v1 -cliok "backend.list"
client c1 {
txreq
rxresp
expect resp.status == 200
delay 0.2
txreq
rxresp
expect resp.status == 200
delay 0.2
txreq
rxresp
expect resp.status == 200
} -run
varnish v1 -expect VBE.vclX1.d1(${s1_addr}:${s1_port}).req == 3
varnish v1 -expect LCK.dynamic.director.creat > 0
varnish v1 -expect LCK.dynamic.backend.creat > 0
logexpect l1 -wait
logexpect l2 -wait
# load as cold and discard
varnish v1 -cliok "vcl.load vclX2 ${tmpdir}/layer.vcl cold"
varnish v1 -cliok "vcl.discard vclX2"
varnish v1 -vcl { backend none none; }
varnish v1 -cliok "vcl.discard vclX1"
varnish v1 -vsl_catchup