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

Reply via email to