diff options
author | Martin Schwenke <martin@meltin.net> | 2009-12-18 14:42:58 +1100 |
---|---|---|
committer | Martin Schwenke <martin@meltin.net> | 2009-12-18 14:42:58 +1100 |
commit | 5e92afeb336088a68ce712c01a217495417497ee (patch) | |
tree | 43843de6bcf1ef76955a803569d593be15339186 /ctdb/tests | |
parent | e2e30df2e937c59b1acb20fa47642a0e9ba39a0f (diff) | |
download | samba-5e92afeb336088a68ce712c01a217495417497ee.tar.gz samba-5e92afeb336088a68ce712c01a217495417497ee.tar.xz samba-5e92afeb336088a68ce712c01a217495417497ee.zip |
Test suite: allow settign of timeout triggers for all events not just monitor.
Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit f319bd54369a2bc7d32c3bda7fc22f2ef1a51c3a)
Diffstat (limited to 'ctdb/tests')
-rw-r--r-- | ctdb/tests/scripts/ctdb_test_functions.bash | 45 |
1 files changed, 34 insertions, 11 deletions
diff --git a/ctdb/tests/scripts/ctdb_test_functions.bash b/ctdb/tests/scripts/ctdb_test_functions.bash index 832a42bf168..1bc540716c8 100644 --- a/ctdb/tests/scripts/ctdb_test_functions.bash +++ b/ctdb/tests/scripts/ctdb_test_functions.bash @@ -937,6 +937,17 @@ ctdb_test_eventscript_unhealthy_detected () ctdb_test_eventscript_file_${cmd} "$pnn" "unhealthy-detected" } +# Handle a trigger that causes 99.ctdb_test to timeout it's monitor +# event. This should cause the node to be banned. +ctdb_test_eventscript_timeout_trigger () +{ + local cmd="$1" + local pnn="$2" + local event="$3" + + ctdb_test_eventscript_file_${cmd} "$pnn" "${event}-timeout" +} + # Note that the eventscript can't use the above functions! ctdb_test_eventscript_install () { @@ -949,16 +960,28 @@ rm -vf "/tmp/ctdb-test-flag-${1}.${pnn}" trigger="/tmp/ctdb-test-unhealthy-trigger.${pnn}" detected="/tmp/ctdb-test-unhealthy-detected.${pnn}" -if [ "$1" = "monitor" ] ; then - if [ -e "$trigger" ] ; then - echo "${0}: Unhealthy because \"$trigger\" detected" - touch "$detected" - exit 1 - elif [ -e "$detected" -a ! -e "$trigger" ] ; then - echo "${0}: Healthy again, \"$trigger\" no longer detected" - rm "$detected" - fi -fi +timeout_trigger="/tmp/ctdb-test-${1}-timeout.${pnn}" +case "$1" in + monitor) + if [ -e "$trigger" ] ; then + echo "${0}: Unhealthy because \"$trigger\" detected" + touch "$detected" + exit 1 + elif [ -e "$detected" -a ! -e "$trigger" ] ; then + echo "${0}: Healthy again, \"$trigger\" no longer detected" + rm "$detected" + fi + + ;; + *) + if [ -e "$timeout_trigger" ] ; then + echo "${0}: Sleeping for a long time because \"$timeout_trigger\" detected" + sleep 9999 + fi + ;; + *) + +esac exit 0 ' @@ -976,7 +999,7 @@ wait_for_monitor_event () { local pnn="$1" - echo "Waiting for a monitor event on node $pnn to complete..." + echo "Waiting for a monitor event on node ${pnn}..." ctdb_test_eventscript_flag create $pnn "monitor" wait_until 120 ! ctdb_test_eventscript_flag exists $pnn "monitor" |