diff options
author | Raghavendra Talur <rtalur@redhat.com> | 2014-03-06 19:09:13 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2014-03-10 06:38:21 -0700 |
commit | ecc475d0a517d7f58014bed93fc0957b3369d1b7 (patch) | |
tree | a67ab723276d262c42f47d78792006708692d554 | |
parent | bed3fcd3a47d3ca35b3536e0cad2b293dd240ce4 (diff) |
hook-scripts: Move smb hooks to right place.
Moved the hook-scripts to dirs corresponding to event.
Also, edited S30samba-set.sh to with changes in
other two hook scripts to bring uniformity.
Change-Id: Ib98c0a18d4bb5d0ba4b881b2e19b40d72580b1c2
BUG: 1073468
Signed-off-by: Raghavendra Talur <rtalur@redhat.com>
Reviewed-on: http://review.gluster.org/7201
Reviewed-by: Poornima G <pgurusid@redhat.com>
Reviewed-by: Bala FA <barumuga@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
-rw-r--r-- | configure.ac | 6 | ||||
-rw-r--r-- | extras/hook-scripts/Makefile.am | 4 | ||||
-rw-r--r-- | extras/hook-scripts/set/Makefile.am | 2 | ||||
-rw-r--r-- | extras/hook-scripts/set/post/Makefile.am | 1 | ||||
-rwxr-xr-x | extras/hook-scripts/set/post/S30samba-set.sh (renamed from extras/hook-scripts/S30samba-set.sh) | 23 | ||||
-rw-r--r-- | extras/hook-scripts/start/Makefile.am | 2 | ||||
-rw-r--r-- | extras/hook-scripts/start/post/Makefile.am | 1 | ||||
-rwxr-xr-x[-rw-r--r--] | extras/hook-scripts/start/post/S29CTDBsetup.sh (renamed from extras/hook-scripts/S29CTDBsetup.sh) | 42 | ||||
-rwxr-xr-x | extras/hook-scripts/start/post/S30samba-start.sh (renamed from extras/hook-scripts/S30samba-start.sh) | 2 | ||||
-rw-r--r-- | extras/hook-scripts/stop/Makefile.am | 2 | ||||
-rw-r--r-- | extras/hook-scripts/stop/pre/Makefile.am | 1 | ||||
-rwxr-xr-x | extras/hook-scripts/stop/pre/S29CTDB-teardown.sh | 80 | ||||
-rwxr-xr-x | extras/hook-scripts/stop/pre/S30samba-stop.sh (renamed from extras/hook-scripts/S30samba-stop.sh) | 0 |
13 files changed, 143 insertions, 23 deletions
diff --git a/configure.ac b/configure.ac index 626f6f6289c..3e34673f52c 100644 --- a/configure.ac +++ b/configure.ac @@ -165,6 +165,12 @@ AC_CONFIG_FILES([Makefile extras/hook-scripts/add-brick/Makefile extras/hook-scripts/add-brick/pre/Makefile extras/hook-scripts/add-brick/post/Makefile + extras/hook-scripts/start/Makefile + extras/hook-scripts/start/post/Makefile + extras/hook-scripts/set/Makefile + extras/hook-scripts/set/post/Makefile + extras/hook-scripts/stop/Makefile + extras/hook-scripts/stop/pre/Makefile contrib/fuse-util/Makefile contrib/uuid/uuid_types.h glusterfs-api.pc diff --git a/extras/hook-scripts/Makefile.am b/extras/hook-scripts/Makefile.am index 0e542b4ccac..dd67c248e1a 100644 --- a/extras/hook-scripts/Makefile.am +++ b/extras/hook-scripts/Makefile.am @@ -1,2 +1,2 @@ -EXTRA_DIST = S29CTDBsetup.sh S30samba-start.sh S30samba-stop.sh S30samba-set.sh S56glusterd-geo-rep-create-post.sh -SUBDIRS = add-brick +EXTRA_DIST = S40ufo-stop.py S56glusterd-geo-rep-create-post.sh +SUBDIRS = add-brick set start stop diff --git a/extras/hook-scripts/set/Makefile.am b/extras/hook-scripts/set/Makefile.am new file mode 100644 index 00000000000..1fcade4b07f --- /dev/null +++ b/extras/hook-scripts/set/Makefile.am @@ -0,0 +1,2 @@ +SUBDIRS = post +CLEANFILES = diff --git a/extras/hook-scripts/set/post/Makefile.am b/extras/hook-scripts/set/post/Makefile.am new file mode 100644 index 00000000000..9ded234cf9b --- /dev/null +++ b/extras/hook-scripts/set/post/Makefile.am @@ -0,0 +1 @@ +EXTRA_DIST = S30samba-set.sh diff --git a/extras/hook-scripts/S30samba-set.sh b/extras/hook-scripts/set/post/S30samba-set.sh index 2fc65c27873..88f6e797b40 100755 --- a/extras/hook-scripts/S30samba-set.sh +++ b/extras/hook-scripts/set/post/S30samba-set.sh @@ -20,6 +20,9 @@ PROGNAME="Ssamba-set" OPTSPEC="volname:" VOL= +CONFIGFILE= +LOGFILEBASE= +PIDDIR= enable_smb="" @@ -57,22 +60,33 @@ function parse_args () { done } +function find_config_info () { + cmdout=`smbd -b | grep smb.conf` + if [ $? -ne 0 ]; then + echo "Samba is not installed" + exit 1 + fi + CONFIGFILE=`echo $cmdout | awk '{print $2}'` + PIDDIR=`smbd -b | grep PIDDIR | awk '{print $2}'` + LOGFILEBASE=`smbd -b | grep 'LOGFILEBASE' | awk '{print $2}'` +} + function add_samba_share () { volname=$1 STRING="\n[gluster-$volname]\n" STRING+="comment = For samba share of volume $volname\n" STRING+="vfs objects = glusterfs\n" STRING+="glusterfs:volume = $volname\n" - STRING+="glusterfs:logfile = /var/log/samba/glusterfs-$volname.%%M.log\n" + STRING+="glusterfs:logfile = $LOGFILEBASE/glusterfs-$volname.%%M.log\n" STRING+="glusterfs:loglevel = 7\n" STRING+="path = %%P/\n" STRING+="read only = no\n" STRING+="guest ok = yes\n" - printf "$STRING" >> /etc/samba/smb.conf + printf "$STRING" >> ${CONFIGFILE} } function sighup_samba () { - pid=`cat /var/run/smbd.pid` + pid=`cat ${PIDDIR}/smbd.pid` if [ "x$pid" != "x" ] then kill -HUP "$pid"; @@ -97,6 +111,9 @@ if [ "0" = $(is_volume_started "$VOL") ]; then exit 0 fi +#Find smb.conf, smbd pid directory and smbd logfile path +find_config_info + if [ "$enable_smb" = "enable" ]; then if ! grep --quiet "\[gluster-$VOL\]" /etc/samba/smb.conf ; then add_samba_share $VOL diff --git a/extras/hook-scripts/start/Makefile.am b/extras/hook-scripts/start/Makefile.am new file mode 100644 index 00000000000..1fcade4b07f --- /dev/null +++ b/extras/hook-scripts/start/Makefile.am @@ -0,0 +1,2 @@ +SUBDIRS = post +CLEANFILES = diff --git a/extras/hook-scripts/start/post/Makefile.am b/extras/hook-scripts/start/post/Makefile.am new file mode 100644 index 00000000000..d9cba93ed52 --- /dev/null +++ b/extras/hook-scripts/start/post/Makefile.am @@ -0,0 +1 @@ +EXTRA_DIST = S29CTDBsetup.sh S30samba-start.sh diff --git a/extras/hook-scripts/S29CTDBsetup.sh b/extras/hook-scripts/start/post/S29CTDBsetup.sh index e256be1f3ea..da077a6fbeb 100644..100755 --- a/extras/hook-scripts/S29CTDBsetup.sh +++ b/extras/hook-scripts/start/post/S29CTDBsetup.sh @@ -1,5 +1,5 @@ #! /bin/bash -#non-portable - RHS-2.0 only +# RHS-2.0 only # - The script mounts the 'meta-vol' on start 'event' on a known # directory (eg. /gluster/lock) # - Adds the necessary configuration changes for ctdb in smb.conf and @@ -20,16 +20,6 @@ VOL= # User needs to set META to the volume that serves CTDB lockfile. META="all" -function sighup_samba () { - pid=`cat /var/run/smbd.pid` - if [ $pid != " " ] - then - kill -HUP $pid; - else - /etc/init.d/smb start - fi -} - function parse_args () { ARGS=$(getopt -l $OPTSPEC -name $PROGNAME $@) eval set -- "$ARGS" @@ -54,16 +44,34 @@ function parse_args () { function add_glusterfs_ctdb_options () { PAT="Share Definitions" - GLUSTER_CTDB_CONFIG="# ctdb config for glusterfs\n\tclustering = yes\n\tidmap backend = tdb2\n\tprivate dir = "$CTDB_MNT"\n" + GLUSTER_CTDB_CONFIG="# ctdb config for glusterfs\n\tclustering = yes\n\tidmap backend = tdb2\n" + exists=`grep "clustering = yes" "$SMB_CONF"` + if [ "$exists" == "" ] + then + sed -i /"$PAT"/i\ "$GLUSTER_CTDB_CONFIG" "$SMB_CONF" + fi +} - sed -i /"$PAT"/i\ "$GLUSTER_CTDB_CONFIG" $SMB_CONF +function add_fstab_entry () { + volname=$1 + mntpt=$2 + mntent="`hostname`:/$volname $mntpt glusterfs defaults,transport=tcp 0 0" + exists=`grep "^$mntent" /etc/fstab` + if [ "$exists" == "" ] + then + echo "$mntent" >> /etc/fstab + fi } parse_args $@ if [ "$META" = "$VOL" ] then - add_glusterfs_ctdb_options - sighup_samba - mount -t glusterfs `hostname`:$VOL "$CTDB_MNT" & + #expects ctdb service to manage smb + service smb stop + add_glusterfs_ctdb_options + mkdir -p $CTDB_MNT + sleep 5 + mount -t glusterfs `hostname`:$VOL "$CTDB_MNT" && \ + add_fstab_entry $VOL $CTDB_MNT + chkconfig ctdb on fi - diff --git a/extras/hook-scripts/S30samba-start.sh b/extras/hook-scripts/start/post/S30samba-start.sh index 34fde0ef8c0..529348e25c4 100755 --- a/extras/hook-scripts/S30samba-start.sh +++ b/extras/hook-scripts/start/post/S30samba-start.sh @@ -65,7 +65,7 @@ function add_samba_share () { STRING+="glusterfs:volume = $volname\n" STRING+="glusterfs:logfile = $LOGFILEBASE/glusterfs-$volname.%%M.log\n" STRING+="glusterfs:loglevel = 7\n" - STRING+="path = /\n" + STRING+="path = %%P/\n" STRING+="read only = no\n" STRING+="guest ok = yes\n" printf "$STRING" >> ${CONFIGFILE} diff --git a/extras/hook-scripts/stop/Makefile.am b/extras/hook-scripts/stop/Makefile.am new file mode 100644 index 00000000000..e2ac8e2740b --- /dev/null +++ b/extras/hook-scripts/stop/Makefile.am @@ -0,0 +1,2 @@ +SUBDIRS = pre +CLEANFILES = diff --git a/extras/hook-scripts/stop/pre/Makefile.am b/extras/hook-scripts/stop/pre/Makefile.am new file mode 100644 index 00000000000..85243adbec9 --- /dev/null +++ b/extras/hook-scripts/stop/pre/Makefile.am @@ -0,0 +1 @@ +EXTRA_DIST = S29CTDB-teardown.sh S30samba-stop.sh diff --git a/extras/hook-scripts/stop/pre/S29CTDB-teardown.sh b/extras/hook-scripts/stop/pre/S29CTDB-teardown.sh new file mode 100755 index 00000000000..0b6e50ead0d --- /dev/null +++ b/extras/hook-scripts/stop/pre/S29CTDB-teardown.sh @@ -0,0 +1,80 @@ +#! /bin/bash +#non-portable - RHS-2.0 only +SMB_CONF=/etc/samba/smb.conf + +CTDB_MNT=/gluster/lock +PROGNAME="ctdb" +OPTSPEC="volname:" +VOL= +# $META is the volume that will be used by CTDB as a shared filesystem. +# It is not desirable to use this volume for storing 'data' as well. +# META is set to 'all' (viz. a keyword and hence not a legal volume name) +# to prevent the script from running for volumes it was not intended. +# User needs to set META to the volume that serves CTDB lockfile. +META="all" + +function sighup_samba () { + pid=`cat /var/run/smbd.pid` + if [ "$pid" != "" ] + then + kill -HUP $pid; + else + /etc/init.d/smb start + fi +} + +function parse_args () { + ARGS=$(getopt -l $OPTSPEC -name $PROGNAME $@) + eval set -- "$ARGS" + + while true; do + case $1 in + --volname) + shift + VOL=$1 + ;; + + *) + shift + break + ;; + + esac + + shift + done +} + + +function remove_ctdb_options () { + IFS=$'\n' + GLUSTER_CTDB_CONFIG=$'# ctdb config for glusterfs\n\tclustering = yes\n\tidmap backend = tdb2\n' + + for line in $GLUSTER_CTDB_CONFIG + do + sed -i /"$line"/d $SMB_CONF + done + unset IFS +} + +function remove_fstab_entry () { + volname=$1 + mntpt=$2 + mntent="`hostname`:/$volname $mntpt glusterfs defaults,transport=tcp 0 0" + esc_mntent=$(echo -e "$mntent" | sed 's/\//\\\//g') + exists=`grep "^$mntent" /etc/fstab` + if [ "$exists" != " " ] + then + sed -i /"$esc_mntent"/d /etc/fstab + fi +} + +parse_args $@ +if [ "$META" = "$VOL" ] +then + umount "$CTDB_MNT" + chkconfig ctdb off + remove_fstab_entry $VOL $CTDB_MNT + remove_ctdb_options + sighup_samba +fi diff --git a/extras/hook-scripts/S30samba-stop.sh b/extras/hook-scripts/stop/pre/S30samba-stop.sh index 8950eea436e..8950eea436e 100755 --- a/extras/hook-scripts/S30samba-stop.sh +++ b/extras/hook-scripts/stop/pre/S30samba-stop.sh |