Maor Lipchuk has uploaded a new change for review.

Change subject: core: Validate maximum cinder snapshot once creating a snapshot.
......................................................................

core: Validate maximum cinder snapshot once creating a snapshot.

Add a validation once a new snapshot gets created to validate if the
maximum number of Cinder snapshot will be exceeded.

Change-Id: Ic0120320f3bbb8570e7b9c7b4300b9617ccf73e9
Bug-Url: https://bugzilla.redhat.com/1185826
Signed-off-by: Maor Lipchuk <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommandTest.java
2 files changed, 13 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/33/41133/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 72fb63b..d082805 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
@@ -25,6 +25,7 @@
 import org.ovirt.engine.core.bll.tasks.TaskHandlerCommand;
 import org.ovirt.engine.core.bll.validator.LiveSnapshotValidator;
 import org.ovirt.engine.core.bll.validator.VmValidator;
+import org.ovirt.engine.core.bll.validator.storage.CinderDisksValidator;
 import org.ovirt.engine.core.bll.validator.storage.DiskImagesValidator;
 import 
org.ovirt.engine.core.bll.validator.storage.MultipleStorageDomainsValidator;
 import org.ovirt.engine.core.bll.validator.storage.StoragePoolValidator;
@@ -180,7 +181,8 @@
 
         MultipleStorageDomainsValidator sdValidator = 
createMultipleStorageDomainsValidator(allDisks);
         if (!validate(sdValidator.allDomainsExistAndActive())
-                || !validate(sdValidator.allDomainsWithinThresholds())) {
+                || !validate(sdValidator.allDomainsWithinThresholds())
+                || !validateCinder()) {
             return false;
         }
 
@@ -191,6 +193,15 @@
         return 
validate(sdValidator.allDomainsHaveSpaceForAllDisks(vmDisksList, 
memoryDisksList));
     }
 
+    public boolean validateCinder() {
+        List<CinderDisk> cinderDisks = 
ImagesHandler.filterDisksBasedOnCinder(DbFacade.getInstance().getDiskDao().getAllForVm(getVmId()));
+        if (!cinderDisks.isEmpty()) {
+            CinderDisksValidator cinderDisksValidator = new 
CinderDisksValidator(cinderDisks);
+            return 
validate(cinderDisksValidator.validateCinderDiskSnapshotsLimits());
+        }
+        return true;
+    }
+
     protected MemoryImageBuilder getMemoryImageBuilder() {
         if (memoryBuilder == null) {
             memoryBuilder = createMemoryImageBuilder();
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommandTest.java
index e5a947b..d18fe68 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommandTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommandTest.java
@@ -78,6 +78,7 @@
         
doReturn(diskImagesValidator).when(cmd).createDiskImageValidator(any(List.class));
         
doReturn(multipleStorageDomainsValidator).when(cmd).createMultipleStorageDomainsValidator(any(List.class));
         doReturn(memoryImageBuilder).when(cmd).getMemoryImageBuilder();
+        doReturn(true).when(cmd).validateCinder();
         
doReturn(Guid.newGuid()).when(cmd).getStorageDomainIdForVmMemory(anyList());
     }
 


-- 
To view, visit https://gerrit.ovirt.org/41133
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic0120320f3bbb8570e7b9c7b4300b9617ccf73e9
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

Reply via email to