1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-27 14:04:05 +03:00
samba-mirror/ctdb/tests/simple/04_ctdb_setvar.sh
Martin Schwenke 96b3517356 Test suite: better debug info when the cluster is unexpectedly unhealthy.
cluster_is_healthy() is now run locally in tests and internally causes
_cluster_is_healthy() to be run on node 0.  When it detects that the
cluster is unhealthy and $ctdb_test_restart_scheduled is not true,
debug information is printed.  This replaces the previous use of
$CTDB_TEST_CLEANING_UP.

To avoid spurious debug on expected restarts, added scheduled
restarts to several tests.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit ee7caae3a55a64fb50cd28fa2fd4663c5dd83b4f)
2009-07-06 17:52:11 +10:00

80 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
test_info()
{
cat <<EOF
Verify that 'ctdb setvar' works correctly.
Doesn't strictly follow the procedure outlines below, since it doesn't
pick a variable from the output of 'ctdb listvars'. However, it
verifies the value with 'ctdb getvar' in addition to 'ctdb listvars'.
Prerequisites:
* An active CTDB cluster with at least 2 active nodes.
Steps:
1. Verify that the status on all of the ctdb nodes is 'OK'.
2. Get a list of all the ctdb tunable variables, using the 'ctdb
listvars' command.
3. Set the value of one of the variables using the 'setvar' control on
one of the nodes. E.g. 'ctdb setvar DeterministicIPs 0'.
4. Verify that the 'listvars' control now shows the new value for the
variable.
Expected results:
* After setting a value using 'ctdb setvar', 'ctdb listvars' shows the
modified value of the variable.
EOF
}
. ctdb_test_functions.bash
ctdb_test_init "$@"
set -e
cluster_is_healthy
# Reset configuration
ctdb_restart_when_done
var="RecoverTimeout"
try_command_on_node -v 0 $CTDB getvar $var
val="${out#*= }"
echo "Going to try incrementing it..."
incr=$(($val + 1))
try_command_on_node 0 $CTDB setvar $var $incr
echo "That seemed to work, let's check the value..."
try_command_on_node -v 0 $CTDB getvar $var
newval="${out#*= }"
if [ "$incr" != "$newval" ] ; then
echo "Nope, that didn't work..."
exit 1
fi
echo "Look's good! Now verifying with \"ctdb listvars\""
try_command_on_node -v 0 "$CTDB listvars | grep '^$var'"
check="${out#*= }"
if [ "$incr" != "$check" ] ; then
echo "Nope, that didn't work..."
exit 1
fi
echo "Look's good! Putting the old value back..."
cmd="$CTDB setvar $var $val"
try_command_on_node 0 $cmd