# the provided prefix. Note that this is an IPv4-specific test.
echo "Getting public IP information from CTDB..."
-ctdb_onnode "$test_node" "ip -X -v all"
+try_command_on_node any "$CTDB ip -X -v all"
ctdb_ip_info=$(awk -F'|' 'NR > 1 { print $2, $3, $5 }' "$outfile")
echo "Getting IP information from interfaces..."
check_ips $test_node "$iface" "$prefix" 1 $new_ip_max
-ctdb_onnode "$test_node" sync
+try_command_on_node any $CTDB sync
####################
check_ips $test_node "$iface" "$prefix" 2 $new_ip_max
-ctdb_onnode "$test_node" sync
+try_command_on_node any $CTDB sync
####################
check_ips $test_node "$iface" "$prefix" $start $new_ip_max
-ctdb_onnode "$test_node" sync
+try_command_on_node any $CTDB sync
####################
ctdb_test_init
+# We need this for later, so we know how long to run nc for.
+try_command_on_node any $CTDB getvar MonitorInterval
+monitor_interval="${out#*= }"
+#echo "Monitor interval on node $test_node is $monitor_interval seconds."
+
select_test_node_and_ips
try_command_on_node $test_node "$CTDB listnodes | wc -l"
numnodes="$out"
-# We need this for later, so we know how long to run nc for.
-ctdb_onnode "$test_node" "getvar MonitorInterval"
-monitor_interval="${out#*= }"
-
test_port=2049
echo "Connecting to node ${test_node} on IP ${test_ip}:${test_port} with netcat..."
ctdb_test_init
+# We need this for later, so we know how long to run nc for.
+try_command_on_node any $CTDB getvar MonitorInterval
+monitor_interval="${out#*= }"
+#echo "Monitor interval on node $test_node is $monitor_interval seconds."
+
select_test_node_and_ips
try_command_on_node $test_node "$CTDB listnodes -X"
listnodes_output="$out"
######################################################################
echo "Get list of nodes..."
-ctdb_onnode 0 "-X listnodes"
+try_command_on_node any $CTDB -X listnodes
all_nodes=$(awk -F'|' '{print $2}' "$outfile")
######################################################################
# Make sure node 0 is not the recovery master
echo "find out which node is recmaster"
-ctdb_onnode 0 recmaster
+try_command_on_node any $CTDB recmaster
recmaster="$out"
if [ "$recmaster" = "0" ]; then
echo "node 0 is recmaster, disable recmasterrole on node 0"
try_command_on_node 0 $CTDB continue
wait_until_node_has_status 0 notstopped
- ctdb_onnode 0 recmaster
+ try_command_on_node any $CTDB recmaster
recmaster="$out"
if [ "$recmaster" = "0" ]; then
echo "failed to move recmaster to different node"
local retry_max=10
local retry_count=0
while : ; do
- if ctdb_onnode "$test_node" "reloadips all" ; then
+ if try_command_on_node any "$CTDB reloadips all" ; then
return 0
fi
$out
EOF
-ctdb_onnode "$test_node" sync
+try_command_on_node any $CTDB sync
echo "Restoring addresses"
$out
EOF
-ctdb_onnode "$test_node" sync
+try_command_on_node any $CTDB sync
echo "Emptying public addresses file on $test_node"
echo "Starting CTDB with failover disabled..."
ctdb_nodes_start_custom -F
-select_test_node
-
echo "Getting IP allocation..."
-
-# $test_node set above by select_test_node()
-# shellcheck disable=SC2154
-try_command_on_node -v "$test_node" "$CTDB ip all | tail -n +2"
+try_command_on_node -v any "$CTDB ip all | tail -n +2"
while read ip pnn ; do
if [ "$pnn" != "-1" ] ; then
ctdb_nodes_start_custom -P /dev/null
echo "Trying explicit ipreallocate..."
-ctdb_onnode "$test_node" ipreallocate
+try_command_on_node any $CTDB ipreallocate
echo "Good, that seems to work!"
echo
sanity_check_ips
# Find a target node - it must be willing to host $test_ip
-
-# $test_node set above by select_test_node_and_ips()
-# shellcheck disable=SC2154
-try_command_on_node "$test_node" "$CTDB listnodes | wc -l"
+try_command_on_node any "$CTDB listnodes | wc -l"
num_nodes="$out"
to_node=""
for i in $(seq 0 $(($num_nodes - 1)) ) ; do