Liron Ar has uploaded a new change for review.

Change subject: core: WIP: avoid having LOCKED domain on a failed reconstruct.
......................................................................

core: WIP: avoid having LOCKED domain on a failed reconstruct.

When the reconstruct command is being executed during its CDA phase
the pool domains statuses are loaded and are checked for being different
then LOCKED.
getStorageDomain() is being called prior to the CDA check from
getJobMessageProperties(), which means that possibly the loaded domain
would be in status LOCKED.

In case of using compensation through reconstruct, the domain status
might be reverted to LOCKED instead of to it's actual status.

This patch only verifies that the loaded domain withing
getStorageDomain() isn't LOCKED, a further behaviour change might be
needed generally.

Change-Id: Icf13f36f30d4cf48e8517444a33bab6359416d37
Signed-off-by: Liron Aravot <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ReconstructMasterDomainCommand.java
1 file changed, 14 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/43/16043/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ReconstructMasterDomainCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ReconstructMasterDomainCommand.java
index a9bccc9..fac262f 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ReconstructMasterDomainCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ReconstructMasterDomainCommand.java
@@ -50,13 +50,25 @@
         canChooseInactiveDomainAsMaster = 
parameters.isCanChooseInactiveDomainAsMaster();
     }
 
+    private boolean checkIsDomainLocked(StoragePoolIsoMap domain) {
+        if (StorageDomainStatus.Locked == domain.getstatus()) {
+            addInvalidSDStatusMessage(StorageDomainStatus.Locked);
+            return false;
+        }
+
+        return true;
+    }
+
     @Override
     protected boolean canDoAction() {
+        if 
(!checkIsDomainLocked(getStorageDomain().getStoragePoolIsoMapData())) {
+            return false;
+        }
+
         List<StoragePoolIsoMap> poolDomains = DbFacade.getInstance()
                 
.getStoragePoolIsoMapDao().getAllForStoragePool(getStoragePool().getId());
         for (StoragePoolIsoMap poolDomain : poolDomains) {
-            if (poolDomain.getstatus() == StorageDomainStatus.Locked) {
-                addInvalidSDStatusMessage(poolDomain.getstatus());
+            if (!checkIsDomainLocked(poolDomain)) {
                 return false;
             }
         }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Icf13f36f30d4cf48e8517444a33bab6359416d37
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Liron Ar <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to