haproxy/reg-tests/server/cli_add_server.vtc
Amaury Denoyelle 79e6d2a7ad REGTESTS: wait for proper return of enable server in cli add server test
Add an empty expect statement after the 'enable server' cli command.
This ensures that the command has been properly handled by haproxy and
its processing is over.

It should fix the unstable behavior of the test which causes reports of
503 even after the server has been enabled.

This should fix the github issue #1188.
2021-03-22 11:52:48 +01:00

93 lines
2.1 KiB
Plaintext

varnishtest "Add server via cli"
feature ignore_unknown_macro
#REQUIRE_VERSION=2.4
server s1 {
rxreq
txresp
} -start
haproxy h1 -conf {
defaults
mode http
${no-htx} option http-use-htx
timeout connect 1s
timeout client 1s
timeout server 1s
frontend fe
bind "fd@${feS}"
default_backend test
backend test
balance random
backend other
balance static-rr
backend other2
balance random
mode tcp
} -start
client c1 -connect ${h1_feS_sock} {
txreq
rxresp
expect resp.status == 503
} -run
haproxy h1 -cli {
# experimental mode disabled
send "add server foo/s1 ${s1_addr}:${s1_port}"
expect ~ "This command is restricted to experimental mode only."
# non existent backend
send "experimental-mode on; add server foo/s1 ${s1_addr}:${s1_port}"
expect ~ "No such backend."
# missing address
send "experimental-mode on; add server test/s1"
expect ~ "'server' expects <name> and <addr>\\[:<port>\\] as arguments."
# invalid load-balancing algo
send "experimental-mode on; add server other/s1 ${s1_addr}:${s1_port}"
expect ~ "Backend must use a consistent hashing method for load balancing to support dynamic servers."
# invalid mux proto
send "experimental-mode on; add server other2/s1 ${s1_addr}:${s1_port} proto h2"
expect ~ "MUX protocol is not usable for server."
# valid command
send "experimental-mode on; add server test/s1 ${s1_addr}:${s1_port}"
expect ~ "New server registered."
# duplicate server
send "experimental-mode on; add server test/s1 ${s1_addr}:${s1_port}"
expect ~ "Already exists a server with the same name in backend."
# valid command
# specify the proto, it should be accepted for this backend
send "experimental-mode on; add server test/s2 ${s1_addr}:${s1_port} proto h2"
expect ~ "New server registered."
}
# dynamic servers are created on MAINT mode and should not be available at first
client c2 -connect ${h1_feS_sock} {
txreq
rxresp
expect resp.status == 503
} -run
haproxy h1 -cli {
send "enable server test/s1"
expect ~ ".*"
}
client c3 -connect ${h1_feS_sock} {
txreq
rxresp
expect resp.status == 200
} -run