Federico Simoncelli has uploaded a new change for review. Change subject: core: encapsulate isLastMaster logic ......................................................................
core: encapsulate isLastMaster logic Change-Id: I1cbbf89d26c8c4e8f90e68bb89472bb4a6ee4518 Signed-off-by: Federico Simoncelli <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ReconstructMasterDomainCommand.java 2 files changed, 43 insertions(+), 42 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/45/28445/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java index f11d3a6..d5d9233 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java @@ -52,8 +52,6 @@ public class DeactivateStorageDomainCommand<T extends StorageDomainPoolParametersBase> extends StorageDomainCommandBase<T> { - protected boolean _isLastMaster; - public DeactivateStorageDomainCommand(T parameters) { super(parameters); } @@ -187,8 +185,7 @@ final StorageDomain newMaster = electNewMaster(); final Guid newMasterId = newMaster != null ? newMaster.getId() : Guid.Empty; - - proceedStorageDomainTreatmentByDomainType(newMaster, true); + final boolean _isLastMaster = proceedStorageDomainTreatmentByDomainType(newMaster, true); if (_isLastMaster) { executeInNewTransaction(new TransactionMethod<Object>() { @@ -303,43 +300,46 @@ * * @param lockNewMaster If true the new master domain will not be locked */ - protected void proceedStorageDomainTreatmentByDomainType(final StorageDomain newMaster, - final boolean lockNewMaster) { - if (getStorageDomain().getStorageDomainType() == StorageDomainType.Master) { - if (newMaster != null) { - newMaster.getStorageStaticData().setLastTimeUsedAsMaster(System.currentTimeMillis()); - - if (newMaster.getStorageDomainType() != StorageDomainType.Master) { - executeInNewTransaction(new TransactionMethod<Object>() { - - @Override - public Object runInTransaction() { - StoragePoolIsoMap newMasterMap = newMaster.getStoragePoolIsoMapData(); - getCompensationContext().snapshotEntityUpdated(newMaster.getStorageStaticData()); - newMaster.setStorageDomainType(StorageDomainType.Master); - if (!lockNewMaster) { - newMasterMap.setStatus(StorageDomainStatus.Unknown); - getCompensationContext().snapshotEntityStatus(newMasterMap); - newMaster.setStatus(StorageDomainStatus.Locked); - getStoragePoolIsoMapDAO().updateStatus(newMasterMap.getId(), newMasterMap.getStatus()); - } - updateStorageDomainStaticData(newMaster.getStorageStaticData()); - getCompensationContext().snapshotEntityUpdated(getStorageDomain().getStorageStaticData()); - getStorageDomain().setStorageDomainType(StorageDomainType.Data); - updateStorageDomainStaticData(getStorageDomain().getStorageStaticData()); - getCompensationContext().stateChanged(); - return null; - } - }); - } else { - updateStorageDomainStaticData(newMaster.getStorageStaticData()); - } - - updateStoragePoolMasterDomainVersionInDiffTransaction(); - } else { - _isLastMaster = true; - } + protected boolean proceedStorageDomainTreatmentByDomainType(final StorageDomain newMaster, + final boolean lockNewMaster) { + if (newMaster == null) { + return true; } + + if (getStorageDomain().getStorageDomainType() != StorageDomainType.Master) { + return false; + } + + newMaster.getStorageStaticData().setLastTimeUsedAsMaster(System.currentTimeMillis()); + + if (newMaster.getStorageDomainType() != StorageDomainType.Master) { + executeInNewTransaction(new TransactionMethod<Object>() { + @Override + public Object runInTransaction() { + StoragePoolIsoMap newMasterMap = newMaster.getStoragePoolIsoMapData(); + getCompensationContext().snapshotEntityUpdated(newMaster.getStorageStaticData()); + newMaster.setStorageDomainType(StorageDomainType.Master); + if (!lockNewMaster) { + newMasterMap.setStatus(StorageDomainStatus.Unknown); + getCompensationContext().snapshotEntityStatus(newMasterMap); + newMaster.setStatus(StorageDomainStatus.Locked); + getStoragePoolIsoMapDAO().updateStatus(newMasterMap.getId(), newMasterMap.getStatus()); + } + updateStorageDomainStaticData(newMaster.getStorageStaticData()); + getCompensationContext().snapshotEntityUpdated(getStorageDomain().getStorageStaticData()); + getStorageDomain().setStorageDomainType(StorageDomainType.Data); + updateStorageDomainStaticData(getStorageDomain().getStorageStaticData()); + getCompensationContext().stateChanged(); + return null; + } + }); + } else { + updateStorageDomainStaticData(newMaster.getStorageStaticData()); + } + + updateStoragePoolMasterDomainVersionInDiffTransaction(); + + return false; } private void updateStorageDomainStaticData(StorageDomainStatic storageDomainStatic) { 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 69dcfb1..a52ff06 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 @@ -37,6 +37,8 @@ protected StorageDomain _newMaster; + protected boolean _isLastMaster; + protected Guid _newMasterStorageDomainId = Guid.Empty; protected boolean canChooseInactiveDomainAsMaster; @@ -114,10 +116,9 @@ addCanDoActionMessage(String.format("$status %1$s", status)); } - protected boolean reconstructMaster() { _newMasterStorageDomainId = getNewMaster().getId(); - proceedStorageDomainTreatmentByDomainType(getNewMaster(), true); + _isLastMaster = proceedStorageDomainTreatmentByDomainType(getNewMaster(), true); // To issue a reconstructMaster you need to set the domain inactive unless the selected domain is the current master if (getParameters().isInactive() && !getStorageDomain().getId().equals(getNewMasterId())) { -- To view, visit http://gerrit.ovirt.org/28445 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1cbbf89d26c8c4e8f90e68bb89472bb4a6ee4518 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
