1
0
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:
Martin Schwenke 2022-01-14 23:09:38 +11:00 committed by Martin Schwenke
parent 5d31778149
commit 01313ea243
6 changed files with 147 additions and 3 deletions

View File

@ -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"

View 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"

View 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"

View 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"

View 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"

View 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"