mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-20 13:21:29 +02:00
A few tests explicitly rely on the server ordering granted by "balance roundrobin", but didn't specify the balance algorithm. As it will change soon, let's explicit it.
99 lines
1.9 KiB
Plaintext
99 lines
1.9 KiB
Plaintext
# This script is to test the proper behavior with dynamic servers insertion and
|
|
# deletion, in particular with the load-balancing of requests.
|
|
#
|
|
varnishtest "Delete server via cli"
|
|
|
|
feature ignore_unknown_macro
|
|
|
|
# static server
|
|
server s1 -repeat 3 {
|
|
rxreq
|
|
txresp \
|
|
-body "resp from s1"
|
|
} -start
|
|
|
|
# use as a dynamic server, added then deleted via CLI
|
|
server s2 -repeat 3 {
|
|
rxreq
|
|
txresp \
|
|
-body "resp from s2"
|
|
} -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}"
|
|
default_backend test
|
|
|
|
backend test
|
|
balance roundrobin
|
|
server s1 ${s1_addr}:${s1_port}
|
|
} -start
|
|
|
|
# add a new dynamic server to be able to delete it then
|
|
haproxy h1 -cli {
|
|
# add a dynamic server and enable it
|
|
send "add server test/s2 ${s2_addr}:${s2_port}"
|
|
expect ~ "New server registered."
|
|
|
|
send "enable server test/s2"
|
|
expect ~ ".*"
|
|
}
|
|
|
|
haproxy h1 -cli {
|
|
# non existent backend
|
|
send "del server foo/s1"
|
|
expect ~ "No such backend."
|
|
|
|
# non existent server
|
|
send "del server test/other"
|
|
expect ~ "No such server."
|
|
}
|
|
|
|
# first check that both servers are active
|
|
client c1 -connect ${h1_feS_sock} {
|
|
txreq
|
|
rxresp
|
|
expect resp.body == "resp from s1"
|
|
|
|
txreq
|
|
rxresp
|
|
expect resp.body == "resp from s2"
|
|
} -run
|
|
|
|
# delete the dynamic server
|
|
haproxy h1 -cli {
|
|
# server not in maintenance mode
|
|
send "del server test/s2"
|
|
expect ~ "Only servers in maintenance mode can be deleted."
|
|
|
|
send "disable server test/s2"
|
|
expect ~ ".*"
|
|
|
|
# valid command
|
|
send "del server test/s2"
|
|
expect ~ "Server deleted."
|
|
}
|
|
|
|
# now check that only the first server is used
|
|
client c2 -connect ${h1_feS_sock} {
|
|
txreq
|
|
rxresp
|
|
expect resp.body == "resp from s1"
|
|
|
|
txreq
|
|
rxresp
|
|
expect resp.body == "resp from s1"
|
|
} -run
|
|
|