diff options
author | Krishnan Parthasarathi <kp@gluster.com> | 2012-04-04 23:37:58 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2012-04-19 00:12:35 -0700 |
commit | 64177411f7c032eeb2b65635a9ca4e5767a72b40 (patch) | |
tree | 385bb4e1101102fab64f32f4f0e667d46599cb5d /extras | |
parent | f8bbf1cef9da21ea55649f5a05a88479853cd8eb (diff) | |
download | glusterfs-64177411f7c032eeb2b65635a9ca4e5767a72b40.tar.gz glusterfs-64177411f7c032eeb2b65635a9ca4e5767a72b40.tar.xz glusterfs-64177411f7c032eeb2b65635a9ca4e5767a72b40.zip |
extras: Added (hook) scripts to start/stop samba on volume start and stop
These are example/helper scripts that demonstrate how one could
leverage the recently added hooks interface in glusterd.
The scripts are in 'beta'.
Change-Id: I7aaf999f3bdfb276ef64e115a57cbdb36c7a896e
BUG: 806996
Signed-off-by: Krishnan Parthasarathi <kp@gluster.com>
Reviewed-on: http://review.gluster.com/3086
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
Diffstat (limited to 'extras')
-rwxr-xr-x | extras/hook-scripts/S30samba-start.sh | 62 | ||||
-rwxr-xr-x | extras/hook-scripts/S30samba-stop.sh | 60 |
2 files changed, 122 insertions, 0 deletions
diff --git a/extras/hook-scripts/S30samba-start.sh b/extras/hook-scripts/S30samba-start.sh new file mode 100755 index 0000000000..a42bb07eba --- /dev/null +++ b/extras/hook-scripts/S30samba-start.sh @@ -0,0 +1,62 @@ +#!/bin/bash +#Need to be copied to hooks/<HOOKS_VER>/start/post + +PROGNAME="Ssamba-start" +OPTSPEC="volname:,mnt:" +VOL= +#FIXME: glusterd hook interface will eventually provide mntpt prefix as +# command line arg +MNT_PRE="/mnt/samba" + +function parse_args () { + ARGS=$(getopt -l $OPTSPEC -name $PROGNAME $@) + eval set -- "$ARGS" + + while true; do + case $1 in + --volname) + shift + VOL=$1 + ;; + --mnt) + shift + MNT_PRE=$1 + ;; + *) + shift + break + ;; + esac + shift + done +} + +function add_samba_export () { + volname=$1 + mnt_pre=$2 + mkdir -p $mnt_pre/$volname && \ + printf "\n[gluster-$volname]\ncomment=For samba export of volume $volname\npath=$mnt_pre/$volname\nread only=no\nguest ok=yes\n" >> /etc/samba/smb.conf +} + +function mount_volume () { + volname=$1 + mnt_pre=$2 + #Mount shouldn't block on glusterd to fetch volfile, hence the 'bg' + mount -t glusterfs `hostname`:$volname $mnt_pre/$volname & +} + +function sighup_samba () { + pid=`cat /var/run/smbd.pid` + if [ $pid != "" ] + then + kill -HUP $pid; + else + /etc/init.d/smb start + fi +} + + +parse_args $@ +add_samba_export $VOL $MNT_PRE +mount_volume $VOL $MNT_PRE +sighup_samba diff --git a/extras/hook-scripts/S30samba-stop.sh b/extras/hook-scripts/S30samba-stop.sh new file mode 100755 index 0000000000..0e483bff83 --- /dev/null +++ b/extras/hook-scripts/S30samba-stop.sh @@ -0,0 +1,60 @@ +#! /bin/bash +#Need to be copied to hooks/<HOOKS_VER>/stop/post + +PROGNAME="Ssamba-stop" +OPTSPEC="volname:,mnt:" +VOL= +#FIXME: gluster will eventually pass mnt prefix as command line argument +MNT_PRE="/mnt/samba" + +function parse_args () { + ARGS=$(getopt -l $OPTSPEC -name $PROGNAME $@) + eval set -- "$ARGS" + + while true; do + case $1 in + --volname) + shift + VOL=$1 + ;; + --mnt) + shift + MNT_PRE=$1 + echo $1 + ;; + *) + shift + break + ;; + esac + shift + 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 umount_volume () { + volname=$1 + mnt_pre=$2 + umount -l $mnt_pre/$volname +} + +function sighup_samba () { + pid=`cat /var/run/smbd.pid` + if [ $pid != "" ] + then + kill -HUP $pid; + else + /etc/init.d/smb start + fi +} + +parse_args $@ +del_samba_export $VOL +umount_volume $VOL $MNT_PRE +sighup_samba |