ofri masad has uploaded a new change for review.

Change subject: core: Fix empty quota validation in edit disk
......................................................................

core: Fix empty quota validation in edit disk

When a disk with no quota is edited and the quota is not setted by the
user, no quota validation takes place. The operation succeeds.

This error is due to wrong logic in UpdateVmDiskCommand.

Logic was change so that only if quota is non-empty and was not changed
by user, it will not be validated.

Change-Id: I697171e9c47499048d5a735c0f0e5a253b41892a
Bug-Url: https://bugzilla.redhat.com/895981
Signed-off-by: Ofri Masad <oma...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmDiskCommand.java
1 file changed, 22 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/34/11434/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmDiskCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmDiskCommand.java
index e1e0a1b..d099b65 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmDiskCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmDiskCommand.java
@@ -302,23 +302,29 @@
         if (isQuotaValidationNeeded()) {
             DiskImage oldDiskImage = (DiskImage) oldDisk;
             DiskImage newDiskImage = (DiskImage) newDisk;
-            if (oldDiskImage.getQuotaId() == null || 
!oldDiskImage.getQuotaId().equals(newDiskImage.getQuotaId())) {
-                if (oldDiskImage.getQuotaId() != null && 
!Guid.Empty.equals(oldDiskImage.getQuotaId())) {
-                    list.add(new QuotaStorageConsumptionParameter(
-                            oldDiskImage.getQuotaId(),
-                            null,
-                            
QuotaStorageConsumptionParameter.QuotaAction.RELEASE,
-                            //TODO: Shared Disk?
-                            oldDiskImage.getstorage_ids().get(0),
-                            (double)oldDiskImage.getSizeInGigabytes()));
+            QuotaStorageConsumptionParameter consumptionRequest = new 
QuotaStorageConsumptionParameter(
+                    newDiskImage.getQuotaId(),
+                    null,
+                    QuotaStorageConsumptionParameter.QuotaAction.CONSUME,
+                    //TODO: Shared Disk?
+                    newDiskImage.getstorage_ids().get(0),
+                    (double)newDiskImage.getSizeInGigabytes());
+            QuotaStorageConsumptionParameter releaseRequest = new 
QuotaStorageConsumptionParameter(
+                    oldDiskImage.getQuotaId(),
+                    null,
+                    QuotaStorageConsumptionParameter.QuotaAction.RELEASE,
+                    //TODO: Shared Disk?
+                    oldDiskImage.getstorage_ids().get(0),
+                    (double)oldDiskImage.getSizeInGigabytes());
+
+
+            if (oldDiskImage.getQuotaId() == null || 
Guid.Empty.equals(oldDiskImage.getQuotaId())) { // empty old quota
+                list.add(consumptionRequest);
+            } else {                                                           
                      // non-empty old quota
+                if 
(!oldDiskImage.getQuotaId().equals(newDiskImage.getQuotaId())) {                
  // different new quota
+                    list.add(consumptionRequest);
+                    list.add(releaseRequest);
                 }
-                list.add(new QuotaStorageConsumptionParameter(
-                        newDiskImage.getQuotaId(),
-                        null,
-                        QuotaStorageConsumptionParameter.QuotaAction.CONSUME,
-                        //TODO: Shared Disk?
-                        newDiskImage.getstorage_ids().get(0),
-                        (double)newDiskImage.getSizeInGigabytes()));
             }
         }
         return list;


--
To view, visit http://gerrit.ovirt.org/11434
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I697171e9c47499048d5a735c0f0e5a253b41892a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: ofri masad <oma...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to