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