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

Reply via email to