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 <[email protected]> --- 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, 32 insertions(+), 16 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/01/26101/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 c220057..8437c69 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 @@ -23,6 +23,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..b7470ae 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,28 +1,39 @@ 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; + } + + public Guid getVmId() { + return vmId; + } + + public VMStatus getStatus() { + return status; + } + + public VmExitStatus getExitStatus() { + return exitStatus; } @Override 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 f695f60..9f38a4b 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 @@ -279,7 +279,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/26101 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If541c6d33a7cfa310ba776e4bc7fa0f1e45aa077 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Arik Hadas <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
