Arik Hadas has uploaded a new change for review. Change subject: ffff ......................................................................
ffff Change-Id: I04c00f9b4f6271a4662199097d4ceff3e0d3f068 Signed-off-by: Arik Hadas <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java 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/validator/ImportValidator.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImportVMFromConfigurationCommandTest.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImportVmCommandTest.java A backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/ImportValidatorTest.java 6 files changed, 52 insertions(+), 14 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/85/35085/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java index 73170f8..7d0e85c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java @@ -174,7 +174,11 @@ public ImportVmCommand(T parameters, CommandContext commandContext) { super(parameters, commandContext); - importValidator = new ImportValidator(getParameters()); + importValidator = getImportValidator(); + } + + protected ImportValidator getImportValidator() { + return new ImportValidator(getParameters()); } @Override 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 8b9a6e3..9c4bbd3 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 @@ -53,7 +53,7 @@ @Override protected boolean canDoAction() { if (isImagesAlreadyOnTarget()) { - ImportValidator importValidator = new ImportValidator(getParameters()); + ImportValidator importValidator = getImportValidator(); if (!validate(importValidator.validateUnregisteredEntity(vmFromConfiguration, ovfEntityData, getImages()))) { return false; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/ImportValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/ImportValidator.java index fad18f7..1b73c07 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/ImportValidator.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/ImportValidator.java @@ -45,6 +45,12 @@ this.params = params; } + /** + * Used for testings + */ + public ImportValidator() { + } + public ValidationResult validateUnregisteredEntity(IVdcQueryable entityFromConfiguration, OvfEntityData ovfEntityData, List<DiskImage> images) { if (ovfEntityData == null && !params.isImportAsNewEntity()) { return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_UNSUPPORTED_OVF); @@ -58,7 +64,7 @@ StorageDomain sd = getStorageDomainDAO().getForStoragePool( image.getStorageIds().get(0), getStoragePool().getId()); ValidationResult result = new StorageDomainValidator(sd).isDomainExistAndActive(); - if (result != ValidationResult.VALID) { + if (!result.isValid()) { return result; } } @@ -133,31 +139,31 @@ public ValidationResult validateSpaceRequirements(Collection<DiskImage> diskImages) { MultipleStorageDomainsValidator sdValidator = createMultipleStorageDomainsValidator(diskImages); ValidationResult result = sdValidator.allDomainsExistAndActive(); - if (result != ValidationResult.VALID) { + if (!result.isValid()) { return result; } result = sdValidator.allDomainsWithinThresholds(); - if (result != ValidationResult.VALID) { + if (!result.isValid()) { return result; } if (params.getCopyCollapse()) { result = sdValidator.allDomainsHaveSpaceForClonedDisks(diskImages); - if (result != ValidationResult.VALID) { + if (!result.isValid()) { return result; } } result = sdValidator.allDomainsHaveSpaceForDisksWithSnapshots(diskImages); - if (result != ValidationResult.VALID) { + if (!result.isValid()) { return result; } return ValidationResult.VALID; } - protected MultipleStorageDomainsValidator createMultipleStorageDomainsValidator(Collection<DiskImage> diskImages) { + public MultipleStorageDomainsValidator createMultipleStorageDomainsValidator(Collection<DiskImage> diskImages) { return new MultipleStorageDomainsValidator(params.getStoragePoolId(), ImagesHandler.getAllStorageIdsForImageIds(diskImages)); } @@ -175,7 +181,7 @@ return MacPoolPerDcSingleton.getInstance().poolForDataCenter(params.getStoragePoolId()); } - protected StorageDomainDAO getStorageDomainDAO() { + public StorageDomainDAO getStorageDomainDAO() { return DbFacade.getInstance().getStorageDomainDao(); } @@ -183,7 +189,7 @@ return DbFacade.getInstance().getStoragePoolDao(); } - protected StoragePool getStoragePool() { + public StoragePool getStoragePool() { if (cachedStoragePool == null) { cachedStoragePool = getStoragePoolDAO().get(params.getStoragePoolId()); } diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImportVMFromConfigurationCommandTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImportVMFromConfigurationCommandTest.java index 3fda088..3846b56 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImportVMFromConfigurationCommandTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImportVMFromConfigurationCommandTest.java @@ -14,6 +14,7 @@ import java.nio.file.Files; import java.nio.file.Paths; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -24,9 +25,12 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; +import org.ovirt.engine.core.bll.validator.ImportValidator; import org.ovirt.engine.core.common.action.ImportVmParameters; import org.ovirt.engine.core.common.businessentities.ArchitectureType; +import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.DisplayType; +import org.ovirt.engine.core.common.businessentities.IVdcQueryable; import org.ovirt.engine.core.common.businessentities.OvfEntityData; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; @@ -55,6 +59,7 @@ private StoragePool storagePool; private ImportVmFromConfigurationCommand<ImportVmParameters> cmd; + private ImportValidator validator; @ClassRule public static MockConfigRule mcr = new MockConfigRule( @@ -99,6 +104,8 @@ doReturn(storagePool).when(cmd).getStoragePool(); doReturn(Boolean.TRUE).when(cmd).canDoActionAfterCloneVm(anyMap()); doReturn(Boolean.TRUE).when(cmd).canDoActionBeforeCloneVm(anyMap()); + + when(validator.validateUnregisteredEntity(any(IVdcQueryable.class), any(OvfEntityData.class), any(List.class))).thenReturn(ValidationResult.VALID); CanDoActionTestUtils.runAndAssertCanDoActionSuccess(cmd); } @@ -114,6 +121,7 @@ when(dao.getForStoragePool(storageDomainId, storagePoolId)).thenReturn(storageDomain); doReturn(storageDomain).when(cmd).getStorageDomain(); + when(validator.validateUnregisteredEntity(any(IVdcQueryable.class), any(OvfEntityData.class), any(List.class))).thenReturn(new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_STATUS_ILLEGAL2)); CanDoActionTestUtils.runAndAssertCanDoActionFailure(cmd, VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_STATUS_ILLEGAL2); } @@ -126,7 +134,7 @@ // Mock Storage Domain. final StorageDomainDAO dao = mock(StorageDomainDAO.class); - doReturn(dao).when(cmd).getStorageDomainDAO(); + when(validator.validateUnregisteredEntity(any(IVdcQueryable.class), any(OvfEntityData.class), any(List.class))).thenReturn(new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_STATUS_ILLEGAL2)); when(dao.getForStoragePool(storageDomainId, storagePoolId)).thenReturn(storageDomain); CanDoActionTestUtils.runAndAssertCanDoActionFailure(cmd, @@ -145,6 +153,7 @@ ovfEntity.setOvfData("This is not a valid XML"); initCommand(ovfEntity); when(unregisteredOVFDataDao.getByEntityIdAndStorageDomain(vmId, storageDomainId)).thenReturn(ovfEntity); + when(validator.validateUnregisteredEntity(any(IVdcQueryable.class), any(OvfEntityData.class), any(List.class))).thenReturn(new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_OVF_CONFIGURATION_NOT_SUPPORTED)); CanDoActionTestUtils.runAndAssertCanDoActionFailure(cmd, VdcBllMessages.ACTION_TYPE_FAILED_OVF_CONFIGURATION_NOT_SUPPORTED); } @@ -172,9 +181,16 @@ public VDSGroup getVdsGroup() { return vdsGroup; } + + @Override + protected List<DiskImage> getImages() { + return Collections.emptyList(); + } }); + validator = spy(new ImportValidator(parameters)); + doReturn(validator).when(cmd).getImportValidator(); mockStoragePool(); - doReturn(storagePool).when(cmd).getStoragePool(); + doReturn(storagePool).when(validator).getStoragePool(); } private void initUnregisteredOVFData(OvfEntityData resultOvfEntityData) { diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImportVmCommandTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImportVmCommandTest.java index fc19c7a..b1117bc 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImportVmCommandTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImportVmCommandTest.java @@ -34,6 +34,7 @@ import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.ovirt.engine.core.bll.network.macpoolmanager.MacPoolManagerStrategy; +import org.ovirt.engine.core.bll.validator.ImportValidator; import org.ovirt.engine.core.bll.validator.MultipleStorageDomainsValidator; import org.ovirt.engine.core.common.action.ImportVmParameters; import org.ovirt.engine.core.common.businessentities.ArchitectureType; @@ -189,7 +190,9 @@ } private ImportVmCommand<ImportVmParameters> setupDiskSpaceTest(ImportVmParameters parameters) { - ImportVmCommand<ImportVmParameters> cmd = spy(new ImportVmCommand<ImportVmParameters>(parameters)); + ImportVmCommand<ImportVmParameters> cmd = spy(new ImportVmCommand<>(parameters)); + ImportValidator validator = spy(new ImportValidator(parameters)); + doReturn(validator).when(cmd).getImportValidator(); parameters.setCopyCollapse(true); doReturn(true).when(cmd).validateNoDuplicateVm(); doReturn(true).when(cmd).validateVdsCluster(); @@ -214,7 +217,7 @@ } doReturn(mockCreateDiskDummiesForSpaceValidations()).when(cmd).createDiskDummiesForSpaceValidations(anyList()); - doReturn(multipleSdValidator).when(cmd).createMultipleStorageDomainsValidator(anyList()); + doReturn(multipleSdValidator).when(validator).createMultipleStorageDomainsValidator(anyList()); doReturn(ValidationResult.VALID).when(multipleSdValidator).allDomainsHaveSpaceForClonedDisks(anyList()); doReturn(ValidationResult.VALID).when(multipleSdValidator).allDomainsHaveSpaceForDisksWithSnapshots(anyList()); doReturn(ValidationResult.VALID).when(multipleSdValidator).allDomainsWithinThresholds(); diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/ImportValidatorTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/ImportValidatorTest.java new file mode 100644 index 0000000..25148f4 --- /dev/null +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/ImportValidatorTest.java @@ -0,0 +1,9 @@ +package org.ovirt.engine.core.bll.validator; + +import org.junit.runner.RunWith; +import org.mockito.runners.MockitoJUnitRunner; + +@RunWith(MockitoJUnitRunner.class) +public class ImportValidatorTest { + +} -- To view, visit http://gerrit.ovirt.org/35085 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I04c00f9b4f6271a4662199097d4ceff3e0d3f068 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Arik Hadas <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
