Federico Simoncelli has uploaded a new change for review. Change subject: core: decouple recovery and reconstruct master domain ......................................................................
core: decouple recovery and reconstruct master domain Change-Id: I4c066b9ff4bebce899492fcc8b54bd6a2723b453 Signed-off-by: Federico Simoncelli <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RecoveryStoragePoolCommand.java 1 file changed, 18 insertions(+), 12 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/43/28443/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RecoveryStoragePoolCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RecoveryStoragePoolCommand.java index eebf961..fbed3dd 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RecoveryStoragePoolCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RecoveryStoragePoolCommand.java @@ -26,7 +26,9 @@ import org.ovirt.engine.core.utils.ejb.EjbUtils; @NonTransactiveCommandAttribute -public class RecoveryStoragePoolCommand extends ReconstructMasterDomainCommand<RecoveryStoragePoolParameters> { +public class RecoveryStoragePoolCommand extends StorageDomainCommandBase<RecoveryStoragePoolParameters> { + + private StorageDomain newMasterDomain; /** * Constructor for command creation when compensation is applied on startup @@ -49,7 +51,7 @@ @Override protected boolean canDoAction() { - boolean returnValue = checkStoragePool() && super.canDoAction(); + boolean returnValue = checkStoragePool(); // FIXME: check ReconstructMasterDomain canDoAction? if (returnValue) { if (getStoragePool().getStatus() == StoragePoolStatus.Uninitialized) { @@ -64,18 +66,22 @@ VdcBllMessages.STORAGE_POOL_REINITIALIZE_WITH_MORE_THAN_ONE_DATA_DOMAIN.toString()); returnValue = false; } else { - StorageDomain domain = loadTargetedMasterDomain(); + StorageDomain domain = getNewMasterDomain(); if (domain.getStorageDomainSharedStatus() != StorageDomainSharedStatus.Unattached) { addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_STATUS_ILLEGAL); returnValue = false; } } } - return returnValue; + + return returnValue && initializeVds(); } - private StorageDomain loadTargetedMasterDomain() { - return getStorageDomainDAO().get(getNewMasterId(false)); + private StorageDomain getNewMasterDomain() { + if (newMasterDomain == null) { + newMasterDomain = getStorageDomainDAO().get(getParameters().getNewMasterDomainId()); + } + return newMasterDomain; } @Override @@ -86,11 +92,11 @@ @Override protected void executeCommand() { - if (StorageHelperDirector.getInstance().getItem(getNewMaster(false).getStorageType()) - .connectStorageToDomainByVdsId(getNewMaster(false), getVds().getId())) { + if (StorageHelperDirector.getInstance().getItem(getNewMasterDomain().getStorageType()) + .connectStorageToDomainByVdsId(getNewMasterDomain(), getVds().getId())) { ((EventQueue) EjbUtils.findBean(BeanType.EVENTQUEUE_MANAGER, BeanProxyType.LOCAL)).submitEventSync(new Event(getParameters().getStoragePoolId(), - getNewMasterId(false), + getParameters().getNewMasterDomainId(), null, EventType.RECOVERY, ""), new Callable<EventResult>() { @@ -98,8 +104,8 @@ public EventResult call() { getParameters().setStorageDomainId(getMasterDomainIdFromDb()); StoragePoolIsoMap domainPoolMap = - new StoragePoolIsoMap(getParameters() - .getNewMasterDomainId(), + new StoragePoolIsoMap( + getParameters().getNewMasterDomainId(), getParameters().getStoragePoolId(), StorageDomainStatus.Active); DbFacade.getInstance() @@ -121,7 +127,7 @@ } if (returnVal.getSucceeded()) { - updateStorageDomainFormat(loadTargetedMasterDomain()); + updateStorageDomainFormat(getNewMasterDomain()); } setSucceeded(returnVal.getSucceeded()); -- To view, visit http://gerrit.ovirt.org/28443 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4c066b9ff4bebce899492fcc8b54bd6a2723b453 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Federico Simoncelli <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
