Sergey Gotliv has uploaded a new change for review. Change subject: engine: Remove AddStorageDomainCommand.checkExistingStorageDomain ......................................................................
engine: Remove AddStorageDomainCommand.checkExistingStorageDomain There is no reason to keep this method in the base class AddStorageDomainCommand just because it used by one of it's successors. I am moving it to AddExistingFileStorageDomainCommand. The method is modified on the way to its correct location: 1. Use regular imports instead of inline. 2. Use quick return in case of failure. 3. Use shorter runVdsCommand. Change-Id: I2002f942d32aacf7bbcaa8b6caef3bb744d2dd48 Signed-off-by: Sergey Gotliv <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddExistingFileStorageDomainCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddStorageDomainCommand.java 2 files changed, 40 insertions(+), 45 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/22/21322/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddExistingFileStorageDomainCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddExistingFileStorageDomainCommand.java index bc7842f..d2a7947 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddExistingFileStorageDomainCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddExistingFileStorageDomainCommand.java @@ -1,5 +1,8 @@ package org.ovirt.engine.core.bll.storage; +import java.util.ArrayList; +import java.util.List; + import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.bll.Backend; @@ -8,9 +11,14 @@ import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.SANState; import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; +import org.ovirt.engine.core.common.businessentities.StorageDomainType; import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.common.utils.Pair; +import org.ovirt.engine.core.common.vdscommands.HSMGetStorageDomainInfoVDSCommandParameters; +import org.ovirt.engine.core.common.vdscommands.HSMGetStorageDomainsListVDSCommandParameters; +import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dal.dbbroker.DbFacade; public class AddExistingFileStorageDomainCommand<T extends StorageDomainManagementParameter> extends AddNFSStorageDomainCommand<T> { @@ -68,4 +76,36 @@ } return returnValue; } + + protected boolean checkExistingStorageDomain() { + // prevent importing DATA domain + if (getParameters().getStorageDomain().getStorageDomainType() == StorageDomainType.Data) { + return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_IMPORT_DATA_DOMAIN_PROHIBITED); + } + + if (DbFacade.getInstance().getStorageDomainStaticDao().get(getStorageDomain().getId()) != null) { + return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_NOT_EXIST); + } + + List<Guid> storageIds = (ArrayList<Guid>) runVdsCommand(VDSCommandType.HSMGetStorageDomainsList, + new HSMGetStorageDomainsListVDSCommandParameters(getVdsId(), Guid.Empty, + getStorageDomain().getStorageType(), getStorageDomain().getStorageDomainType(), "") + ).getReturnValue(); + + if (!storageIds.contains(getStorageDomain().getId())) { + return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_ALREADY_EXIST); + } + + Pair<StorageDomainStatic, SANState> domainFromIrs = (Pair<StorageDomainStatic, SANState>) runVdsCommand( + VDSCommandType.HSMGetStorageDomainInfo, + new HSMGetStorageDomainInfoVDSCommandParameters(getVdsId(), getStorageDomain().getId()) + ).getReturnValue(); + + if (domainFromIrs != null + && domainFromIrs.getFirst().getStorageDomainType() != getStorageDomain().getStorageDomainType()) { + return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_CANNOT_CHANGE_STORAGE_DOMAIN_TYPE); + } + + return true; + } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddStorageDomainCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddStorageDomainCommand.java index bacac33..07a5434 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddStorageDomainCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddStorageDomainCommand.java @@ -30,8 +30,6 @@ import org.ovirt.engine.core.common.validation.group.CreateEntity; import org.ovirt.engine.core.common.vdscommands.CreateStorageDomainVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.GetStorageDomainStatsVDSCommandParameters; -import org.ovirt.engine.core.common.vdscommands.HSMGetStorageDomainInfoVDSCommandParameters; -import org.ovirt.engine.core.common.vdscommands.HSMGetStorageDomainsListVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.StorageServerConnectionManagementVDSParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.compat.Guid; @@ -217,49 +215,6 @@ } return true; - } - - protected boolean checkExistingStorageDomain() { - boolean returnValue = true; - // prevent importing DATA domain - if (getParameters().getStorageDomain().getStorageDomainType() == StorageDomainType.Data) { - addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_IMPORT_DATA_DOMAIN_PROHIBITED); - return false; - } - if (DbFacade.getInstance().getStorageDomainStaticDao().get(getStorageDomain().getId()) != null) { - addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_NOT_EXIST); - returnValue = false; - } - if (returnValue) { - java.util.ArrayList<Guid> storageIds = (java.util.ArrayList<Guid>) Backend - .getInstance() - .getResourceManager() - .RunVdsCommand( - VDSCommandType.HSMGetStorageDomainsList, - new HSMGetStorageDomainsListVDSCommandParameters(getVdsId(), Guid.Empty, getStorageDomain() - .getStorageType(), getStorageDomain().getStorageDomainType(), "")) - .getReturnValue(); - if (!storageIds.contains(getStorageDomain().getId())) { - addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_ALREADY_EXIST); - returnValue = false; - } else { - Pair<StorageDomainStatic, SANState> domainFromIrs = - (Pair<StorageDomainStatic, SANState>) Backend - .getInstance() - .getResourceManager() - .RunVdsCommand(VDSCommandType.HSMGetStorageDomainInfo, - new HSMGetStorageDomainInfoVDSCommandParameters(getVdsId(), - getStorageDomain().getId())) - .getReturnValue(); - if (domainFromIrs != null - && domainFromIrs.getFirst().getStorageDomainType() != getStorageDomain().getStorageDomainType()) { - addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_CANNOT_CHANGE_STORAGE_DOMAIN_TYPE); - returnValue = false; - } - returnValue = returnValue && concreteCheckExistingStorageDomain(domainFromIrs); - } - } - return returnValue; } protected boolean concreteCheckExistingStorageDomain(Pair<StorageDomainStatic, SANState> domainFromIrs) { -- To view, visit http://gerrit.ovirt.org/21322 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2002f942d32aacf7bbcaa8b6caef3bb744d2dd48 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Sergey Gotliv <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
