ctdb-scripts: Add eventscript 06.nfs
authorMartin Schwenke <martin@meltin.net>
Mon, 6 Jun 2016 04:03:47 +0000 (14:03 +1000)
committerAmitay Isaacs <amitay@samba.org>
Wed, 8 Jun 2016 08:33:19 +0000 (10:33 +0200)
This generates takeip-pre and releaseip-pre call-out events.

One use is to put NFS into grace before an IP is assigned to an
interface.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/config/events.d/06.nfs [new file with mode: 0755]
ctdb/config/nfs-linux-kernel-callout
ctdb/doc/examples/nfs-ganesha-callout
ctdb/packaging/RPM/ctdb.spec.in

diff --git a/ctdb/config/events.d/06.nfs b/ctdb/config/events.d/06.nfs
new file mode 100755 (executable)
index 0000000..2a069f3
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/sh
+# script to manage nfs in a clustered environment
+
+[ -n "$CTDB_BASE" ] || \
+    export CTDB_BASE=$(cd -P $(dirname "$0") ; dirname "$PWD")
+
+. $CTDB_BASE/functions
+
+service_name="nfs"
+loadconfig
+ctdb_setup_service_state_dir
+
+######################################################################
+
+nfs_callout_pre ()
+{
+       _event="$1"
+       shift
+
+       nfs_callout "${_event}-pre" "$@"
+}
+
+######################################################################
+
+nfs_callout_init
+
+ctdb_start_stop_service
+
+is_ctdb_managed_service || exit 0
+
+case "$1" in
+takeip)
+       nfs_callout_pre "$@"
+       ;;
+
+releaseip)
+       nfs_callout_pre "$@"
+       ;;
+esac
index 22151a67770826c32b629e722aa340dc4ffc5d68..3b457be0ba61864297fc84dea4851bb853342fc5 100755 (executable)
@@ -242,7 +242,7 @@ case "$1" in
     register)
        nfs_register
        ;;
-    monitor-pre|releaseip|takeip)
+    monitor-pre|releaseip|takeip|releaseip-pre|takeip-pre)
        # Not required/implemented
        :
        ;;
index 34794c19adef3bd358d4858f1e95bc7fd85d33b6..3e12b3679580941fd9ad579127a2da7035d0c31b 100755 (executable)
@@ -335,7 +335,7 @@ case "$action" in
     takeip)              nfs_takeip "$@"         ;;
     monitor-list-shares) nfs_monitor_list_shares ;;
     register)            nfs_register            ;;
-    monitor-pre|monitor-post)
+    monitor-pre|monitor-post|releaseip-pre|takeip-pre)
        # Not required/implemented
        :
        ;;
index 3bc9bebaf94979eb6a9637987123023f7e9224e8..b7c881eea1fe5cbb110bd0ad6966bfe699a1f1ee 100644 (file)
@@ -171,6 +171,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_sysconfdir}/ctdb/events.d/00.ctdb
 %{_sysconfdir}/ctdb/events.d/01.reclock
 %{_sysconfdir}/ctdb/events.d/05.system
+%{_sysconfdir}/ctdb/events.d/06.nfs
 %{_sysconfdir}/ctdb/events.d/10.interface
 %{_sysconfdir}/ctdb/events.d/10.external
 %{_sysconfdir}/ctdb/events.d/13.per_ip_routing