mirror of
https://github.com/haproxy/haproxy.git
synced 2026-02-19 02:29:31 -05:00
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.
84 lines
1.6 KiB
Text
84 lines
1.6 KiB
Text
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
|