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:
parent
f8bbf1cef9
commit
64177411f7
62
extras/hook-scripts/S30samba-start.sh
Executable file
62
extras/hook-scripts/S30samba-start.sh
Executable 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
|
60
extras/hook-scripts/S30samba-stop.sh
Executable file
60
extras/hook-scripts/S30samba-stop.sh
Executable 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
|
Loading…
Reference in New Issue
Block a user