diff options
| author | Meghana M <mmadhusu@redhat.com> | 2015-08-12 14:48:39 +0530 | 
|---|---|---|
| committer | Kaleb KEITHLEY <kkeithle@redhat.com> | 2016-03-14 21:24:54 -0700 | 
| commit | dd1201e01f7f3cd86992f57f9b46f476bdb43d8c (patch) | |
| tree | 064c4b5af8b0100c639546403e10edfffd70adbf | |
| parent | 8a5b697456c6d5b849fff117a8150c319d850a5c (diff) | |
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 <mmadhusu@redhat.com>
Reviewed-on: http://review.gluster.org/11949
Reviewed-by: soumya k <skoduri@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-on: http://review.gluster.org/13719
Tested-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Smoke: Gluster Build System <jenkins@build.gluster.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
| -rw-r--r-- | extras/ganesha/scripts/ganesha-ha.sh | 86 | 
1 files changed, 50 insertions, 36 deletions
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 ()  | 
