mirror of
https://github.com/samba-team/samba.git
synced 2025-03-11 16:58:40 +03:00
ctdb-tests: Improve test coverage for leader role yield and elections
Rename test, clean up node selection. Duplicate for for banning and removing leader capability cases. Repeat all 3 tests without cluster lock. All of the standard election triggers are now tested, with and without cluster lock. Due to test cluster configuration limitations, the tests without cluster lock are skipped on a real cluster. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
This commit is contained in:
parent
5d31778149
commit
01313ea243
@ -8,13 +8,19 @@ set -e
|
||||
|
||||
ctdb_test_init
|
||||
|
||||
leader_get 0
|
||||
# This is the node used to execute commands
|
||||
select_test_node
|
||||
echo
|
||||
|
||||
# test_node set by select_test_node()
|
||||
# shellcheck disable=SC2154
|
||||
leader_get "$test_node"
|
||||
|
||||
# leader set by leader_get()
|
||||
# shellcheck disable=SC2154
|
||||
echo "Stopping leader ${leader}..."
|
||||
ctdb_onnode 1 stop -n "$leader"
|
||||
ctdb_onnode "$test_node" stop -n "$leader"
|
||||
|
||||
wait_until_node_has_status "$leader" stopped
|
||||
|
||||
wait_until_leader_has_changed 0
|
||||
wait_until_leader_has_changed "$test_node"
|
26
ctdb/tests/INTEGRATION/simple/cluster.002.ban_leader_yield.sh
Executable file
26
ctdb/tests/INTEGRATION/simple/cluster.002.ban_leader_yield.sh
Executable file
@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Verify that 'ctdb ban' causes a node to yield the leader role
|
||||
|
||||
. "${TEST_SCRIPTS_DIR}/integration.bash"
|
||||
|
||||
set -e
|
||||
|
||||
ctdb_test_init
|
||||
|
||||
# This is the node used to execute commands
|
||||
select_test_node
|
||||
echo
|
||||
|
||||
# test_node set by select_test_node()
|
||||
# shellcheck disable=SC2154
|
||||
leader_get "$test_node"
|
||||
|
||||
# leader set by leader_get()
|
||||
# shellcheck disable=SC2154
|
||||
echo "Banning leader ${leader}..."
|
||||
ctdb_onnode "$test_node" ban 300 -n "$leader"
|
||||
|
||||
wait_until_node_has_status "$leader" banned
|
||||
|
||||
wait_until_leader_has_changed "$test_node"
|
24
ctdb/tests/INTEGRATION/simple/cluster.003.capability_leader_yield.sh
Executable file
24
ctdb/tests/INTEGRATION/simple/cluster.003.capability_leader_yield.sh
Executable file
@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Verify that 'ctdb ban' causes a node to yield the leader role
|
||||
|
||||
. "${TEST_SCRIPTS_DIR}/integration.bash"
|
||||
|
||||
set -e
|
||||
|
||||
ctdb_test_init
|
||||
|
||||
# This is the node used to execute commands
|
||||
select_test_node
|
||||
echo
|
||||
|
||||
# test_node set by select_test_node()
|
||||
# shellcheck disable=SC2154
|
||||
leader_get "$test_node"
|
||||
|
||||
# leader set by leader_get()
|
||||
# shellcheck disable=SC2154
|
||||
echo "Removing leader capability from leader ${leader}..."
|
||||
ctdb_onnode "$test_node" setleaderrole off -n "$leader"
|
||||
|
||||
wait_until_leader_has_changed "$test_node"
|
30
ctdb/tests/INTEGRATION/simple/cluster.006.stop_leader_yield_no_lock.sh
Executable file
30
ctdb/tests/INTEGRATION/simple/cluster.006.stop_leader_yield_no_lock.sh
Executable file
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Verify that 'ctdb stop' causes a node to yield the leader role
|
||||
|
||||
. "${TEST_SCRIPTS_DIR}/integration.bash"
|
||||
|
||||
set -e
|
||||
|
||||
ctdb_test_skip_on_cluster
|
||||
|
||||
ctdb_test_init -n
|
||||
|
||||
ctdb_nodes_start_custom -C "cluster lock"
|
||||
|
||||
# This is the node used to execute commands
|
||||
select_test_node
|
||||
echo
|
||||
|
||||
# test_node set by select_test_node()
|
||||
# shellcheck disable=SC2154
|
||||
leader_get "$test_node"
|
||||
|
||||
# leader set by leader_get()
|
||||
# shellcheck disable=SC2154
|
||||
echo "Stopping leader ${leader}..."
|
||||
ctdb_onnode "$test_node" stop -n "$leader"
|
||||
|
||||
wait_until_node_has_status "$leader" stopped
|
||||
|
||||
wait_until_leader_has_changed "$test_node"
|
30
ctdb/tests/INTEGRATION/simple/cluster.007.ban_leader_yield_no_lock.sh
Executable file
30
ctdb/tests/INTEGRATION/simple/cluster.007.ban_leader_yield_no_lock.sh
Executable file
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Verify that 'ctdb ban' causes a node to yield the leader role
|
||||
|
||||
. "${TEST_SCRIPTS_DIR}/integration.bash"
|
||||
|
||||
set -e
|
||||
|
||||
ctdb_test_skip_on_cluster
|
||||
|
||||
ctdb_test_init -n
|
||||
|
||||
ctdb_nodes_start_custom -C "cluster lock"
|
||||
|
||||
# This is the node used to execute commands
|
||||
select_test_node
|
||||
echo
|
||||
|
||||
# test_node set by select_test_node()
|
||||
# shellcheck disable=SC2154
|
||||
leader_get "$test_node"
|
||||
|
||||
# leader set by leader_get()
|
||||
# shellcheck disable=SC2154
|
||||
echo "Banning leader ${leader}..."
|
||||
ctdb_onnode "$test_node" ban 300 -n "$leader"
|
||||
|
||||
wait_until_node_has_status "$leader" banned
|
||||
|
||||
wait_until_leader_has_changed "$test_node"
|
28
ctdb/tests/INTEGRATION/simple/cluster.008.capability_leader_yield_no_lock.sh
Executable file
28
ctdb/tests/INTEGRATION/simple/cluster.008.capability_leader_yield_no_lock.sh
Executable file
@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Verify that 'ctdb ban' causes a node to yield the leader role
|
||||
|
||||
. "${TEST_SCRIPTS_DIR}/integration.bash"
|
||||
|
||||
set -e
|
||||
|
||||
ctdb_test_skip_on_cluster
|
||||
|
||||
ctdb_test_init -n
|
||||
|
||||
ctdb_nodes_start_custom -C "cluster lock"
|
||||
|
||||
# This is the node used to execute commands
|
||||
select_test_node
|
||||
echo
|
||||
|
||||
# test_node set by select_test_node()
|
||||
# shellcheck disable=SC2154
|
||||
leader_get "$test_node"
|
||||
|
||||
# leader set by leader_get()
|
||||
# shellcheck disable=SC2154
|
||||
echo "Removing leader capability from leader ${leader}..."
|
||||
ctdb_onnode "$test_node" setleaderrole off -n "$leader"
|
||||
|
||||
wait_until_leader_has_changed "$test_node"
|
Loading…
x
Reference in New Issue
Block a user