Jiří Moskovčák has uploaded a new change for review. Change subject: core: don't throw an exception, when moving unresponsive VDS to maintenance ......................................................................
core: don't throw an exception, when moving unresponsive VDS to maintenance When VDS which is part of hosted engine cluster becoms non-responsive, it throws an exception when running SetHaMaintenance command which results in roll back of the whole maintenance command preventing user from removing the broken VDS Change-Id: Ibf9b489f73793ea1135a72bf1a9184e0822386d8 Bug-Url: https://bugzilla.redhat.com/1162998 Signed-off-by: Jiri Moskovcak <jmosk...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetHaMaintenanceModeVDSCommand.java 2 files changed, 23 insertions(+), 9 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/54/35654/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java index 68abf83..b63417c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java @@ -60,14 +60,12 @@ SetHaMaintenanceModeVDSCommandParameters params = new SetHaMaintenanceModeVDSCommandParameters(getVds(), HaMaintenanceMode.LOCAL, true); if (!runVdsCommand(VDSCommandType.SetHaMaintenanceMode, params).getSucceeded()) { - // HA maintenance failure is fatal only if the Hosted Engine vm is running on this host - for (VM vm : vms) { - if (vm.isHostedEngine()) { - setSucceeded(false); - return; - } - } haMaintenanceFailed = true; + // HA maintenance failure is fatal only if the Hosted Engine vm is running on this host + if (isHostedEngineOnVds()) { + setSucceeded(false); + return; + } } } @@ -215,4 +213,13 @@ return jobProperties; } + private boolean isHostedEngineOnVds() { + for (VM vm : vms) { + if (vm.isHostedEngine()) { + return true; + } + } + return false; + } + } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetHaMaintenanceModeVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetHaMaintenanceModeVDSCommand.java index 0ad63b8..e3c8fd4 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetHaMaintenanceModeVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetHaMaintenanceModeVDSCommand.java @@ -15,8 +15,15 @@ @Override protected void executeVdsBrokerCommand() { if (getVds().getHighlyAvailableIsConfigured()) { - status = getBroker().setHaMaintenanceMode(getParameters().getMode().name(), getParameters().isEnabled()); - proceedProxyReturnValue(); + try { + status = getBroker().setHaMaintenanceMode(getParameters().getMode().name(), getParameters().isEnabled()); + proceedProxyReturnValue(); + } + catch (RuntimeException e) { + setVdsRuntimeError(e); + // prevent exception handler from rethrowing an exception + getVDSReturnValue().setExceptionString(null); + } } } } -- To view, visit http://gerrit.ovirt.org/35654 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ibf9b489f73793ea1135a72bf1a9184e0822386d8 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.5 Gerrit-Owner: Jiří Moskovčák <jmosk...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches