mirror of
https://github.com/samba-team/samba.git
synced 2025-08-26 01:49:31 +03:00
ctdb-tests: Fix logic error in simple ctdb reloadips test
There is a chance that restoring IP addresses to the test node will
result in different IP addresses being assigned to that node.
Removing a single IP address may then fail (or be a no-op) if it is
done after the restore.
So, swap the single IP address removal to happen first, then restore,
then remove all IP addresses.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13924
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
(cherry picked from commit dc89db8ca6
)
This commit is contained in:
committed by
Karolin Seeger
parent
9f679ba14d
commit
24d70220b2
@ -32,8 +32,6 @@ ctdb_restart_when_done
|
||||
|
||||
select_test_node_and_ips
|
||||
|
||||
echo "Emptying public addresses file on $test_node"
|
||||
|
||||
try_command_on_node $test_node $CTDB_TEST_WRAPPER ctdb_base_show
|
||||
addresses="${out}/public_addresses"
|
||||
echo "Public addresses file on node $test_node is \"$addresses\""
|
||||
@ -72,44 +70,6 @@ do_ctdb_reloadips ()
|
||||
done
|
||||
}
|
||||
|
||||
try_command_on_node $test_node "mv $addresses $backup && touch $addresses"
|
||||
|
||||
do_ctdb_reloadips
|
||||
|
||||
echo "Getting list of public IPs on node $test_node"
|
||||
try_command_on_node $test_node "$CTDB ip | tail -n +2"
|
||||
|
||||
if [ -n "$out" ] ; then
|
||||
cat <<EOF
|
||||
BAD: node $test_node still has ips:
|
||||
$out
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "GOOD: no IPs left on node $test_node"
|
||||
|
||||
try_command_on_node any $CTDB sync
|
||||
|
||||
echo "Restoring addresses"
|
||||
restore_public_addresses
|
||||
|
||||
do_ctdb_reloadips
|
||||
|
||||
echo "Getting list of public IPs on node $test_node"
|
||||
try_command_on_node $test_node "$CTDB ip | tail -n +2"
|
||||
|
||||
if [ -z "$out" ] ; then
|
||||
echo "BAD: node $test_node has no ips"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cat <<EOF
|
||||
GOOD: node $test_node has these addresses:
|
||||
$out
|
||||
EOF
|
||||
|
||||
try_command_on_node any $CTDB sync
|
||||
|
||||
echo "Removing IP $test_ip from node $test_node"
|
||||
|
||||
@ -131,3 +91,46 @@ cat <<EOF
|
||||
GOOD: node $test_node is no longer hosting IP $test_ip:
|
||||
$out
|
||||
EOF
|
||||
|
||||
try_command_on_node any $CTDB sync
|
||||
|
||||
|
||||
echo "Restoring addresses"
|
||||
restore_public_addresses
|
||||
|
||||
do_ctdb_reloadips
|
||||
|
||||
echo "Getting list of public IPs on node $test_node"
|
||||
try_command_on_node $test_node "$CTDB ip | tail -n +2"
|
||||
|
||||
if [ -z "$out" ] ; then
|
||||
echo "BAD: node $test_node has no ips"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cat <<EOF
|
||||
GOOD: node $test_node has these addresses:
|
||||
$out
|
||||
EOF
|
||||
|
||||
try_command_on_node any $CTDB sync
|
||||
|
||||
|
||||
echo "Emptying public addresses file on $test_node"
|
||||
|
||||
try_command_on_node $test_node "mv $addresses $backup && touch $addresses"
|
||||
|
||||
do_ctdb_reloadips
|
||||
|
||||
echo "Getting list of public IPs on node $test_node"
|
||||
try_command_on_node $test_node "$CTDB ip | tail -n +2"
|
||||
|
||||
if [ -n "$out" ] ; then
|
||||
cat <<EOF
|
||||
BAD: node $test_node still has ips:
|
||||
$out
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "GOOD: no IPs left on node $test_node"
|
||||
|
Reference in New Issue
Block a user