Idan Shaby has uploaded a new change for review. Change subject: core: redesign MemoryStorageHandler to be a singleton ......................................................................
core: redesign MemoryStorageHandler to be a singleton This patch redesignes MemoryStorageHandler to be a singleton so it would be more testable. Change-Id: Iba82cdb2c7c269bd482c5ad3fb0ca79ba1ade6af Bug-Url: https://bugzilla.redhat.com/1186230 Signed-off-by: Idan Shaby <[email protected]> --- 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/HibernateVmCommand.java 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/memory/MemoryStorageHandler.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/memory/MemoryStorageHandlerTest.java 5 files changed, 23 insertions(+), 14 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/34/40434/1 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 ee2d4d7..4aa8135 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 @@ -213,8 +213,8 @@ public Guid getStorageDomainIdForVmMemory(List<DiskImage> memoryDisksList) { if (cachedStorageDomainId.equals(Guid.Empty) && getVm() != null) { - StorageDomain storageDomain = MemoryStorageHandler.findStorageDomainForMemory(getVm().getStoragePoolId(), - memoryDisksList); + StorageDomain storageDomain = MemoryStorageHandler.getInstance().findStorageDomainForMemory( + getVm().getStoragePoolId(), memoryDisksList); if (storageDomain != null) { cachedStorageDomainId = storageDomain.getId(); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HibernateVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HibernateVmCommand.java index b1aea13..246d414 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HibernateVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HibernateVmCommand.java @@ -82,8 +82,8 @@ List<DiskImage> diskDummiesForMemSize = MemoryUtils.createDiskDummies( getVm().getTotalMemorySizeInBytes(), MemoryUtils.META_DATA_SIZE_IN_BYTES); - StorageDomain storageDomain = MemoryStorageHandler.findStorageDomainForMemory(getStoragePoolId(), - diskDummiesForMemSize); + StorageDomain storageDomain = MemoryStorageHandler.getInstance().findStorageDomainForMemory( + getStoragePoolId(), diskDummiesForMemSize); if (storageDomain != null) { cachedStorageDomainId = storageDomain.getId(); } 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 4a7553e..6f33751 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 @@ -553,8 +553,8 @@ private StorageDomain updateStorageDomainInMemoryVolumes(List<DiskImage> disksList) { List<DiskImage> memoryDisksList = MemoryUtils.createDiskDummies(getVm().getTotalMemorySizeInBytes(), MemoryUtils.META_DATA_SIZE_IN_BYTES); - StorageDomain storageDomain = MemoryStorageHandler.findStorageDomainForMemory(getParameters().getStoragePoolId(), - memoryDisksList); + StorageDomain storageDomain = MemoryStorageHandler.getInstance().findStorageDomainForMemory( + getParameters().getStoragePoolId(), memoryDisksList); disksList.addAll(memoryDisksList); return storageDomain; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/memory/MemoryStorageHandler.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/memory/MemoryStorageHandler.java index fb5e475..c8cb465 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/memory/MemoryStorageHandler.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/memory/MemoryStorageHandler.java @@ -15,6 +15,15 @@ public class MemoryStorageHandler { + private static final MemoryStorageHandler instance = new MemoryStorageHandler(); + + private MemoryStorageHandler() { + } + + public static MemoryStorageHandler getInstance() { + return instance; + } + /** * Returns a <code>StorageDomain</code> in the given <code>StoragePool</code> that has * at least as much as requested free space and can be used to store memory images @@ -26,14 +35,13 @@ * @return storage domain in the given pool with at least the required amount of free space, * or null if no such storage domain exists in the pool */ - public static StorageDomain findStorageDomainForMemory(Guid storagePoolId, List<DiskImage> disksList) { + public StorageDomain findStorageDomainForMemory(Guid storagePoolId, List<DiskImage> disksList) { List<StorageDomain> domainsInPool = DbFacade.getInstance().getStorageDomainDao().getAllForStoragePool(storagePoolId); return findStorageDomainForMemory(domainsInPool, disksList); } - protected static StorageDomain findStorageDomainForMemory(List<StorageDomain> domainsInPool, - List<DiskImage> disksList) { + protected StorageDomain findStorageDomainForMemory(List<StorageDomain> domainsInPool, List<DiskImage> disksList) { for (StorageDomain currDomain : domainsInPool) { updateDisksStorage(currDomain, disksList); @@ -46,7 +54,7 @@ return null; } - private static void updateDisksStorage(StorageDomain storageDomain, List<DiskImage> disksList) { + private void updateDisksStorage(StorageDomain storageDomain, List<DiskImage> disksList) { for (DiskImage disk : disksList) { disk.setStorageIds(new ArrayList<Guid>(Collections.singletonList(storageDomain.getId()))); } @@ -57,12 +65,12 @@ updateDiskVolumeType(storageDomain.getStorageType(), disksList.get(0)); } - private static void updateDiskVolumeType(StorageType storageType, DiskImage disk) { + private void updateDiskVolumeType(StorageType storageType, DiskImage disk) { VolumeType volumeType = storageType.isFileDomain() ? VolumeType.Sparse : VolumeType.Preallocated; disk.setVolumeType(volumeType); } - private static boolean validateSpaceRequirements(StorageDomain storageDomain, List<DiskImage> disksList) { + private boolean validateSpaceRequirements(StorageDomain storageDomain, List<DiskImage> disksList) { StorageDomainValidator storageDomainValidator = new StorageDomainValidator(storageDomain); return (storageDomainValidator.isDomainWithinThresholds().isValid() && storageDomainValidator.hasSpaceForClonedDisks(disksList).isValid()); diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/memory/MemoryStorageHandlerTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/memory/MemoryStorageHandlerTest.java index 8c2e781..44dc14e 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/memory/MemoryStorageHandlerTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/memory/MemoryStorageHandlerTest.java @@ -43,7 +43,8 @@ SizeConverter.SizeUnit.BYTES).intValue(); List<DiskImage> disksList = MemoryUtils.createDiskDummies(vmSpaceInBytes, META_DATA_SIZE_IN_GB); - StorageDomain storageDomain = MemoryStorageHandler.findStorageDomainForMemory(storageDomains, disksList); + StorageDomain storageDomain = MemoryStorageHandler.getInstance().findStorageDomainForMemory( + storageDomains, disksList); assertThat(storageDomain, notNullValue()); if (storageDomain != null) { Guid selectedId = storageDomain.getId(); @@ -52,7 +53,7 @@ mcr.mockConfigValue(ConfigValues.FreeSpaceCriticalLowInGB, THRESHOLD_HIGH_GB); - storageDomain = MemoryStorageHandler.findStorageDomainForMemory(storageDomains, disksList); + storageDomain = MemoryStorageHandler.getInstance().findStorageDomainForMemory(storageDomains, disksList); assertThat(storageDomain, nullValue()); } -- To view, visit https://gerrit.ovirt.org/40434 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iba82cdb2c7c269bd482c5ad3fb0ca79ba1ade6af Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Idan Shaby <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
