Moti Asayag has uploaded a new change for review. Change subject: engine: Consider mac pool in data-center actions ......................................................................
engine: Consider mac pool in data-center actions Change-Id: I2f988cf803bea7cbd9670b42e48f665706166795 Signed-off-by: Moti Asayag <masa...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddEmptyStoragePoolCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveStoragePoolCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStoragePoolCommand.java 3 files changed, 57 insertions(+), 13 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/81/28981/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddEmptyStoragePoolCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddEmptyStoragePoolCommand.java index 203f02d..e7e6982 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddEmptyStoragePoolCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddEmptyStoragePoolCommand.java @@ -27,15 +27,24 @@ } protected void addStoragePoolToDb() { - getStoragePool().setId(Guid.newGuid()); - getStoragePool().setStatus(StoragePoolStatus.Uninitialized); - getStoragePoolDAO().save(getStoragePool()); + final StoragePool storagePool = getStoragePool(); + storagePool.setId(Guid.newGuid()); + storagePool.setStatus(StoragePoolStatus.Uninitialized); + + Guid requestedMacPoolId = storagePool.getMacPoolId(); + Guid macPoolIdToUse = requestedMacPoolId == null ? + getMacPoolDAO().getDefaultPool().getId() : + requestedMacPoolId; + + storagePool.setMacPoolId(macPoolIdToUse); + getStoragePoolDAO().save(storagePool); } @Override protected void executeCommand() { setDataCenterDetails(); addStoragePoolToDb(); + getReturnValue().setActionReturnValue(getStoragePool().getId()); addDefaultNetworks(); setSucceeded(true); @@ -76,18 +85,21 @@ protected boolean canDoAction() { boolean result = true; // set version to latest supported version if not given - if (getStoragePool().getcompatibility_version().isNotValid()) { - getStoragePool().setcompatibility_version(Version.getLast()); + final StoragePool storagePool = getStoragePool(); + + if (storagePool.getcompatibility_version().isNotValid()) { + storagePool.setcompatibility_version(Version.getLast()); } - if (result && !(isStoragePoolUnique(getStoragePool().getName()))) { + if (!(isStoragePoolUnique(storagePool.getName()))) { result = false; addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_POOL_NAME_ALREADY_EXIST); } else if (!checkStoragePoolNameLengthValid()) { result = false; - } else if (!VersionSupport.checkVersionSupported(getStoragePool().getcompatibility_version())) { + } else if (!VersionSupport.checkVersionSupported(storagePool.getcompatibility_version())) { addCanDoActionMessage(VersionSupport.getUnsupportedVersionMessage()); result = false; } + return result; } @@ -98,4 +110,20 @@ getActionType().getActionGroup())); } + private class CreateMacPoolOrUseShared { + private final Guid requestedMacPoolId; + private Guid macPoolIdToUse; + + public CreateMacPoolOrUseShared(Guid requestedMacPoolId) { + this.requestedMacPoolId = requestedMacPoolId; + } + + public void calculateMacPoolId() { + + } + + public Guid getMacPoolIdToUse() { + return macPoolIdToUse; + } + } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveStoragePoolCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveStoragePoolCommand.java index 216e431..c6ce5a7 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveStoragePoolCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveStoragePoolCommand.java @@ -18,6 +18,7 @@ import org.ovirt.engine.core.common.action.RemoveStorageDomainParameters; import org.ovirt.engine.core.common.action.StoragePoolParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; +import org.ovirt.engine.core.common.businessentities.MacPool; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; import org.ovirt.engine.core.common.businessentities.StorageDomainType; @@ -49,6 +50,7 @@ public class RemoveStoragePoolCommand<T extends StoragePoolParametersBase> extends StorageHandlingCommandBase<T> { private Map<String, Pair<String, String>> sharedLocks; + private MacPool oldMacPool; public RemoveStoragePoolCommand(T parameters) { super(parameters); @@ -85,8 +87,14 @@ } } + final Guid storagePoolId = getStoragePoolId(); + final Guid oldMacPoolId = getStoragePool().getMacPoolId(); + oldMacPool = getMacPoolDAO().get(oldMacPoolId); + removeDataCenter(); - MacPoolPerDc.getInstance().poolForDataCenter(getStoragePoolId()).freeMacs(macsToRemove); + MacPoolPerDc.getInstance().poolForDataCenter(storagePoolId).freeMacs(macsToRemove); + MacPoolPerDc.getInstance().removePool(storagePoolId); + setSucceeded(true); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStoragePoolCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStoragePoolCommand.java index ce5f971..25f9c16 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStoragePoolCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStoragePoolCommand.java @@ -41,6 +41,7 @@ @NonTransactiveCommandAttribute public class UpdateStoragePoolCommand<T extends StoragePoolManagementParameter> extends StoragePoolManagementCommandBase<T> implements RenamedEntityInfoProvider{ + public UpdateStoragePoolCommand(T parameters) { super(parameters); } @@ -61,18 +62,24 @@ @Override protected void executeCommand() { updateQuotaCache(); + final StoragePool storagePool = getStoragePool(); if (_oldStoragePool.getStatus() == StoragePoolStatus.Up) { - if (!StringUtils.equals(_oldStoragePool.getName(), getStoragePool().getName())) { + if (!StringUtils.equals(_oldStoragePool.getName(), storagePool.getName())) { runVdsCommand(VDSCommandType.SetStoragePoolDescription, - new SetStoragePoolDescriptionVDSCommandParameters( - getStoragePool().getId(), getStoragePool().getName()) + new SetStoragePoolDescriptionVDSCommandParameters( + storagePool.getId(), storagePool.getName()) ); } } - copyUnchangedStoragePoolProperties(getStoragePool(), _oldStoragePool); + copyUnchangedStoragePoolProperties(storagePool, _oldStoragePool); - getStoragePoolDAO().updatePartial(getStoragePool()); + Guid requestedMacPoolId = storagePool.getMacPoolId(); + if (requestedMacPoolId != null) { + getStoragePool().setMacPoolId(requestedMacPoolId); + } + + getStoragePoolDAO().updatePartial(storagePool); updateStoragePoolFormatType(); setSucceeded(true); @@ -216,6 +223,7 @@ if (returnValue) { returnValue = validate(validator.isNotLocalfsWithDefaultCluster()); } + return returnValue; } -- To view, visit http://gerrit.ovirt.org/28981 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2f988cf803bea7cbd9670b42e48f665706166795 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Moti Asayag <masa...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches