summaryrefslogtreecommitdiffstats
path: root/extras
diff options
context:
space:
mode:
authorKrishnan Parthasarathi <kp@gluster.com>2012-04-04 23:37:58 +0530
committerVijay Bellur <vijay@gluster.com>2012-04-19 00:12:35 -0700
commit64177411f7c032eeb2b65635a9ca4e5767a72b40 (patch)
tree385bb4e1101102fab64f32f4f0e667d46599cb5d /extras
parentf8bbf1cef9da21ea55649f5a05a88479853cd8eb (diff)
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-xextras/hook-scripts/S30samba-start.sh62
-rwxr-xr-xextras/hook-scripts/S30samba-stop.sh60
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 00000000000..a42bb07eba8
--- /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 00000000000..0e483bff835
--- /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