Allon Mureinik has uploaded a new change for review. Change subject: mapping games ......................................................................
mapping games <core | restapi | tools | history | engine | userportal | webadmin>: short summary under 50 chars Longer description using lines' length under 72 chars. With multiple paragraphs if necessary. Change-Id: Ifd25f1e51fbafd7b4f7194ba886a17bac02af8c2 Bug-Url: https://bugzilla.redhat.com/?????? Signed-off-by: Allon Mureinik <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/TryBackToAllSnapshotsOfVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmRunHandler.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/MultipleStorageDomainsValidator.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveSnapshotCommandTest.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/MultipleStorageDomainsValidatorTest.java 12 files changed, 102 insertions(+), 26 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/36/12136/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java index ec548c2..ece1a37 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java @@ -16,6 +16,7 @@ import org.ovirt.engine.core.bll.storage.StoragePoolValidator; import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.bll.utils.VmDeviceUtils; +import org.ovirt.engine.core.bll.validator.MultipleStorageDomainsValidator; import org.ovirt.engine.core.bll.validator.StorageDomainValidator; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.VdcObjectType; @@ -25,6 +26,7 @@ import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdcReturnValueBase; import org.ovirt.engine.core.common.businessentities.DiskImage; +import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; import org.ovirt.engine.core.common.businessentities.StorageDomainType; import org.ovirt.engine.core.common.businessentities.VMStatus; @@ -33,7 +35,6 @@ import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.VmTemplateStatus; import org.ovirt.engine.core.common.businessentities.permissions; -import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.network.VmInterfaceType; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; import org.ovirt.engine.core.common.errors.VdcBLLException; @@ -202,6 +203,12 @@ return false; } + MultipleStorageDomainsValidator storageDomainsValidator = + new MultipleStorageDomainsValidator(getStoragePoolId(), sourceImageDomainsImageMap.keySet()); + if (!validate(storageDomainsValidator.allDomainsExistAndActive())) { + return false; + } + for (Guid srcStorageDomainId : sourceImageDomainsImageMap.keySet()) { boolean checkIsValid = true; if (!ImagesHandler.PerformImagesChecks( @@ -212,7 +219,7 @@ true, true, true, - true, + false, checkIsValid, sourceImageDomainsImageMap.get(srcStorageDomainId))) { return false; diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java index 50741c5..0b30402 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java @@ -13,6 +13,7 @@ import org.ovirt.engine.core.bll.snapshots.SnapshotsManager; import org.ovirt.engine.core.bll.snapshots.SnapshotsValidator; import org.ovirt.engine.core.bll.storage.StoragePoolValidator; +import org.ovirt.engine.core.bll.validator.MultipleStorageDomainsValidator; import org.ovirt.engine.core.bll.validator.VmValidator; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.VdcObjectType; @@ -287,6 +288,9 @@ if (result && disksList.size() > 0) { StoragePoolValidator spValidator = new StoragePoolValidator(getStoragePool()); SnapshotsValidator snapshotValidator = new SnapshotsValidator(); + MultipleStorageDomainsValidator sdValidator = + new MultipleStorageDomainsValidator(getVm().getStoragePoolId(), + ImagesHandler.getAllStorageIdsForImageIds(disksList)); result = validate(spValidator.isUp()) && validate(snapshotValidator.vmNotDuringSnapshot(getVmId())) && validate(snapshotValidator.vmNotInPreview(getVmId())) @@ -297,14 +301,16 @@ getReturnValue().getCanDoActionMessages(), getVm().getStoragePoolId(), Guid.Empty, + false, true, true, true, - true, - true, + false, true, disksList) - && validate(vmValidator.vmNotLocked()); + && validate(vmValidator.vmNotLocked()) + && validate(sdValidator.allDomainsExistAndActive()) + && validate(sdValidator.allDomainsWithinThresholds()); } return result; diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java index 99f271b..6fde7b4 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java @@ -13,6 +13,7 @@ import org.ovirt.engine.core.bll.snapshots.SnapshotsValidator; import org.ovirt.engine.core.bll.storage.StoragePoolValidator; import org.ovirt.engine.core.bll.utils.VmDeviceUtils; +import org.ovirt.engine.core.bll.validator.MultipleStorageDomainsValidator; import org.ovirt.engine.core.bll.validator.StorageDomainValidator; import org.ovirt.engine.core.bll.validator.VmValidator; import org.ovirt.engine.core.common.AuditLogType; @@ -27,12 +28,12 @@ import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.Snapshot; import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotType; +import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StorageDomainType; import org.ovirt.engine.core.common.businessentities.StoragePoolIsoMapId; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.VolumeFormat; -import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; import org.ovirt.engine.core.common.errors.VdcBLLException; import org.ovirt.engine.core.common.queries.DiskImageList; @@ -157,6 +158,8 @@ && validate(snapshotValidator.vmNotDuringSnapshot(getVmId())) && validate(snapshotValidator.vmNotInPreview(getVmId())) && validate(new VmValidator(getVm()).vmDown()) + && validate(new MultipleStorageDomainsValidator(getVm().getStoragePoolId(), + ImagesHandler.getAllStorageIdsForImageIds(getDisksBasedOnImage())).allDomainsExistAndActive()) && ImagesHandler.PerformImagesChecks( getReturnValue().getCanDoActionMessages(), getVm().getStoragePoolId(), @@ -165,7 +168,7 @@ true, false, false, - true, + false, true, getDisksBasedOnImage()))) { return false; @@ -174,6 +177,7 @@ return true; } + @Override protected boolean doesStorageDomainhaveSpaceForRequest(StorageDomain storageDomain, long sizeRequested) { return validate(new StorageDomainValidator(storageDomain).isDomainHasSpaceForRequest(sizeRequested)); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java index 4c38b49..1cb00af4 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java @@ -23,6 +23,7 @@ import org.ovirt.engine.core.common.businessentities.ImageStatus; import org.ovirt.engine.core.common.businessentities.LUNs; import org.ovirt.engine.core.common.businessentities.LunDisk; +import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.common.businessentities.StorageServerConnections; import org.ovirt.engine.core.common.businessentities.StorageType; @@ -32,7 +33,6 @@ import org.ovirt.engine.core.common.businessentities.VolumeFormat; import org.ovirt.engine.core.common.businessentities.VolumeType; import org.ovirt.engine.core.common.businessentities.image_storage_domain_map; -import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.errors.VdcBLLException; import org.ovirt.engine.core.common.errors.VdcBllErrors; import org.ovirt.engine.core.common.utils.ListUtils; diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java index 81395b9..ef8d3de 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java @@ -4,6 +4,7 @@ import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Set; import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.bll.job.ExecutionHandler; @@ -12,6 +13,7 @@ import org.ovirt.engine.core.bll.quota.QuotaStorageDependent; import org.ovirt.engine.core.bll.snapshots.SnapshotsValidator; import org.ovirt.engine.core.bll.storage.StoragePoolValidator; +import org.ovirt.engine.core.bll.validator.MultipleStorageDomainsValidator; import org.ovirt.engine.core.bll.validator.VmValidator; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.VdcObjectType; @@ -19,6 +21,7 @@ import org.ovirt.engine.core.common.action.RemoveSnapshotParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdcReturnValueBase; +import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.Snapshot; import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotStatus; @@ -172,10 +175,17 @@ } if (hasImages()) { + List<Disk> vmDisks = getDiskDao().getAllForVm(getVmId()); + List<DiskImage> vmImages = ImagesHandler.filterImageDisks(vmDisks, true, false); + // Check the VM's images - if (!validateImages()) { + if (!validateImages(vmImages)) { return false; } + + Set<Guid> storageIds = ImagesHandler.getAllStorageIdsForImageIds(vmImages); + MultipleStorageDomainsValidator storageValidator = + new MultipleStorageDomainsValidator(getStoragePoolId(), storageIds); // check that we are not deleting the template if (!validateImageNotInTemplate()) { @@ -209,10 +219,10 @@ return validate(createSnapshotValidator().snapshotExists(getVmId(), getParameters().getSnapshotId())); } - protected boolean validateImages() { + protected boolean validateImages(List<DiskImage> imagesToCheck) { return ImagesHandler.PerformImagesChecks(getReturnValue().getCanDoActionMessages(), getVm().getStoragePoolId(), Guid.Empty, - true, true, true, true, true, true, imagesToCheck); + true /* SHOULD CHECK!!! */, true, true, true, true/* SHOULD CHECK!!! */, true, imagesToCheck); } protected boolean validateImageNotInTemplate() { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java index 3ef7b00..a17499d 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java @@ -160,7 +160,7 @@ !getParameters().getForce(), false, false, - !getVm().getDiskMap().values().isEmpty(), + !getVm().getDiskMap().values().isEmpty(), // SHOULD CHECK!!! true, getVm().getDiskMap().values())) { return false; diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java index 28a832a..7f4bc06 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java @@ -332,11 +332,11 @@ (getReturnValue().getCanDoActionMessages(), getVm().getStoragePoolId(), Guid.Empty, - true, + true,// SHOULD CHECK!!! true, false, false, - true, + true,// SHOULD CHECK!!! true, getImagesList()); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/TryBackToAllSnapshotsOfVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/TryBackToAllSnapshotsOfVmCommand.java index de7073b..34ba62c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/TryBackToAllSnapshotsOfVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/TryBackToAllSnapshotsOfVmCommand.java @@ -220,11 +220,11 @@ getReturnValue().getCanDoActionMessages(), getVm().getStoragePoolId(), Guid.Empty, - true, + true,// SHOULD CHECK!!! true, false, false, - true, + true,// SHOULD CHECK!!! true, diskImages)) { return false; diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmRunHandler.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmRunHandler.java index d853b76..0e76ea2 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmRunHandler.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmRunHandler.java @@ -20,6 +20,7 @@ import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.RepoFileMetaData; +import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; import org.ovirt.engine.core.common.businessentities.StorageDomainType; import org.ovirt.engine.core.common.businessentities.VDS; @@ -27,7 +28,6 @@ import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; import org.ovirt.engine.core.common.businessentities.VmDevice; -import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.storage_pool; import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; @@ -247,9 +247,9 @@ protected boolean performImageChecksForRunningVm (VM vm, List<String> message, RunVmParams runParams, List<Disk> vmDisks) { return ImagesHandler.PerformImagesChecks(message, - vm.getStoragePoolId(), Guid.Empty, !vm.isAutoStartup(), + vm.getStoragePoolId(), Guid.Empty, !vm.isAutoStartup() /* SHOULD CHECK!!!*/, true, false, false, - !vm.isAutoStartup() || !runParams.getIsInternal() && vm.isAutoStartup(), + !vm.isAutoStartup() || !runParams.getIsInternal() && vm.isAutoStartup(), // SHOULD CHECK!!! !vm.isAutoStartup() || !runParams.getIsInternal() && vm.isAutoStartup(), vmDisks); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/MultipleStorageDomainsValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/MultipleStorageDomainsValidator.java index 6444542..fd7b226 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/MultipleStorageDomainsValidator.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/MultipleStorageDomainsValidator.java @@ -6,6 +6,7 @@ import org.ovirt.engine.core.bll.ValidationResult; import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.compat.NGuid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dao.StorageDomainDAO; @@ -21,6 +22,9 @@ */ public class MultipleStorageDomainsValidator { + /** The ID of the storage pool all the domains belong to */ + private NGuid spId; + /** A map from the ids of each domain being validated to its validator */ private Map<Guid, StorageDomainValidator> domainValidators; @@ -28,7 +32,8 @@ * Constructor from Guids * @param sdIds A {@link Collection} of storage domain IDs to be validated */ - public MultipleStorageDomainsValidator(Collection<Guid> sdIds) { + public MultipleStorageDomainsValidator(NGuid spId, Collection<Guid> sdIds) { + this.spId = spId; domainValidators = new HashMap<Guid, StorageDomainValidator>(sdIds.size()); for (Guid id : sdIds) { domainValidators.put(id, null); @@ -48,10 +53,23 @@ }); } + /** + * Validates that all the domains are withing free disk space threshold. + * @return {@link ValidationResult#VALID} if all the domains are OK, or a {@link ValidationResult} with the first low space domain encountered. + */ + public ValidationResult allDomainsWithinThresholds() { + return validOrFirstFailure(new ValidatorPredicate() { + @Override + public ValidationResult evaluate(StorageDomainValidator validator) { + return validator.isDomainWithinThresholds(); + } + }); + } + /** @return The lazy-loaded validator for the given map entry */ private StorageDomainValidator getStorageDomainValidator(Map.Entry<Guid, StorageDomainValidator> entry) { if (entry.getValue() == null) { - entry.setValue(new StorageDomainValidator(getStorageDomainDAO().get(entry.getKey()))); + entry.setValue(new StorageDomainValidator(getStorageDomainDAO().getForStoragePool(entry.getKey(), spId))); } return entry.getValue(); diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveSnapshotCommandTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveSnapshotCommandTest.java index c65da56..30395aa 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveSnapshotCommandTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveSnapshotCommandTest.java @@ -8,6 +8,7 @@ import static org.mockito.Mockito.when; import java.util.Collections; +import java.util.List; import org.junit.Before; import org.junit.Test; @@ -100,7 +101,7 @@ doReturn(ValidationResult.VALID).when(snapshotValidator).vmNotDuringSnapshot(any(Guid.class)); doReturn(ValidationResult.VALID).when(snapshotValidator).vmNotInPreview(any(Guid.class)); doReturn(ValidationResult.VALID).when(snapshotValidator).snapshotExists(any(Guid.class), any(Guid.class)); - doReturn(true).when(cmd).validateImages(); + doReturn(true).when(cmd).validateImages(any(List.class)); doReturn(vm).when(cmd).getVm(); doReturn(sp).when(spDao).get(spId); doReturn(Collections.emptyList()).when(cmd).getSourceImages(); diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/MultipleStorageDomainsValidatorTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/MultipleStorageDomainsValidatorTest.java index 350ad2e..2f551f7 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/MultipleStorageDomainsValidatorTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/MultipleStorageDomainsValidatorTest.java @@ -6,10 +6,12 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; +import static org.ovirt.engine.core.utils.MockConfigRule.mockConfig; import java.util.Arrays; import org.junit.Before; +import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -17,15 +19,23 @@ import org.ovirt.engine.core.bll.ValidationResult; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; +import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.VdcBllMessages; import org.ovirt.engine.core.dao.StorageDomainDAO; +import org.ovirt.engine.core.utils.MockConfigRule; /** A test class for the {@link MultipleStorageDomainsValidator} class. */ @RunWith(MockitoJUnitRunner.class) public class MultipleStorageDomainsValidatorTest { + + @ClassRule + public static MockConfigRule mcr = new MockConfigRule(mockConfig(ConfigValues.FreeSpaceCriticalLowInGB, 10)); + @Mock private StorageDomainDAO dao; + + private Guid spId; private Guid sdId1; private Guid sdId2; @@ -37,6 +47,8 @@ @Before public void setUp() { + spId = Guid.NewGuid(); + sdId1 = Guid.NewGuid(); sdId2 = Guid.NewGuid(); @@ -46,10 +58,10 @@ domain2 = new StorageDomain(); domain2.setId(sdId2); - when(dao.get(sdId1)).thenReturn(domain1); - when(dao.get(sdId2)).thenReturn(domain2); + when(dao.getForStoragePool(sdId1, spId)).thenReturn(domain1); + when(dao.getForStoragePool(sdId2, spId)).thenReturn(domain2); - validator = spy(new MultipleStorageDomainsValidator(Arrays.asList(sdId1, sdId2))); + validator = spy(new MultipleStorageDomainsValidator(spId, Arrays.asList(sdId1, sdId2))); doReturn(dao).when(validator).getStorageDomainDAO(); } @@ -65,9 +77,27 @@ domain1.setStatus(StorageDomainStatus.Active); domain2.setStatus(StorageDomainStatus.InActive); ValidationResult result = validator.allDomainsExistAndActive(); - assertFalse("Both domains should be active", result.isValid()); + assertFalse("Both domains should not be active", result.isValid()); assertEquals("Wrong validation error", VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_STATUS_ILLEGAL, result.getMessage()); } + + @Test + public void testAllDomainsWithinThresholdAllOk() { + domain1.getStorageDynamicData().setAvailableDiskSize(15); + domain2.getStorageDynamicData().setAvailableDiskSize(15); + assertTrue("Both domains should be withing space threshold", validator.allDomainsWithinThresholds().isValid()); + } + + @Test + public void testAllDomainsWithinThresholdsOneLacking() { + domain1.getStorageDynamicData().setAvailableDiskSize(15); + domain2.getStorageDynamicData().setAvailableDiskSize(7); + ValidationResult result = validator.allDomainsWithinThresholds(); + assertFalse("Both domains should not be withing thresholds", result.isValid()); + assertEquals("Wrong validation error", + VdcBllMessages.ACTION_TYPE_FAILED_DISK_SPACE_LOW_ON_TARGET_STORAGE_DOMAIN, + result.getMessage()); + } } -- To view, visit http://gerrit.ovirt.org/12136 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ifd25f1e51fbafd7b4f7194ba886a17bac02af8c2 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Allon Mureinik <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
