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
