summaryrefslogtreecommitdiffstats
path: root/extras/hook-scripts/S30samba-stop.sh
diff options
context:
space:
mode:
Diffstat (limited to 'extras/hook-scripts/S30samba-stop.sh')
-rwxr-xr-xextras/hook-scripts/S30samba-stop.sh53
1 files changed, 32 insertions, 21 deletions
diff --git a/extras/hook-scripts/S30samba-stop.sh b/extras/hook-scripts/S30samba-stop.sh
index f96847309..8950eea43 100755
--- a/extras/hook-scripts/S30samba-stop.sh
+++ b/extras/hook-scripts/S30samba-stop.sh
@@ -1,11 +1,25 @@
#! /bin/bash
-#Need to be copied to hooks/<HOOKS_VER>/stop/post
+
+#Need to be copied to hooks/<HOOKS_VER>/stop/pre
+
+#TODO: All gluster and samba paths are assumed for fedora like systems.
+#Some efforts are required to make it work on other distros.
+
+#The preferred way of creating a smb share of a gluster volume has changed.
+#The old method was to create a fuse mount of the volume and share the mount
+#point through samba.
+#
+#New method eliminates the requirement of fuse mount and changes in fstab.
+#glusterfs_vfs plugin for samba makes call to libgfapi to access the volume.
+#
+#This hook script automagically removes shares for volume on every volume stop
+#event by removing the volume related entries(if any) in smb.conf file.
PROGNAME="Ssamba-stop"
-OPTSPEC="volname:,mnt:"
+OPTSPEC="volname:"
VOL=
-#FIXME: gluster will eventually pass mnt prefix as command line argument
-MNT_PRE="/mnt/samba"
+CONFIGFILE=
+PIDDIR=
function parse_args () {
ARGS=$(getopt -l $OPTSPEC -name $PROGNAME $@)
@@ -17,11 +31,6 @@ function parse_args () {
shift
VOL=$1
;;
- --mnt)
- shift
- MNT_PRE=$1
- echo $1
- ;;
*)
shift
break
@@ -31,22 +40,24 @@ function parse_args () {
done
}
-function del_samba_export () {
- volname=$1
- cp /etc/samba/smb.conf /tmp/smb.conf
- sed -i "/gluster-$volname/,/^$/d" /tmp/smb.conf &&\
- mv /tmp/smb.conf /etc/samba/smb.conf
+function find_config_info () {
+ cmdout=`smbd -b | grep smb.conf`
+ if [ $? -ne 0 ];then
+ echo "Samba is not installed"
+ exit 1
+ fi
+ CONFIGFILE=`echo $cmdout | awk {'print $2'}`
+ PIDDIR=`smbd -b | grep PIDDIR | awk {'print $2'}`
}
-function umount_volume () {
+function del_samba_share () {
volname=$1
- mnt_pre=$2
- umount -l $mnt_pre/$volname
+ sed -i "/\[gluster-$volname\]/,/^$/d" ${CONFIGFILE}
}
function sighup_samba () {
- pid=`cat /var/run/smbd.pid`
- if [ $pid != "" ]
+ pid=`cat ${PIDDIR}/smbd.pid`
+ if [ "x$pid" != "x" ]
then
kill -HUP $pid;
else
@@ -55,6 +66,6 @@ function sighup_samba () {
}
parse_args $@
-del_samba_export $VOL
-umount_volume $VOL $MNT_PRE
+find_config_info
+del_samba_share $VOL
sighup_samba