Blob Blame History Raw
From 654291985a1fb1954579843f3083323b6470d724 Mon Sep 17 00:00:00 2001
From: Jiffin Tony Thottan <jthottan@redhat.com>
Date: Fri, 28 Oct 2016 17:37:39 +0530
Subject: [PATCH 192/206] ganesha/scripts : use export id for dbus signals

Currently for add export and update export parameter passed for executing those signal
is "PATH". This is based on assumption that volume name and PATH will always be same.
But it is wrong for subdir exports. The only reliable parameter in export configuration
file is "Export_Id".

Upstream reference :
> Change-Id: Ic63ff44ac7736e14502034b74beaae27292eddf9
> BUG: 1389746
> Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com>
> Reviewed-on: http://review.gluster.org/15751
> Smoke: Gluster Build System <jenkins@build.gluster.org>
> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
> CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
> Reviewed-by: soumya k <skoduri@redhat.com>
> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
> Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com>

Change-Id: Ic63ff44ac7736e14502034b74beaae27292eddf9
BUG: 1389661
Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/90524
Reviewed-by: Soumya Koduri <skoduri@redhat.com>
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
---
 extras/ganesha/scripts/ganesha-ha.sh               | 12 ++++++------
 extras/hook-scripts/start/post/S31ganesha-start.sh | 10 +++-------
 2 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/extras/ganesha/scripts/ganesha-ha.sh b/extras/ganesha/scripts/ganesha-ha.sh
index 45d9e56..5bdc893 100644
--- a/extras/ganesha/scripts/ganesha-ha.sh
+++ b/extras/ganesha/scripts/ganesha-ha.sh
@@ -241,8 +241,8 @@ refresh_config ()
         local HA_CONFDIR=${2}
         local short_host=$(hostname -s)
 
-        removed_id=`cat $HA_CONFDIR/exports/export.$VOL.conf |\
-grep Export_Id | awk -F"[=,;]" '{print$2}' | tr -d '[[:space:]]'`
+        local export_id=$(grep ^[[:space:]]*Export_Id $HA_CONFDIR/exports/export.$VOL.conf |\
+                          awk -F"[=,;]" '{print $2}' | tr -d '[[:space:]]')
 
         if [ -e ${SECRET_PEM} ]; then
         while [[ ${3} ]]; do
@@ -252,7 +252,7 @@ grep Export_Id | awk -F"[=,;]" '{print$2}' | tr -d '[[:space:]]'`
 -oStrictHostKeyChecking=no -i ${SECRET_PEM} root@${current_host} \
 "dbus-send --print-reply --system --dest=org.ganesha.nfsd \
 /org/ganesha/nfsd/ExportMgr org.ganesha.nfsd.exportmgr.RemoveExport \
-uint16:$removed_id 2>&1")
+uint16:$export_id 2>&1")
                 ret=$?
                 logger <<< "${output}"
                 if [ ${ret} -ne 0 ]; then
@@ -265,7 +265,7 @@ uint16:$removed_id 2>&1")
 "dbus-send --print-reply --system --dest=org.ganesha.nfsd \
 /org/ganesha/nfsd/ExportMgr org.ganesha.nfsd.exportmgr.AddExport \
 string:$HA_CONFDIR/exports/export.$VOL.conf \
-string:\"EXPORT(Path=/$VOL)\" 2>&1")
+string:\"EXPORT(Export_Id=$export_id)\" 2>&1")
                 ret=$?
                 logger <<< "${output}"
                 if [ ${ret} -ne 0 ]; then
@@ -286,7 +286,7 @@ string:\"EXPORT(Path=/$VOL)\" 2>&1")
     # Run the same command on the localhost,
         output=$(dbus-send --print-reply --system --dest=org.ganesha.nfsd \
 /org/ganesha/nfsd/ExportMgr org.ganesha.nfsd.exportmgr.RemoveExport \
-uint16:$removed_id 2>&1)
+uint16:$export_id 2>&1)
         ret=$?
         logger <<< "${output}"
         if [ ${ret} -ne 0 ]; then
@@ -297,7 +297,7 @@ uint16:$removed_id 2>&1)
         output=$(dbus-send --print-reply --system --dest=org.ganesha.nfsd \
 /org/ganesha/nfsd/ExportMgr org.ganesha.nfsd.exportmgr.AddExport \
 string:$HA_CONFDIR/exports/export.$VOL.conf \
-string:"EXPORT(Path=/$VOL)" 2>&1)
+string:"EXPORT(Export_Id=$export_id)" 2>&1)
         ret=$?
         logger <<< "${output}"
         if [ ${ret} -ne 0 ] ; then
diff --git a/extras/hook-scripts/start/post/S31ganesha-start.sh b/extras/hook-scripts/start/post/S31ganesha-start.sh
index 1b258cc..1bbeeab 100755
--- a/extras/hook-scripts/start/post/S31ganesha-start.sh
+++ b/extras/hook-scripts/start/post/S31ganesha-start.sh
@@ -61,6 +61,7 @@ echo "}"
 }
 
 #This function keeps track of export IDs and increments it with every new entry
+#Also it adds the export dynamically by sending dbus signals
 function export_add()
 {
         count=`ls -l $GANESHA_DIR/exports/*.conf | wc -l`
@@ -79,17 +80,13 @@ function export_add()
         #fi
         fi
         echo $EXPORT_ID > $GANESHA_DIR/.export_added
-        sed -i s/Export_Id.*/"Export_Id= $EXPORT_ID ;"/ \
+        sed -i s/Export_Id.*/"Export_Id=$EXPORT_ID;"/ \
 $GANESHA_DIR/exports/export.$VOL.conf
         echo "%include \"$GANESHA_DIR/exports/export.$VOL.conf\"" >> $CONF1
-}
 
-#This function adds a new export dynamically by sending dbus signals
-function dynamic_export_add()
-{
         dbus-send --print-reply --system --dest=org.ganesha.nfsd \
 /org/ganesha/nfsd/ExportMgr org.ganesha.nfsd.exportmgr.AddExport \
-string:$GANESHA_DIR/exports/export.$VOL.conf string:"EXPORT(Path=/$VOL)"
+string:$GANESHA_DIR/exports/export.$VOL.conf string:"EXPORT(Export_Id=$EXPORT_ID)"
 
 }
 
@@ -99,7 +96,6 @@ function start_ganesha()
         sed -i /$VOL.conf/d  $CONF1
         #Create a new export entry
         export_add $VOL
-        dynamic_export_add $VOL
 
 }
 
-- 
2.9.3