diff options
Diffstat (limited to 'extras/hook-scripts/S30samba-stop.sh')
| -rwxr-xr-x | extras/hook-scripts/S30samba-stop.sh | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/extras/hook-scripts/S30samba-stop.sh b/extras/hook-scripts/S30samba-stop.sh new file mode 100755 index 00000000..def87e00 --- /dev/null +++ b/extras/hook-scripts/S30samba-stop.sh @@ -0,0 +1,60 @@ +#! /bin/bash + +#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:" +VOL= + +function parse_args () { + ARGS=$(getopt -l $OPTSPEC -name $PROGNAME $@) + eval set -- "$ARGS" + + while true; do + case $1 in + --volname) + shift + VOL=$1 + ;; + *) + shift + break + ;; + esac + shift + done +} + +function del_samba_share () { + volname=$1 + cp /etc/samba/smb.conf /tmp/smb.conf + sed -i "/gluster-$volname/,/^$/d" /tmp/smb.conf &&\ + cp /tmp/smb.conf /etc/samba/smb.conf +} + +function sighup_samba () { + pid=`cat /var/run/smbd.pid` + if [ $pid != "" ] + then + kill -HUP $pid; + else + /etc/init.d/smb condrestart + fi +} + +parse_args $@ +del_samba_share $VOL +sighup_samba |
