ctdb-scripts: Add monitoring of CTDB_LVS_PUBLIC_IFACE
authorMartin Schwenke <martin@meltin.net>
Thu, 14 Apr 2016 03:35:07 +0000 (13:35 +1000)
committerAmitay Isaacs <amitay@samba.org>
Fri, 15 Apr 2016 03:57:17 +0000 (05:57 +0200)
... and unit tests.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/config/events.d/91.lvs
ctdb/tests/eventscripts/91.lvs.monitor.001.sh [new file with mode: 0755]
ctdb/tests/eventscripts/91.lvs.monitor.002.sh [new file with mode: 0755]
ctdb/tests/eventscripts/91.lvs.monitor.003.sh [new file with mode: 0755]

index 9fe38de8dac97f003e5f4ad747302db413cb41f8..528121ed44aebc75f993e62cd9264631cb1428ed 100755 (executable)
@@ -114,6 +114,14 @@ ipreallocated)
 
        flush_route_cache
        ;;
+
+monitor)
+       lvs_check_config
+
+       if [ -n "$CTDB_LVS_PUBLIC_IFACE" ] ; then
+               interface_monitor "$CTDB_LVS_PUBLIC_IFACE" || exit 1
+       fi
+       ;;
 esac
 
 exit 0
diff --git a/ctdb/tests/eventscripts/91.lvs.monitor.001.sh b/ctdb/tests/eventscripts/91.lvs.monitor.001.sh
new file mode 100755 (executable)
index 0000000..3710d85
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "not configured"
+
+setup_ctdb
+setup_ctdb_lvs <<EOF
+EOF
+
+ok_null
+simple_test
diff --git a/ctdb/tests/eventscripts/91.lvs.monitor.002.sh b/ctdb/tests/eventscripts/91.lvs.monitor.002.sh
new file mode 100755 (executable)
index 0000000..65d84f5
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "configured, interface up"
+
+setup_ctdb
+setup_ctdb_lvs "10.1.1.201" "eth0" <<EOF
+192.168.1.1
+192.168.1.2
+192.168.1.3
+EOF
+
+ok_null
+simple_test
diff --git a/ctdb/tests/eventscripts/91.lvs.monitor.003.sh b/ctdb/tests/eventscripts/91.lvs.monitor.003.sh
new file mode 100755 (executable)
index 0000000..d556abf
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "configured, interface up"
+
+setup_ctdb
+setup_ctdb_lvs "10.1.1.201" "eth0" <<EOF
+192.168.1.1
+192.168.1.2
+192.168.1.3
+EOF
+
+ethtool_interfaces_down "$CTDB_LVS_PUBLIC_IFACE"
+
+required_result 1 <<EOF
+ERROR: No link on the public network interface ${CTDB_LVS_PUBLIC_IFACE}
+EOF
+simple_test
+