sleep_for 30
try_command_on_node 0 "$CTDB ipreallocate"
-# sets: num
-count_ips_on_node ()
-{
- local node="$1"
-
- ctdb_onnode "$node" ip
- # outfile is set by ctdb_onnode() above
- # shellcheck disable=SC2154,SC2126
- # * || true is needed to avoid command failure when there are no matches
- # * Using "wc -l | tr -d '[:space:]'" is our standard
- # pattern... and "grep -c" requires handling of special case
- # for no match
- num=$(grep -v 'Public' "$outfile" | \
- grep " ${node}\$" | \
- wc -l | \
- tr -d '[:space:]')
- echo "Number of addresses on node ${node}: ${num}"
-}
+num=`try_command_on_node -v 1 "$CTDB ip" | grep -v Public | egrep " 1$" | wc -l`
+echo "Number of addresses on node 1 : $num"
-count_ips_on_node 1
echo "Turning on NoIPTakeover on all nodes"
try_command_on_node all "$CTDB setvar NoIPTakeover 1"
echo Disable node 1
try_command_on_node 1 "$CTDB disable"
try_command_on_node 1 "$CTDB ipreallocate"
-
-count_ips_on_node 1
-if [ "$num" != "0" ] ; then
- test_fail "BAD: node 1 still hosts IP addresses"
-fi
+num=`try_command_on_node -v 1 "$CTDB ip" | grep -v Public | egrep " 1$" | wc -l`
+echo "Number of addresses on node 1 : $num"
+[ "$num" != "0" ] && {
+ echo "BAD: node 1 still hosts ip addresses"
+ exit 1
+}
echo "Enable node 1 again"
sleep_for 30
try_command_on_node 1 "$CTDB ipreallocate"
try_command_on_node 1 "$CTDB ipreallocate"
-
-count_ips_on_node 1
-if [ "$num" != "0" ] ; then
- test_fail "BAD: node 1 took over IP addresses"
-fi
+num=`try_command_on_node -v 1 "$CTDB ip" | grep -v Public | egrep " 1$" | wc -l`
+echo "Number of addresses on node 1 : $num"
+[ "$num" != "0" ] && {
+ echo "BAD: node took over ip addresses"
+ exit 1
+}
echo "OK. ip addresses were not taken over"