diff options
author | Raghavendra Talur <rtalur@redhat.com> | 2013-10-07 13:08:49 +0530 |
---|---|---|
committer | Anand Avati <avati@redhat.com> | 2013-10-08 09:22:00 -0700 |
commit | 11bb1fc5849a557d1a26e59bd651fbd0d07a1b8d (patch) | |
tree | 08cd90bc0189b9b09d8f5eae89947805c7001d32 | |
parent | 1f6b0f5cfc5abebe3a8facfb8b72e5554c1314d2 (diff) |
extras/hookscripts: Fix the multiple entries in smb.conf problem.
Problem:
1. Force starts and user.smb sets were adding multiple entries to
the smb.conf file for the same volume.
Make a check for the entry and search with exact name.
2. Again, while deleting the share name from smb.conf search with
exact name so that volumes with names which are substrings of ones to
be deleted don't get deleted.
3. We don't need to use a tmp file while using sed -i, fixed that.
Change-Id: Ie0f7c9d4790ef9a177a043378a761c9ffe1628e5
BUG: 994727
Signed-off-by: Raghavendra Talur <rtalur@redhat.com>
Reviewed-on: http://review.gluster.org/6043
Reviewed-by: Niels de Vos <ndevos@redhat.com>
Reviewed-by: Lalatendu Mohanty <lmohanty@redhat.com>
Tested-by: Lalatendu Mohanty <lmohanty@redhat.com>
-rwxr-xr-x | extras/hook-scripts/S30samba-set.sh | 12 | ||||
-rwxr-xr-x | extras/hook-scripts/S30samba-start.sh | 4 | ||||
-rwxr-xr-x | extras/hook-scripts/S30samba-stop.sh | 6 |
3 files changed, 10 insertions, 12 deletions
diff --git a/extras/hook-scripts/S30samba-set.sh b/extras/hook-scripts/S30samba-set.sh index 87cd31c5a2a..5047660fe7d 100755 --- a/extras/hook-scripts/S30samba-set.sh +++ b/extras/hook-scripts/S30samba-set.sh @@ -73,7 +73,7 @@ function add_samba_share () { function sighup_samba () { pid=`cat /var/run/smbd.pid` - if [ "$pid" != "" ] + if [ "x$pid" != "x" ] then kill -HUP "$pid"; else @@ -83,9 +83,7 @@ function sighup_samba () { function del_samba_share () { volname=$1 - cp /etc/samba/smb.conf /tmp/smb.conf - sed -i "/gluster-$volname/,/^$/d" /tmp/smb.conf &&\ - cp /tmp/smb.conf /etc/samba/smb.conf + sed -i "/\[gluster-$volname\]/,/^$/d" /etc/samba/smb.conf } function is_volume_started () { @@ -100,8 +98,10 @@ if [ "0" = $(is_volume_started "$VOL") ]; then fi if [ "$enable_smb" = "enable" ]; then - add_samba_share $VOL - sighup_samba + if ! grep --quiet "\[gluster-$VOL\]" /etc/samba/smb.conf ; then + add_samba_share $VOL + sighup_samba + fi elif [ "$enable_smb" = "disable" ]; then del_samba_share $VOL diff --git a/extras/hook-scripts/S30samba-start.sh b/extras/hook-scripts/S30samba-start.sh index 191b1dbb438..9f1b20a25b0 100755 --- a/extras/hook-scripts/S30samba-start.sh +++ b/extras/hook-scripts/S30samba-start.sh @@ -73,7 +73,7 @@ function add_samba_share () { function sighup_samba () { pid=`cat ${PIDDIR}/smbd.pid` - if [ "$pid" != "" ] + if [ "x$pid" != "x" ] then kill -HUP "$pid"; else @@ -104,7 +104,7 @@ fi #Find smb.conf, smbd pid directory and smbd logfile path find_config_info -if ! grep --quiet "gluster-$VOL" ${CONFIGFILE} ; then +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 f7150c10e50..8950eea436e 100755 --- a/extras/hook-scripts/S30samba-stop.sh +++ b/extras/hook-scripts/S30samba-stop.sh @@ -52,14 +52,12 @@ function find_config_info () { function del_samba_share () { volname=$1 - cp ${CONFIGFILE} /tmp/smb.conf - sed -i "/gluster-$volname/,/^$/d" /tmp/smb.conf &&\ - cp /tmp/smb.conf ${CONFIGFILE} + sed -i "/\[gluster-$volname\]/,/^$/d" ${CONFIGFILE} } function sighup_samba () { pid=`cat ${PIDDIR}/smbd.pid` - if [ $pid != "" ] + if [ "x$pid" != "x" ] then kill -HUP $pid; else |