Maor Lipchuk has uploaded a new change for review. Change subject: core: Re-extract validation to be used at the parent command. ......................................................................
core: Re-extract validation to be used at the parent command. Re-extract the same validation logic from ImportVm and ImportVmTemplate configuration, to be used in one method at MoveOrCopyTemplateCommand Change-Id: Ic25f6f086fe3a8a55de33529a6fb92728d3e0d74 Signed-off-by: Maor Lipchuk <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateFromConfigurationCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java 3 files changed, 31 insertions(+), 43 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/15/28515/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java index da51ca5..67010ea 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java @@ -6,7 +6,6 @@ import java.util.List; import org.apache.commons.lang.StringUtils; -import org.ovirt.engine.core.bll.validator.StorageDomainValidator; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.AttachDetachVmDiskParameters; import org.ovirt.engine.core.common.action.ImportVmParameters; @@ -15,7 +14,6 @@ import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.OvfEntityData; import org.ovirt.engine.core.common.businessentities.VM; -import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; import org.ovirt.engine.core.utils.log.Log; @@ -42,25 +40,8 @@ @Override protected boolean canDoAction() { - if (isImagesAlreadyOnTarget()) { - if (ovfEntityData == null && !getParameters().isImportAsNewEntity()) { - addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_UNSUPPORTED_OVF); - return false; - } - if (vmFromConfiguration == null) { - addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_OVF_CONFIGURATION_NOT_SUPPORTED); - return false; - } - setStorageDomainId(ovfEntityData.getStorageDomainId()); - if (!validate(new StorageDomainValidator(getStorageDomain()).isDomainExistAndActive())) { - return false; - } - setImagesWithStoragePoolId(getStorageDomain().getStoragePoolId(), getVm().getImages()); - if (!getStorageDomain().getStorageDomainType().isDataDomain()) { - return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_TYPE_UNSUPPORTED, - String.format("$domainId %1$s", getParameters().getStorageDomainId()), - String.format("$domainType %1$s", getStorageDomain().getStorageDomainType())); - } + if (isImagesAlreadyOnTarget() && !validateImagesOnStorage(vmFromConfiguration, ovfEntityData)) { + return false; } return super.canDoAction(); } @@ -112,7 +93,8 @@ super.executeCommand(); if (getSucceeded()) { if (isImagesAlreadyOnTarget()) { - getUnregisteredOVFDataDao().removeEntity(ovfEntityData.getEntityId(), ovfEntityData.getStorageDomainId()); + getUnregisteredOVFDataDao().removeEntity(ovfEntityData.getEntityId(), + ovfEntityData.getStorageDomainId()); } else if (!vmDisksToAttach.isEmpty()) { AuditLogDirector.log(this, attemptToAttachDisksToImportedVm(vmDisksToAttach)); } @@ -126,7 +108,7 @@ vm.getDiskList().clear(); } - private AuditLogType attemptToAttachDisksToImportedVm(Collection<Disk> disks){ + private AuditLogType attemptToAttachDisksToImportedVm(Collection<Disk> disks) { List<String> failedDisks = new LinkedList<>(); for (Disk disk : disks) { AttachDetachVmDiskParameters params = new AttachDetachVmDiskParameters(getVm().getId(), diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateFromConfigurationCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateFromConfigurationCommand.java index 9af4aac..d3ea4e3 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateFromConfigurationCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateFromConfigurationCommand.java @@ -2,12 +2,10 @@ import java.util.ArrayList; -import org.ovirt.engine.core.bll.validator.StorageDomainValidator; import org.ovirt.engine.core.common.action.ImportVmTemplateParameters; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.OvfEntityData; import org.ovirt.engine.core.common.businessentities.VmTemplate; -import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.utils.log.Log; import org.ovirt.engine.core.utils.log.LogFactory; @@ -41,24 +39,8 @@ @Override protected boolean canDoAction() { initVmTemplate(); - if (isImagesAlreadyOnTarget()) { - if (ovfEntityData == null && !getParameters().isImportAsNewEntity()) { - addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_UNSUPPORTED_OVF); - return false; - } - if (vmTemplateFromConfiguration == null) { - addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_OVF_CONFIGURATION_NOT_SUPPORTED); - return false; - } - setStorageDomainId(ovfEntityData.getStorageDomainId()); - if (!validate(new StorageDomainValidator(getStorageDomain()).isDomainExistAndActive())) { - return false; - } - if (!getStorageDomain().getStorageDomainType().isDataDomain()) { - return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_TYPE_UNSUPPORTED, - String.format("$domainId %1$s", getParameters().getStorageDomainId()), - String.format("$domainType %1$s", getStorageDomain().getStorageDomainType())); - } + if (isImagesAlreadyOnTarget() && !validateImagesOnStorage(vmTemplateFromConfiguration, ovfEntityData)) { + return false; } ArrayList<DiskImage> disks = new ArrayList(getVmTemplate().getDiskTemplateMap().values()); setImagesWithStoragePoolId(getStorageDomain().getStoragePoolId(), disks); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java index 208ac75..dcad577 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java @@ -26,7 +26,9 @@ import org.ovirt.engine.core.common.action.VdcReturnValueBase; import org.ovirt.engine.core.common.asynctasks.EntityInfo; import org.ovirt.engine.core.common.businessentities.DiskImage; +import org.ovirt.engine.core.common.businessentities.IVdcQueryable; import org.ovirt.engine.core.common.businessentities.ImageOperation; +import org.ovirt.engine.core.common.businessentities.OvfEntityData; import org.ovirt.engine.core.common.businessentities.Snapshot; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; @@ -146,6 +148,28 @@ return retValue; } + protected boolean validateImagesOnStorage(IVdcQueryable entityFromConfiguration, OvfEntityData ovfEntityData) { + if (ovfEntityData == null && !getParameters().isImportAsNewEntity()) { + addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_UNSUPPORTED_OVF); + return false; + } + if (entityFromConfiguration == null) { + addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_OVF_CONFIGURATION_NOT_SUPPORTED); + return false; + } + setStorageDomainId(ovfEntityData.getStorageDomainId()); + if (!validate(new StorageDomainValidator(getStorageDomain()).isDomainExistAndActive())) { + return false; + } + setImagesWithStoragePoolId(getStorageDomain().getStoragePoolId(), getVm().getImages()); + if (!getStorageDomain().getStorageDomainType().isDataDomain()) { + return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_TYPE_UNSUPPORTED, + String.format("$domainId %1$s", getParameters().getStorageDomainId()), + String.format("$domainType %1$s", getStorageDomain().getStorageDomainType())); + } + return true; + } + protected boolean isImagesAlreadyOnTarget() { return getParameters().isImagesExistOnTargetStorageDomain(); } -- To view, visit http://gerrit.ovirt.org/28515 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic25f6f086fe3a8a55de33529a6fb92728d3e0d74 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Maor Lipchuk <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
