diff options
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 00000000..a42bb07e --- /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 00000000..0e483bff --- /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  | 
