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>
This commit is contained in:
Raghavendra Talur 2014-03-06 19:09:13 +05:30 committed by Vijay Bellur
parent bed3fcd3a4
commit ecc475d0a5
13 changed files with 143 additions and 23 deletions

View File

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

View File

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

View File

@ -0,0 +1,2 @@
SUBDIRS = post
CLEANFILES =

View File

@ -0,0 +1 @@
EXTRA_DIST = S30samba-set.sh

View File

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

View File

@ -0,0 +1,2 @@
SUBDIRS = post
CLEANFILES =

View File

@ -0,0 +1 @@
EXTRA_DIST = S29CTDBsetup.sh S30samba-start.sh

View File

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

View File

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

View File

@ -0,0 +1,2 @@
SUBDIRS = pre
CLEANFILES =

View File

@ -0,0 +1 @@
EXTRA_DIST = S29CTDB-teardown.sh S30samba-stop.sh

View File

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