mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
b2d1cea1f3
These commands are now replaced with ctdb event ... ctdb scriptstatus is maintained for backward compatibility. Signed-off-by: Amitay Isaacs <amitay@gmail.com> Reviewed-by: Martin Schwenke <martin@meltin.net>
82 lines
2.2 KiB
Bash
Executable File
82 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
test_info()
|
|
{
|
|
cat <<EOF
|
|
Verify that the recovery daemon handles unhosted IPs properly.
|
|
|
|
This test does not do any network level checks to make sure the IP
|
|
address is actually on an interface. It just consults "ctdb ip".
|
|
|
|
This is a variation of the "addip" test.
|
|
EOF
|
|
}
|
|
|
|
. "${TEST_SCRIPTS_DIR}/integration.bash"
|
|
|
|
ctdb_test_init "$@"
|
|
|
|
set -e
|
|
|
|
cluster_is_healthy
|
|
|
|
# Reset configuration
|
|
ctdb_restart_when_done
|
|
|
|
select_test_node_and_ips
|
|
|
|
echo "Running test against node $test_node and IP $test_ip"
|
|
|
|
get_test_ip_mask_and_iface
|
|
|
|
echo "Deleting IP $test_ip from all nodes"
|
|
delete_ip_from_all_nodes $test_ip
|
|
try_command_on_node -v $test_node $CTDB ipreallocate
|
|
wait_until_ips_are_on_node ! $test_node $test_ip
|
|
|
|
try_command_on_node -v all $CTDB ip
|
|
|
|
my_exit_hook ()
|
|
{
|
|
if [ -z "$TEST_LOCAL_DAEMONS" ] ; then
|
|
onnode -q all $CTDB event script enable "10.interface"
|
|
fi
|
|
}
|
|
|
|
ctdb_test_exit_hook_add my_exit_hook
|
|
|
|
# This forces us to wait until the ipreallocated associated with the
|
|
# delips is complete.
|
|
try_command_on_node $test_node $CTDB sync
|
|
|
|
# Wait for a monitor event. Then the next steps are unlikely to occur
|
|
# in the middle of a monitor event and will have the expected effect.
|
|
wait_for_monitor_event $test_node
|
|
|
|
if [ -z "$TEST_LOCAL_DAEMONS" ] ; then
|
|
# Stop monitor events from bringing up the link status of an interface
|
|
try_command_on_node $test_node $CTDB event script disable 10.interface
|
|
fi
|
|
|
|
echo "Marking interface $iface down on node $test_node"
|
|
try_command_on_node $test_node $CTDB setifacelink $iface down
|
|
|
|
echo "Adding IP $test_ip to node $test_node"
|
|
try_command_on_node $test_node $CTDB addip $test_ip/$mask $iface
|
|
try_command_on_node $test_node $CTDB ipreallocate
|
|
|
|
echo "Wait long enough for IP verification to have taken place"
|
|
sleep_for 15
|
|
|
|
echo "Ensuring that IP ${test_ip} is not hosted on node ${test_node} when interface is down"
|
|
if ips_are_on_node '!' $test_node $test_ip; then
|
|
echo "GOOD: the IP has not been hosted while the interface is down"
|
|
else
|
|
echo "BAD: the IP is hosted but the interface is down"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Marking interface $iface up on node $test_node"
|
|
try_command_on_node $test_node $CTDB setifacelink $iface up
|
|
wait_until_ips_are_on_node $test_node $test_ip
|