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

Reply via email to