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>
This commit is contained in:
Krishnan Parthasarathi 2012-04-04 23:37:58 +05:30 committed by Vijay Bellur
parent f8bbf1cef9
commit 64177411f7
2 changed files with 122 additions and 0 deletions

View File

@ -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

View File

@ -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