From 0088e318c1218191535ea0baa04b4fe858412f54 Mon Sep 17 00:00:00 2001 From: Meghana M Date: Mon, 24 Mar 2014 13:58:38 +0530 Subject: cli/hooks : Add volume set options to enable/disable nfs-ganesha support. 1. gluster volume set nfs-ganesha.enable ON/OFF If the option is set to ON, the volume field in the nfs-ganesha configuartion file is edited. Gluster-nfs is disabled on that volume and the volume is exported using nfs-ganesha. 2.gluster volume set nfs-ganesha.host IP This is used to provide the IP of the nfs-ganesha host. Note : nfs-ganesha.host MUST be set before using nfs-ganesha.enable ON The switch from gluster-nfs to nfs-ganesha is mostly done by the hook-scripts in the post phase of the 'set' option. As a result, gluster volume reset does not function as it is expected to. By default, nfs-ganesha will be set to off but the process will not be killed. Hence, a few changes have to be made post 'reset' option as well. Those changes also have been added. Change-Id: I7fdc14ee49d1724af96eda33c6a3ec08b1020788 BUG: 1092283 Signed-off-by: Meghana Reviewed-on: http://review.gluster.org/7321 Reviewed-by: Raghavendra Talur Reviewed-by: Santosh Pradhan Tested-by: Gluster Build System Reviewed-by: Vijay Bellur --- extras/hook-scripts/reset/Makefile.am | 2 ++ extras/hook-scripts/reset/post/Makefile.am | 1 + extras/hook-scripts/reset/post/S31ganesha-reset.sh | 38 ++++++++++++++++++++++ extras/hook-scripts/reset/pre/Makefile.am | 1 + 4 files changed, 42 insertions(+) create mode 100644 extras/hook-scripts/reset/Makefile.am create mode 100644 extras/hook-scripts/reset/post/Makefile.am create mode 100755 extras/hook-scripts/reset/post/S31ganesha-reset.sh create mode 100644 extras/hook-scripts/reset/pre/Makefile.am (limited to 'extras/hook-scripts/reset') diff --git a/extras/hook-scripts/reset/Makefile.am b/extras/hook-scripts/reset/Makefile.am new file mode 100644 index 00000000000..6e2701e909e --- /dev/null +++ b/extras/hook-scripts/reset/Makefile.am @@ -0,0 +1,2 @@ +SUBDIRS = post pre +CLEANFILES = diff --git a/extras/hook-scripts/reset/post/Makefile.am b/extras/hook-scripts/reset/post/Makefile.am new file mode 100644 index 00000000000..fcdd8ab55ba --- /dev/null +++ b/extras/hook-scripts/reset/post/Makefile.am @@ -0,0 +1 @@ +EXTRA_DIST = S31ganesha-reset.sh diff --git a/extras/hook-scripts/reset/post/S31ganesha-reset.sh b/extras/hook-scripts/reset/post/S31ganesha-reset.sh new file mode 100755 index 00000000000..68411e4bd95 --- /dev/null +++ b/extras/hook-scripts/reset/post/S31ganesha-reset.sh @@ -0,0 +1,38 @@ +#/bin/bash +PROGNAME="Sganesha-reset" +OPTSPEC="volname:" +VOL= + +function parse_args () { + ARGS=$(getopt -l $OPTSPEC -o "o" -name $PROGNAME $@) + eval set -- "$ARGS" + case $1 in + --volname) + shift + VOL=$1 + ;; + esac +} + +function is_volume_started () { + volname=$1 + echo "$(grep status /var/lib/glusterd/vols/"$volname"/info |\ + cut -d"=" -f2)" +} + +parse_args $@ +if ps aux | grep -q "[g]anesha.nfsd" + then + kill -s TERM `cat /var/run/ganesha.pid` + sleep 10 + rm -rf /var/lib/ganesha/exports + rm -rf /var/lib/ganesha/export_added + sed -i /conf/d /var/lib/ganesha/nfs-ganesha.conf + if [ "1" = $(is_volume_started "$VOL") ]; + then + gluster volume start $VOL force + fi +fi + + + diff --git a/extras/hook-scripts/reset/pre/Makefile.am b/extras/hook-scripts/reset/pre/Makefile.am new file mode 100644 index 00000000000..1b336ac1a85 --- /dev/null +++ b/extras/hook-scripts/reset/pre/Makefile.am @@ -0,0 +1 @@ +EXTRA_DIST = -- cgit