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
