From ef1b79a86714e235a7430e2eb95acceb83cfc774 Mon Sep 17 00:00:00 2001 From: Soumya Koduri Date: Wed, 17 Feb 2016 15:34:44 +0530 Subject: ganesha: Read export_id on each node while performing refresh-config As mentioned in https://bugzilla.redhat.com/show_bug.cgi?id=1309238#c1, there could be cases which shall result in having different ExportIDs for the same volume on each node forming the ganesha cluster. Hence during refresh-config, it is necessary to read the ExportID on each of those nodes and re-export that volume with the same ID. BUG: 1309238 Change-Id: Id39b3a0ce2614ee611282ff2bee04cede1fc129d Signed-off-by: Soumya Koduri Reviewed-on: http://review.gluster.org/13459 CentOS-regression: Gluster Build System Smoke: Gluster Build System NetBSD-regression: NetBSD Build System Reviewed-by: Kaleb KEITHLEY Reviewed-on: http://review.gluster.org/13726 Tested-by: Kaleb KEITHLEY --- extras/ganesha/scripts/dbus-send.sh | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'extras/ganesha/scripts/dbus-send.sh') diff --git a/extras/ganesha/scripts/dbus-send.sh b/extras/ganesha/scripts/dbus-send.sh index 45644fd6f71..79c6a2f38af 100755 --- a/extras/ganesha/scripts/dbus-send.sh +++ b/extras/ganesha/scripts/dbus-send.sh @@ -89,20 +89,26 @@ function dynamic_export_add() done echo $EXPORT_ID > $GANESHA_DIR/.export_added check_cmd_status `echo $?` + sed -i s/Export_Id.*/"Export_Id= $EXPORT_ID ;"/ \ +$GANESHA_DIR/exports/export.$VOL.conf + check_cmd_status `echo $?` + dbus-send --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)" + check_cmd_status `echo $?` } #This function removes an export dynamically(uses the export_id of the export) function dynamic_export_remove() { - grep Export_Id $GANESHA_DIR/exports/export.$VOL.conf | \ - while read entry; - do - dbus-send --print-reply --system \ - --dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \ - org.ganesha.nfsd.exportmgr.RemoveExport \ - uint16:$(echo $entry | awk -F"[=,;]" '{print$2}') - check_cmd_status `echo $?` - done + removed_id=`cat $GANESHA_DIR/exports/export.$VOL.conf |\ +grep Export_Id | cut -d ' ' -f8` + check_cmd_status `echo $?` + dbus-send --print-reply --system \ +--dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \ +org.ganesha.nfsd.exportmgr.RemoveExport uint16:$removed_id + check_cmd_status `echo $?` sed -i /$VOL.conf/d $CONF rm -rf $GANESHA_DIR/exports/export.$VOL.conf -- cgit