summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaghavendra Talur <rtalur@redhat.com>2014-03-06 19:09:13 +0530
committerVijay Bellur <vbellur@redhat.com>2014-03-10 06:38:21 -0700
commitecc475d0a517d7f58014bed93fc0957b3369d1b7 (patch)
treea67ab723276d262c42f47d78792006708692d554
parentbed3fcd3a47d3ca35b3536e0cad2b293dd240ce4 (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.ac6
-rw-r--r--extras/hook-scripts/Makefile.am4
-rw-r--r--extras/hook-scripts/set/Makefile.am2
-rw-r--r--extras/hook-scripts/set/post/Makefile.am1
-rwxr-xr-xextras/hook-scripts/set/post/S30samba-set.sh (renamed from extras/hook-scripts/S30samba-set.sh)23
-rw-r--r--extras/hook-scripts/start/Makefile.am2
-rw-r--r--extras/hook-scripts/start/post/Makefile.am1
-rwxr-xr-x[-rw-r--r--]extras/hook-scripts/start/post/S29CTDBsetup.sh (renamed from extras/hook-scripts/S29CTDBsetup.sh)42
-rwxr-xr-xextras/hook-scripts/start/post/S30samba-start.sh (renamed from extras/hook-scripts/S30samba-start.sh)2
-rw-r--r--extras/hook-scripts/stop/Makefile.am2
-rw-r--r--extras/hook-scripts/stop/pre/Makefile.am1
-rwxr-xr-xextras/hook-scripts/stop/pre/S29CTDB-teardown.sh80
-rwxr-xr-xextras/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