Federico Simoncelli has uploaded a new change for review. Change subject: core: early domain check in electNewMaster ......................................................................
core: early domain check in electNewMaster This patch improves the readability of electNewMaster. Change-Id: Iaf651cf670cffa2aea1443ee33153421785534a4 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, 24 insertions(+), 20 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/29/28229/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 321d550..aedef3f 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 @@ -346,28 +346,32 @@ return null; } - StorageDomain newMaster = 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; - } + + if (storageDomains.isEmpty()) { + log.warnFormat("Cannot elect new master: storage domains not found"); + return null; + } + + StorageDomain newMaster = null; + 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; } } } -- To view, visit http://gerrit.ovirt.org/28229 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iaf651cf670cffa2aea1443ee33153421785534a4 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