Michael Kublin has uploaded a new change for review.

Change subject: engine: Hosts that been switched to 'Maintenance' returns to 
non-operational status when disconnectStoragePool fails
......................................................................

engine: Hosts that been switched to 'Maintenance' returns to non-operational 
status when disconnectStoragePool fails

The following patch will solve a described problem
During VdsManager.OnTimer we recognized that host was switched to Maintaince 
and tried to disconnect it, when it fails
it was moved to Non-Operational.
>From now, if the host fails it  will left connected but will be marked at DB 
>as it is in Maintaince

Change-Id: I76083f372ed5d9ab124047bcadb03b77e24064f0
Bug-Url: https://bugzilla.redhat.com/874019
Signed-off-by: Michael Kublin <mkub...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/IVdsEventListener.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
3 files changed, 10 insertions(+), 13 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/09/10109/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java
index 0fe80e0..fc8faee 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java
@@ -64,10 +64,12 @@
 public class VdsEventListener implements IVdsEventListener {
 
     @Override
-    public void vdsMovedToMaintanance(Guid vdsId) {
-        VDS vds = DbFacade.getInstance().getVdsDao().get(vdsId);
-        MaintananceVdsCommand.ProcessStorageOnVdsInactive(vds);
-        ExecutionHandler.updateSpecificActionJobCompleted(vdsId, 
VdcActionType.MaintananceVds, true);
+    public void vdsMovedToMaintanance(VDS vds) {
+        try {
+            MaintananceVdsCommand.ProcessStorageOnVdsInactive(vds);
+        } finally {
+            ExecutionHandler.updateSpecificActionJobCompleted(vds.getId(), 
VdcActionType.MaintananceVds, true);
+        }
     }
 
     @Override
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/IVdsEventListener.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/IVdsEventListener.java
index 4c19477..9bc7c15 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/IVdsEventListener.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/IVdsEventListener.java
@@ -16,7 +16,7 @@
             Guid domainId,
             Map<String, String> customLogValues); // BLL
 
-    void vdsMovedToMaintanance(Guid vdsId); // BLL
+    void vdsMovedToMaintanance(VDS vds); // BLL
 
     void storageDomainNotOperational(Guid storageDomainId, Guid 
storagePoolId); // BLL
 
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
index a53b9ec..809c2a8 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
@@ -312,15 +312,10 @@
 
             if (_vds.getstatus() == VDSStatus.Maintenance) {
                 try {
-                    
ResourceManager.getInstance().getEventListener().vdsMovedToMaintanance(_vds.getId());
+                    
ResourceManager.getInstance().getEventListener().vdsMovedToMaintanance(_vds);
                 } catch (RuntimeException ex) {
-                    log.error("Host encounter a problem moving to maintenance 
mode. The Host status will change to Non operational status.");
-                    ResourceManager
-                            .getInstance()
-                            .getEventListener()
-                            .vdsNonOperational(_vds.getId(), 
_vds.getNonOperationalReason(), true, true,
-                                    Guid.Empty);
-                    throw ex;
+                    log.errorFormat("Host encounter a problem moving to 
maintenance mode, probably error during disconnecting it from pool {0}. The 
Host will stay in Maintenance",
+                            ex.getMessage());
                 }
             } else if (_vds.getstatus() == VDSStatus.NonOperational && 
_firstStatus != VDSStatus.NonOperational) {
 


--
To view, visit http://gerrit.ovirt.org/10109
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I76083f372ed5d9ab124047bcadb03b77e24064f0
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Michael Kublin <mkub...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to