restart_ctdb ()
{
+ if [ "$1" = "-v" ] ; then
+ echo "Restarting CTDB (scheduled)..."
+ fi
+
if [ -n "$CTDB_NODES_SOCKETS" ] ; then
daemons_stop
daemons_start $CTDB_TEST_NUM_DAEMONS
echo "ctdb is ready"
}
+ctdb_restart_when_done ()
+{
+ ctdb_test_exit_hook_add restart_ctdb -v
+}
+
+
+
#######################################
install_eventscript ()
onnode 0 $CTDB_TEST_WRAPPER cluster_is_healthy
+# Reset configuration
+ctdb_restart_when_done
+
var="RecoverTimeout"
try_command_on_node -v 0 $CTDB getvar $var
check="${out#*= }"
if [ "$incr" != "$check" ] ; then
- echo "Nope, that didn't work. Restarting ctdb to get back into known state..."
- restart_ctdb
+ echo "Nope, that didn't work..."
exit 1
fi
onnode 0 $CTDB_TEST_WRAPPER cluster_is_healthy
+# Reset configuration
+ctdb_restart_when_done
+
echo "Getting list of public IPs..."
try_command_on_node 0 "$CTDB ip -n all | sed -e '1d'"
testfailures=1
fi
-echo "Restarting cluster to restore configuration..."
-restart_ctdb
-
ctdb_test_exit
onnode 0 $CTDB_TEST_WRAPPER cluster_is_healthy
+# Reset configuration
+ctdb_restart_when_done
+
echo "Getting list of public IPs..."
try_command_on_node -v 0 "$CTDB ip -n all | sed -e '1d'"
done <<<"$out" # bashism to avoid problem setting variable in pipeline.
if [ "${test_node_ips/${ip_to_remove}}" = "$test_node_ips" ] ; then
- echo "That worked! Restarting cluster to restore configuration..."
- restart_ctdb
+ echo "GOOD: That worked!"
else
echo "BAD: The remove IP address is still there!"
testfailures=1
onnode 0 $CTDB_TEST_WRAPPER cluster_is_healthy
+# Reset configuration
+ctdb_restart_when_done
+
test_node=1
echo "Freezing node $test_node"
onnode 0 $CTDB_TEST_WRAPPER wait_until_node_has_status $test_node frozen
-echo "That worked! Restarting cluster to restore configuration..."
-
-restart_ctdb
+echo "GOOD: That worked!"
ctdb_test_exit
onnode 0 $CTDB_TEST_WRAPPER cluster_is_healthy
+# Reset configuration
+ctdb_restart_when_done
+
test_node=1
try_command_on_node -v 0 $CTDB getmonmode -n $test_node
onnode 0 $CTDB_TEST_WRAPPER wait_until_node_has_status $test_node monoff
-echo "That worked! Restarting cluster to restore configuration..."
-
-restart_ctdb
+echo "GOOD: That worked!"
ctdb_test_exit
recovered_flag="/tmp/ctdb-test-flag.recovered.${test_node}"
try_command_on_node $test_node touch "$recovered_flag"
-ctdb_test_exit_hook="onnode $test_node rm -vf $trigger"
+ctdb_test_exit_hook_add "onnode $test_node rm -vf $trigger"
echo "Creating trigger file on node $test_node to make it unhealthy..."
try_command_on_node $test_node touch "$trigger"
onnode 0 $CTDB_TEST_WRAPPER cluster_is_healthy
+# Reset configuration
+ctdb_restart_when_done
+
test_node=1
# We need this for later, so we know how long to sleep.
recovered_flag="/tmp/ctdb-test-flag.recovered.${test_node}"
try_command_on_node $test_node touch "$recovered_flag"
-ctdb_test_exit_hook="onnode $test_node rm -vf $trigger; restart_ctdb"
+ctdb_test_exit_hook_add "onnode $test_node rm -vf $trigger"
echo "Creating trigger file on node $test_node to see if it goes unhealthy..."
try_command_on_node $test_node touch "$trigger"
try_command_on_node -v $test_node ls -l "$detected"
-echo "OK, that all worked. Expect a restart..."
+echo "GOOD: That all worked..."
ctdb_test_exit
onnode 0 $CTDB_TEST_WRAPPER cluster_is_healthy
-# Restart when done since things are likely to be broken.
-ctdb_test_exit_hook="restart_ctdb"
+# Reset configuration
+ctdb_restart_when_done
try_command_on_node 0 "$CTDB listnodes | wc -l"
num_nodes="$out"
exit 1
fi
-echo "OK, that worked... expect a restart..."
+echo "GOOD: That worked..."
ctdb_test_exit
onnode 0 $CTDB_TEST_WRAPPER cluster_is_healthy
-# Restart when done since things are likely to be broken.
-ctdb_test_exit_hook="restart_ctdb"
+# Reset configuration
+ctdb_restart_when_done
make_temp_db_filename ()
{
fi
done
-echo "OK, that worked... expect a restart..."
+echo "GOOD: That worked..."
ctdb_test_exit
fi
done
-echo "That all looks OK. Restarting cluster..."
-
-restart_ctdb
+echo "OK, that all worked. Expect a restart..."
ctdb_test_exit