Federico Simoncelli has uploaded a new change for review.

Change subject: core: early pool check in electNewMaster
......................................................................

core: early pool check in electNewMaster

This patch improves the readability of electNewMaster.

Change-Id: Ic1417c3f0e85b8a0613a2aad7c93e75abe226ad0
Signed-off-by: Federico Simoncelli <fsimo...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java
1 file changed, 26 insertions(+), 21 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/28/28228/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java
index c2fd317..321d550 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java
@@ -341,32 +341,37 @@
      * @return an elected master domain or null
      */
     protected StorageDomain electNewMaster(boolean duringReconstruct, boolean 
selectInactiveWhenNoActiveUnknownDomains, boolean 
canChooseCurrentMasterAsNewMaster) {
+        if (getStoragePool() == null) {
+            log.warnFormat("Cannot elect new master: storage pool not found");
+            return null;
+        }
+
         StorageDomain newMaster = null;
-        if (getStoragePool() != null) {
-            List<StorageDomain> storageDomains = 
getStorageDomainDAO().getAllForStoragePool(getStoragePool().getId());
-            Collections.sort(storageDomains, 
LastTimeUsedAsMasterComp.instance);
-            if (storageDomains.size() > 0) {
-                StorageDomain storageDomain = getStorageDomain();
-                for (StorageDomain dbStorageDomain : storageDomains) {
-                    if ((storageDomain == null || (duringReconstruct || 
!dbStorageDomain.getId()
-                            .equals(storageDomain.getId())))
-                            && ((dbStorageDomain.getStorageDomainType() == 
StorageDomainType.Data)
-                            ||
-                            (canChooseCurrentMasterAsNewMaster && 
dbStorageDomain.getStorageDomainType() == StorageDomainType.Master))) {
-                        if (dbStorageDomain.getStatus() == 
StorageDomainStatus.Active
-                                || dbStorageDomain.getStatus() == 
StorageDomainStatus.Unknown) {
-                            newMaster = dbStorageDomain;
-                            break;
-                        } else if (selectInactiveWhenNoActiveUnknownDomains && 
newMaster == null
-                                && dbStorageDomain.getStatus() == 
StorageDomainStatus.Inactive) {
-                            // if the found domain is inactive, we don't break 
to continue and look for
-                            // active/unknown domain.
-                            newMaster = dbStorageDomain;
-                        }
+
+        List<StorageDomain> storageDomains = 
getStorageDomainDAO().getAllForStoragePool(getStoragePool().getId());
+        Collections.sort(storageDomains, LastTimeUsedAsMasterComp.instance);
+        if (storageDomains.size() > 0) {
+            StorageDomain storageDomain = getStorageDomain();
+            for (StorageDomain dbStorageDomain : storageDomains) {
+                if ((storageDomain == null || (duringReconstruct || 
!dbStorageDomain.getId()
+                        .equals(storageDomain.getId())))
+                        && ((dbStorageDomain.getStorageDomainType() == 
StorageDomainType.Data)
+                        ||
+                        (canChooseCurrentMasterAsNewMaster && 
dbStorageDomain.getStorageDomainType() == StorageDomainType.Master))) {
+                    if (dbStorageDomain.getStatus() == 
StorageDomainStatus.Active
+                            || dbStorageDomain.getStatus() == 
StorageDomainStatus.Unknown) {
+                        newMaster = dbStorageDomain;
+                        break;
+                    } else if (selectInactiveWhenNoActiveUnknownDomains && 
newMaster == null
+                            && dbStorageDomain.getStatus() == 
StorageDomainStatus.Inactive) {
+                        // if the found domain is inactive, we don't break to 
continue and look for
+                        // active/unknown domain.
+                        newMaster = dbStorageDomain;
                     }
                 }
             }
         }
+
         return newMaster;
     }
 


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

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

Reply via email to