mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-03-14 03:22:06 +01:00
REGTESTS: add dynamic backend creation test
Add a new regtests to validate backend creation at runtime. A server is then added and requests made to validate the newly created instance before (with force-be-switch) and after publishing.
This commit is contained in:
parent
5753c14e84
commit
d7cdd2c7f4
84
reg-tests/proxy/cli_add_backend.vtc
Normal file
84
reg-tests/proxy/cli_add_backend.vtc
Normal file
@ -0,0 +1,84 @@
|
||||
varnishtest "Add backend via cli"
|
||||
|
||||
feature ignore_unknown_macro
|
||||
|
||||
haproxy hsrv -conf {
|
||||
global
|
||||
.if feature(THREAD)
|
||||
thread-groups 1
|
||||
.endif
|
||||
|
||||
defaults
|
||||
mode http
|
||||
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
|
||||
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
|
||||
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
|
||||
|
||||
frontend fe
|
||||
bind "fd@${fe}"
|
||||
http-request return status 200
|
||||
} -start
|
||||
|
||||
haproxy h1 -conf {
|
||||
global
|
||||
.if feature(THREAD)
|
||||
thread-groups 1
|
||||
.endif
|
||||
|
||||
defaults
|
||||
mode http
|
||||
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
|
||||
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
|
||||
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
|
||||
|
||||
frontend fe
|
||||
bind "fd@${feS}"
|
||||
force-be-switch if { req.hdr("x-admin") "1" }
|
||||
use_backend %[req.hdr(x-be)]
|
||||
|
||||
defaults def
|
||||
|
||||
defaults def_http
|
||||
mode http
|
||||
} -start
|
||||
|
||||
client c1 -connect ${h1_feS_sock} {
|
||||
txreq -hdr "x-be: be"
|
||||
rxresp
|
||||
expect resp.status == 503
|
||||
} -run
|
||||
|
||||
haproxy h1 -cli {
|
||||
# non existent backend
|
||||
send "experimental-mode on; add backend be from def"
|
||||
expect ~ "Mode is required"
|
||||
|
||||
send "experimental-mode on; add backend be from def_http"
|
||||
expect ~ "New backend registered."
|
||||
|
||||
send "add server be/srv ${hsrv_fe_addr}:${hsrv_fe_port}"
|
||||
expect ~ "New server registered."
|
||||
send "enable server be/srv"
|
||||
expect ~ ".*"
|
||||
}
|
||||
|
||||
client c1 -connect ${h1_feS_sock} {
|
||||
txreq -hdr "x-be: be"
|
||||
rxresp
|
||||
expect resp.status == 503
|
||||
|
||||
txreq -hdr "x-be: be" -hdr "x-admin: 1"
|
||||
rxresp
|
||||
expect resp.status == 200
|
||||
} -run
|
||||
|
||||
haproxy h1 -cli {
|
||||
send "publish backend be"
|
||||
expect ~ "Backend published."
|
||||
}
|
||||
|
||||
client c1 -connect ${h1_feS_sock} {
|
||||
txreq -hdr "x-be: be"
|
||||
rxresp
|
||||
expect resp.status == 200
|
||||
} -run
|
||||
Loading…
x
Reference in New Issue
Block a user