From dd1201e01f7f3cd86992f57f9b46f476bdb43d8c Mon Sep 17 00:00:00 2001 From: Meghana M Date: Wed, 12 Aug 2015 14:48:39 +0530 Subject: common-ha : refresh-config should print sensible output ganesha-ha.sh --refresh-config printed the dbus-send output messages as is on the console. Improving the output of the operation by redirecting the messages to /var/log/messages and by checking the exit code of the command executed. The behaviour is also changed a litlle by exiting when refresh-config fails on any of the nodes. We don't want to continue changing config files on other nodes when refresh-config has already failed on one of the nodes. BUG: 1254494 Change-Id: I33a1c0f750695135118b4ad4d5fa038b27bc7fec Signed-off-by: Meghana M Reviewed-on: http://review.gluster.org/11949 Reviewed-by: soumya k Tested-by: Gluster Build System Reviewed-by: Kaleb KEITHLEY Tested-by: NetBSD Build System Reviewed-on: http://review.gluster.org/13719 Tested-by: Kaleb KEITHLEY Smoke: Gluster Build System NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System --- extras/ganesha/scripts/ganesha-ha.sh | 86 +++++++++++++++++++++--------------- 1 file changed, 50 insertions(+), 36 deletions(-) (limited to 'extras/ganesha/scripts') diff --git a/extras/ganesha/scripts/ganesha-ha.sh b/extras/ganesha/scripts/ganesha-ha.sh index 0df2a710412..cb4c5424428 100644 --- a/extras/ganesha/scripts/ganesha-ha.sh +++ b/extras/ganesha/scripts/ganesha-ha.sh @@ -246,51 +246,65 @@ grep Export_Id | cut -d " " -f8` while [[ ${3} ]]; do current_host=`echo ${3} | cut -d "." -f 1` if [ ${short_host} != ${current_host} ]; then - scp -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i \ + scp -q -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i \ ${SECRET_PEM} ${HA_CONFDIR}/exports/export.$VOL.conf \ ${current_host}:${HA_CONFDIR}/exports/ - grep Export_Id $HA_CONFDIR/exports/export.$VOL.conf | \ - while read entry; - do - export_id=$(echo $entry | awk -F"[=,;]" '{print$2}') - ssh -oPasswordAuthentication=no \ --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:$export_id" - sleep 1 - ssh -oPasswordAuthentication=no \ --oStrictHostKeyChecking=no -i ${SECRET_PEM} root@${current_host} \ -"dbus-send --system --dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \ -org.ganesha.nfsd.exportmgr.AddExport string:$HA_CONFDIR/exports/export.$VOL.conf \ -string:\"EXPORT(Export_Id=$export_id)\"" - if [ $? -ne 0 ]; then - echo "warning: refresh-config failed on" \ - " ${current_host}" - fi - done + output=$(ssh -oPasswordAuthentication=no -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") + ret=$? + logger <<< "${output}" + if [ ${ret} -ne 0 ]; then + echo "Error: refresh-config failed on ${current_host}." + exit 1 + fi + sleep 1 + output=$(ssh -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i \ +${SECRET_PEM} root@${current_host} "dbus-send --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") + ret=$? + logger <<< "${output}" + if [ ${ret} -ne 0 ]; then + echo "Error: refresh-config failed on ${current_host}." + exit 1 + else + echo "Refresh-config completed on ${current_host}." + fi fi shift done else - echo "warning: refresh-config failed on ${1}" + echo "Error: refresh-config failed. Passwordless ssh is not enabled." + exit 1 fi #Run the same command on the localhost, - grep Export_Id $HA_CONFDIR/exports/export.$VOL.conf | \ - while read entry; - do - export_id=$(echo $entry | awk -F"[=,;]" '{print$2}') - dbus-send --print-reply --system \ - --dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \ - org.ganesha.nfsd.exportmgr.RemoveExport uint16:$removed_id - sleep 1 - dbus-send --system \ - --dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \ - org.ganesha.nfsd.exportmgr.AddExport \ - string:$HA_CONFDIR/exports/export.$VOL.conf \ - string:"EXPORT(Export_Id=$export_id)" - done + output=$(dbus-send --print-reply --system \ +--dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \ +org.ganesha.nfsd.exportmgr.RemoveExport uint16:$removed_id 2>&1) + ret=$? + logger <<< "${output}" + if [ ${ret} -ne 0 ]; then + echo "Error: refresh-config failed on localhost." + exit 1 + fi + sleep 1 + output=$(dbus-send --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) + ret=$? + logger <<< "${output}" + if [ ${ret} -ne 0 ] ; then + echo "Error: refresh-config failed on localhost." + exit 1 + else + echo "Success: refresh-config completed." + fi + } copy_export_config () -- cgit