1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-28 17:47:29 +03:00
samba-mirror/ctdb/tests/simple/11_ctdb_ip.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

62 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
test_info()
{
cat <<EOF
Verify that 'ctdb ip' shows the correct output.
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. Run 'ctdb ip' on one of the nodes and verify the list of IP
addresses displayed (cross check the result with the output of
'ip addr show' on the node).
3. Verify that colon-separated output is generated with the -Y option.
Expected results:
* 'ctdb ip' shows the list of public IPs being served by a node.
EOF
}
. ctdb_test_functions.bash
ctdb_test_init "$@"
set -e
cluster_is_healthy
echo "Getting list of public IPs..."
try_command_on_node -v 1 $CTDB ip -n all
ips=$(echo "$out" | sed -e '1d')
colons=$(echo "$ips" | sed -e 's@^@:@' -e 's@$@:@' -e 's@ @:@')
while read ip pnn ; do
try_command_on_node $pnn "ip addr show"
if [ "${out/inet ${ip}\/}" != "$out" ] ; then
echo "GOOD: node $pnn appears to have $ip assigned"
else
echo "BAD: node $pnn does not appear to have $ip assigned"
testfailures=1
fi
done <<<"$ips" # bashism to avoid problem setting variable in pipeline.
[ "$testfailures" != 1 ] && echo "Looks good!"
cmd="$CTDB -Y ip -n all | sed -e '1d'"
echo "Checking that \"$cmd\" produces expected output..."
try_command_on_node 1 "$cmd"
if [ "$out" = "$colons" ] ; then
echo "Yep, looks good!"
else
echo "Nope, it looks like this:"
echo "$out"
testfailures=1
fi