Arik Hadas has uploaded a new change for review. Change subject: core: set vm exit status to error on fencing ......................................................................
core: set vm exit status to error on fencing As part of fence operation, we set the VM status to down using SetVmStatusVDSCommand. This command did not filled the exit status of the VM which should be ERROR in this case. So this patch adds that missing part by passing the exit status that should be set for the VM while changing its status through the parameters of the command. Change-Id: If541c6d33a7cfa310ba776e4bc7fa0f1e45aa077 Bug-Url: https://bugzilla.redhat.com/1077706 Signed-off-by: Arik Hadas <aha...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/FenceVdsBaseCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SetVmStatusVDSCommandParameters.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVmStatusVDSCommand.java 4 files changed, 35 insertions(+), 17 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/35/26135/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/FenceVdsBaseCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/FenceVdsBaseCommand.java index 990a396..cdd5696 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/FenceVdsBaseCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/FenceVdsBaseCommand.java @@ -22,6 +22,7 @@ import org.ovirt.engine.core.common.businessentities.VDSStatus; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; +import org.ovirt.engine.core.common.businessentities.VmExitStatus; import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.errors.VdcBLLException; @@ -475,7 +476,7 @@ .getInstance() .getResourceManager() .RunVdsCommand(VDSCommandType.SetVmStatus, - new SetVmStatusVDSCommandParameters(vm.getId(), VMStatus.Down)); + new SetVmStatusVDSCommandParameters(vm.getId(), VMStatus.Down, VmExitStatus.Error)); // Write that this VM was shut down by host reboot or manual fence if (returnValue != null && returnValue.getSucceeded()) { LogSettingVmToDown(getVds().getId(), vm.getId()); diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SetVmStatusVDSCommandParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SetVmStatusVDSCommandParameters.java index 38d4f20..ee56893 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SetVmStatusVDSCommandParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SetVmStatusVDSCommandParameters.java @@ -1,32 +1,45 @@ package org.ovirt.engine.core.common.vdscommands; import org.ovirt.engine.core.common.businessentities.VMStatus; +import org.ovirt.engine.core.common.businessentities.VmExitStatus; import org.ovirt.engine.core.compat.Guid; public class SetVmStatusVDSCommandParameters extends VDSParametersBase { - private Guid _vmId; - private VMStatus _status; + private Guid vmId; + private VMStatus status; + private VmExitStatus exitStatus; public SetVmStatusVDSCommandParameters(Guid vmId, VMStatus status) { - _vmId = vmId; - _status = status; + this(vmId, status, VmExitStatus.Normal); } - public Guid getVmId() { - return _vmId; - } - - public VMStatus getStatus() { - return _status; + public SetVmStatusVDSCommandParameters(Guid vmId, VMStatus status, VmExitStatus exitStatus) { + this.vmId = vmId; + this.status = status; + this.exitStatus = exitStatus; } public SetVmStatusVDSCommandParameters() { - _vmId = Guid.Empty; - _status = VMStatus.Down; + vmId = Guid.Empty; + status = VMStatus.Down; + exitStatus = VmExitStatus.Normal; + } + + public Guid getVmId() { + return vmId; + } + + public VMStatus getStatus() { + return status; + } + + public VmExitStatus getExitStatus() { + return exitStatus; } @Override public String toString() { - return String.format("vmId = %s, status = %s", getVmId(), getStatus()); + return String.format("vmId = %s, status = %s, exit status = %s", + getVmId(), getStatus(), getExitStatus()); } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java index 802f99a..3f42c7e 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java @@ -285,7 +285,11 @@ * @param status */ public void InternalSetVmStatus(VM vm, final VMStatus status) { - InternalSetVmStatus(vm, status, VmExitStatus.Normal, StringUtils.EMPTY); + InternalSetVmStatus(vm, status, VmExitStatus.Normal); + } + + public void InternalSetVmStatus(VM vm, final VMStatus status, VmExitStatus exitStatus) { + InternalSetVmStatus(vm, status, exitStatus, StringUtils.EMPTY); } public void InternalSetVmStatus(VM vm, final VMStatus status, final VmExitStatus exitStaus, final String exitMessage) { diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVmStatusVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVmStatusVDSCommand.java index b44bbeb..0c34f38 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVmStatusVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVmStatusVDSCommand.java @@ -36,10 +36,10 @@ ResourceManager.getInstance().RemoveAsyncRunningVm(parameters.getVmId()); VmStatistics vmStatistics = DbFacade.getInstance().getVmStatisticsDao().get(parameters.getVmId()); VM vm = new VM(null, vmDynamic, vmStatistics); - ResourceManager.getInstance().InternalSetVmStatus(vm, status); + ResourceManager.getInstance().InternalSetVmStatus(vm, status, parameters.getExitStatus()); DbFacade.getInstance().getVmStatisticsDao().update(vm.getStatisticsData()); List<VmNetworkInterface> interfaces = vm.getInterfaces(); - if (interfaces != null && interfaces.size() > 0) { + if (interfaces != null && !interfaces.isEmpty()) { for (VmNetworkInterface ifc : interfaces) { VmNetworkStatistics stats = ifc.getStatistics(); DbFacade.getInstance().getVmNetworkStatisticsDao().update(stats); -- To view, visit http://gerrit.ovirt.org/26135 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If541c6d33a7cfa310ba776e4bc7fa0f1e45aa077 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.4 Gerrit-Owner: Arik Hadas <aha...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches