1f2f23ddef
Resolves: bz#1350745 bz#1362129 bz#1541568 bz#1597252 bz#1599220 Resolves: bz#1633177 bz#1637564 bz#1639476 bz#1639568 bz#1643370 Resolves: bz#1645480 bz#1648296 bz#1648893 bz#1651040 bz#1651460 Resolves: bz#1652466 bz#1652537 bz#1653224 bz#1653613 bz#1654103 Resolves: bz#1654161 bz#1655385 bz#1655578 bz#1656357 bz#1659439 Signed-off-by: Milind Changire <mchangir@redhat.com>
103 lines
3.8 KiB
Diff
103 lines
3.8 KiB
Diff
From 644bcd954000b77fc8f49e3a7941de23ca869427 Mon Sep 17 00:00:00 2001
|
|
From: Anoop C S <anoopcs@redhat.com>
|
|
Date: Wed, 21 Mar 2018 13:09:01 +0530
|
|
Subject: [PATCH 481/493] extras/hooks: Do not blindly remove volume share from
|
|
smb.conf
|
|
|
|
When Gluster volumes are shared via Samba, any extra smb.conf parameter
|
|
setting done by administrator to those shares are lost during restart
|
|
of the volume. Instead of removing the whole share completely from
|
|
smb.conf(via hook scripts during volume stop) it is better to make it
|
|
temporarily unavailable to end-users till the volume is started again.
|
|
Therefore we make use of a smb.conf parameter named 'available'[1] to
|
|
achieve the above intend.
|
|
|
|
[1] https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html
|
|
|
|
upstream ref: https://review.gluster.org/c/glusterfs/+/19750
|
|
|
|
Change-Id: I68a9055b50791f6ffd3b95a3c13d858a75fa6530
|
|
BUG: 1164778
|
|
Signed-off-by: Anoop C S <anoopcs@redhat.com>
|
|
Reviewed-on: https://code.engineering.redhat.com/gerrit/158495
|
|
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
|
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
|
---
|
|
extras/hook-scripts/set/post/S30samba-set.sh | 11 ++++++-----
|
|
extras/hook-scripts/start/post/S30samba-start.sh | 4 +++-
|
|
extras/hook-scripts/stop/pre/S30samba-stop.sh | 6 +++---
|
|
3 files changed, 12 insertions(+), 9 deletions(-)
|
|
|
|
diff --git a/extras/hook-scripts/set/post/S30samba-set.sh b/extras/hook-scripts/set/post/S30samba-set.sh
|
|
index b93415b..c596db0 100755
|
|
--- a/extras/hook-scripts/set/post/S30samba-set.sh
|
|
+++ b/extras/hook-scripts/set/post/S30samba-set.sh
|
|
@@ -103,9 +103,9 @@ function sighup_samba () {
|
|
fi
|
|
}
|
|
|
|
-function del_samba_share () {
|
|
+function deactivate_samba_share () {
|
|
volname=$1
|
|
- sed -i "/\[gluster-$volname\]/,/^$/d" ${CONFIGFILE}
|
|
+ sed -i -e '/^\[gluster-'"$volname"'\]/{ :a' -e 'n; /available = no/H; /^$/!{$!ba;}; x; /./!{ s/^/available = no/; $!{G;x}; $H; }; s/.*//; x; };' ${CONFIGFILE}
|
|
}
|
|
|
|
function is_volume_started () {
|
|
@@ -140,12 +140,13 @@ if [ "$USERCIFS_SET" = "YES" ] || [ "$USERSMB_SET" = "YES" ]; then
|
|
find_config_info
|
|
|
|
if [ "$(get_smb "$VOL")" = "disable" ]; then
|
|
- del_samba_share $VOL
|
|
- sighup_samba
|
|
+ deactivate_samba_share $VOL
|
|
else
|
|
if ! grep --quiet "\[gluster-$VOL\]" ${CONFIGFILE} ; then
|
|
add_samba_share $VOL
|
|
- sighup_samba
|
|
+ else
|
|
+ sed -i '/\[gluster-'"$VOL"'\]/,/^$/!b;/available = no/d' ${CONFIGFILE}
|
|
fi
|
|
fi
|
|
+ sighup_samba
|
|
fi
|
|
diff --git a/extras/hook-scripts/start/post/S30samba-start.sh b/extras/hook-scripts/start/post/S30samba-start.sh
|
|
index 92ddaf4..5d586ee 100755
|
|
--- a/extras/hook-scripts/start/post/S30samba-start.sh
|
|
+++ b/extras/hook-scripts/start/post/S30samba-start.sh
|
|
@@ -127,5 +127,7 @@ find_config_info
|
|
|
|
if ! grep --quiet "\[gluster-$VOL\]" ${CONFIGFILE} ; then
|
|
add_samba_share $VOL
|
|
- sighup_samba
|
|
+else
|
|
+ sed -i '/\[gluster-'"$VOL"'\]/,/^$/!b;/available = no/d' ${CONFIGFILE}
|
|
fi
|
|
+sighup_samba
|
|
diff --git a/extras/hook-scripts/stop/pre/S30samba-stop.sh b/extras/hook-scripts/stop/pre/S30samba-stop.sh
|
|
index 5e87845..ea79938 100755
|
|
--- a/extras/hook-scripts/stop/pre/S30samba-stop.sh
|
|
+++ b/extras/hook-scripts/stop/pre/S30samba-stop.sh
|
|
@@ -56,9 +56,9 @@ function find_config_info () {
|
|
PIDDIR=`smbd -b | grep PIDDIR | awk '{print $2}'`
|
|
}
|
|
|
|
-function del_samba_share () {
|
|
+function deactivate_samba_share () {
|
|
volname=$1
|
|
- sed -i "/\[gluster-$volname\]/,/^$/d" ${CONFIGFILE}
|
|
+ sed -i -e '/^\[gluster-'"$volname"'\]/{ :a' -e 'n; /available = no/H; /^$/!{$!ba;}; x; /./!{ s/^/available = no/; $!{G;x}; $H; }; s/.*//; x; };' ${CONFIGFILE}
|
|
}
|
|
|
|
function sighup_samba () {
|
|
@@ -73,5 +73,5 @@ function sighup_samba () {
|
|
|
|
parse_args "$@"
|
|
find_config_info
|
|
-del_samba_share $VOL
|
|
+deactivate_samba_share $VOL
|
|
sighup_samba
|
|
--
|
|
1.8.3.1
|
|
|