1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-12 09:18:10 +03:00
samba-mirror/ctdb/tests/simple/17_ctdb_config_delete_ip.sh
Martin Schwenke bf197d097f tests: Rename ctdb_test_functions.bash to integration.bash
Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit 79adb50b3ce3873c3baf9e6715c1d1c3f181ce43)
2012-04-27 15:40:43 +10:00

76 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
test_info()
{
cat <<EOF
Verify that a node's public IP address can be deleted using 'ctdb deleteip'.
This test does not do any network level checks that the IP address is
no longer reachable but simply trusts 'ctdb ip' that the address has
been deleted.
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. Use 'ctdb ip' on one of the nodes to list the IP addresses being
served.
3. Delete one public IP address being be served by the node, using
'ctdb delip'.
4. Verify that the delete IP address is no longer listed using the
all_ips_on_node helper function.
Expected results:
* 'ctdb delip' removes an IP address from the list of public IP
addresses being served by a node.
EOF
}
. "${TEST_SCRIPTS_DIR}/integration.bash"
ctdb_test_init "$@"
set -e
cluster_is_healthy
# Reset configuration
ctdb_restart_when_done
echo "Getting list of public IPs..."
all_ips_on_node -v 0
# Select an IP/node to remove.
num_ips=$(echo "$out" | wc -l)
num_to_remove=$(($RANDOM % $num_ips))
# Find the details in the list.
i=0
while [ $i -le $num_to_remove ] ; do
read ip_to_remove test_node
i=$(($i + 1))
done <<<"$out"
echo "Attempting to remove ${ip_to_remove} from node ${test_node}."
try_command_on_node $test_node $CTDB delip $ip_to_remove
echo "Sleeping..."
sleep_for 1
test_node_ips=""
while read ip pnn ; do
[ "$pnn" = "$test_node" ] && \
test_node_ips="${test_node_ips}${test_node_ips:+ }${ip}"
done <<<"$out" # bashism to avoid problem setting variable in pipeline.
if [ "${test_node_ips/${ip_to_remove}}" = "$test_node_ips" ] ; then
echo "GOOD: That worked!"
else
echo "BAD: The remove IP address is still there!"
testfailures=1
fi