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