summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLalatendu Mohanty <lmohanty@redhat.com>2013-09-16 14:56:50 -0400
committerAnand Avati <avati@redhat.com>2013-10-04 17:05:35 -0700
commit31cacce7702d1f08270c0b2f84ea0fdfcae6b3e0 (patch)
treecc371a898166fa98eceb25cf7b9f03df1fe43159
parent8c1f5cffea19c2119be7c55c79325a5d6324faa2 (diff)
hookscripts: Changes in hook scripts to make it work on all Linux/GNU distribution
Removed the hard coded values for smb.conf, smb logfile location and smbd.pid. The current hook scripts also work for manully compiled (make, make install) instance of gluster and Samba. But we have to manually copy the hook scripts to respective locations. Change-Id: I14056830fcd2ecb48b3c4df89265f4408c8de3e3 Signed-off-by: Lalatendu Mohanty <lmohanty@redhat.com> Reviewed-on: http://review.gluster.org/5947 Reviewed-by: poornima g <pgurusid@redhat.com> Reviewed-by: susant palai <spalai@redhat.com> Reviewed-by: Raghavendra Talur <rtalur@redhat.com> Tested-by: Raghavendra Talur <rtalur@redhat.com> Reviewed-by: Anand Avati <avati@redhat.com>
-rwxr-xr-xextras/hook-scripts/S30samba-start.sh25
-rwxr-xr-xextras/hook-scripts/S30samba-stop.sh19
2 files changed, 37 insertions, 7 deletions
diff --git a/extras/hook-scripts/S30samba-start.sh b/extras/hook-scripts/S30samba-start.sh
index 2517f10..191b1db 100755
--- a/extras/hook-scripts/S30samba-start.sh
+++ b/extras/hook-scripts/S30samba-start.sh
@@ -23,6 +23,9 @@
PROGNAME="Ssamba-start"
OPTSPEC="volname:"
VOL=
+CONFIGFILE=
+LOGFILEBASE=
+PIDDIR=
function parse_args () {
ARGS=$(getopt -l $OPTSPEC -name $PROGNAME $@)
@@ -43,22 +46,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.log\n"
+ STRING+="glusterfs:logfile = $LOGFILEBASE/glusterfs-$volname.log\n"
STRING+="glusterfs:loglevel = 7\n"
STRING+="path = /\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 [ "$pid" != "" ]
then
kill -HUP "$pid";
@@ -87,7 +101,10 @@ if [ $(get_smb "$VOL") = "disable" ]; then
exit 0
fi
-if ! grep --quiet "gluster-$VOL" /etc/samba/smb.conf ; then
+#Find smb.conf, smbd pid directory and smbd logfile path
+find_config_info
+
+if ! grep --quiet "gluster-$VOL" ${CONFIGFILE} ; then
add_samba_share $VOL
sighup_samba
fi
diff --git a/extras/hook-scripts/S30samba-stop.sh b/extras/hook-scripts/S30samba-stop.sh
index def87e0..f7150c1 100755
--- a/extras/hook-scripts/S30samba-stop.sh
+++ b/extras/hook-scripts/S30samba-stop.sh
@@ -18,6 +18,8 @@
PROGNAME="Ssamba-stop"
OPTSPEC="volname:"
VOL=
+CONFIGFILE=
+PIDDIR=
function parse_args () {
ARGS=$(getopt -l $OPTSPEC -name $PROGNAME $@)
@@ -38,15 +40,25 @@ 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'}`
+}
+
function del_samba_share () {
volname=$1
- cp /etc/samba/smb.conf /tmp/smb.conf
+ cp ${CONFIGFILE} /tmp/smb.conf
sed -i "/gluster-$volname/,/^$/d" /tmp/smb.conf &&\
- cp /tmp/smb.conf /etc/samba/smb.conf
+ cp /tmp/smb.conf ${CONFIGFILE}
}
function sighup_samba () {
- pid=`cat /var/run/smbd.pid`
+ pid=`cat ${PIDDIR}/smbd.pid`
if [ $pid != "" ]
then
kill -HUP $pid;
@@ -56,5 +68,6 @@ function sighup_samba () {
}
parse_args $@
+find_config_info
del_samba_share $VOL
sighup_samba