--- /dev/null
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "setup, no tunables in config"
+
+setup_ctdb
+
+ok_null
+
+simple_test
--- /dev/null
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "setup, known tunables in config"
+
+setup_ctdb
+
+setup_config <<EOF
+CTDB_SET_MonitorInterval=5
+CTDB_SET_TDBMutexEnabled=0
+EOF
+
+required_result 0 <<EOF
+Set MonitorInterval to 5
+Set TDBMutexEnabled to 0
+EOF
+
+simple_test
--- /dev/null
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "setup, known and unknown tunables in config"
+
+setup_ctdb
+
+setup_config <<EOF
+CTDB_SET_MonitorInterval=5
+CTDB_SET_UnknownMagic=0
+EOF
+
+required_result 1 <<EOF
+Set MonitorInterval to 5
+Unable to set tunable variable 'UnknownMagic'
+Failed to set CTDB tunables
+EOF
+
+simple_test
--- /dev/null
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "setup, known and obsolete tunables in config"
+
+setup_ctdb
+
+setup_config <<EOF
+CTDB_SET_MonitorInterval=5
+CTDB_SET_EventScriptUnhealthyOnTimeout=0
+EOF
+
+required_result 0 <<EOF
+Set EventScriptUnhealthyOnTimeout to 0
+Set MonitorInterval to 5
+EOF
+
+simple_test
CTDB_RECOVERY_LOCK="/some/place/on/shared/storage"
CTDB_DEBUGLEVEL=ERR
+
+if [ -n "$FAKE_CTDB_EXTRA_CONFIG" -a -r "$FAKE_CTDB_EXTRA_CONFIG" ] ; then
+ . "$FAKE_CTDB_EXTRA_CONFIG"
+fi
export FAKE_CTDB_STATE="$EVENTSCRIPTS_TESTS_VAR_DIR/fake-ctdb"
+ export FAKE_CTDB_EXTRA_CONFIG="$EVENTSCRIPTS_TESTS_VAR_DIR/fake-config.sh"
+ rm -f "$FAKE_CTDB_EXTRA_CONFIG"
+
export FAKE_CTDB_IFACES_DOWN="$FAKE_CTDB_STATE/ifaces-down"
mkdir -p "$FAKE_CTDB_IFACES_DOWN"
rm -f "$FAKE_CTDB_IFACES_DOWN"/*
rm -f "$FAKE_CTDB_SCRIPTSTATUS"/*
export CTDB_PARTIALLY_ONLINE_INTERFACES
+
+ export FAKE_CTDB_TUNABLES_OK="MonitorInterval TDBMutexEnabled DatabaseHashSize"
+ export FAKE_CTDB_TUNABLES_OBSOLETE="EventScriptUnhealthyOnTimeout"
+}
+
+setup_config ()
+{
+ cat >"$FAKE_CTDB_EXTRA_CONFIG"
}
setup_memcheck ()
}
+######################################################################
+
+ctdb_setvar ()
+{
+ shift
+ _var="$1"
+
+ for _i in $FAKE_CTDB_TUNABLES_OK ; do
+ if [ "$_var" = "$_i" ] ; then
+ return 0
+ fi
+ done
+
+ for _i in $FAKE_CTDB_TUNABLES_OBSOLETE ; do
+ if [ "$_var" = "$_i" ] ; then
+ return 0
+ fi
+ done
+
+ echo "Unable to set tunable variable '${_var}'"
+ return 1
+}
+
+
######################################################################
case "$1" in
shutdown) ctdb_shutdown "$@";;
setnatgwstate) ctdb_setnatgwstate "$@" ;;
natgwlist) ctdb_natgwlist "$@" ;;
+ setvar) ctdb_setvar "$@" ;;
*) not_implemented "$1" ;;
esac