Shahar Havivi has uploaded a new change for review. Change subject: API: Cannot remove the payload via REST ......................................................................
API: Cannot remove the payload via REST Change-Id: I01cf3b6cf0bae68ec0797c0585ee55b19e54463d Bug-Url: https://bugzilla.redhat.com/882649 Signed-off-by: Shahar Havivi <shav...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VmManagementParametersBase.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java 3 files changed, 23 insertions(+), 8 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/65/9665/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java index 5ac2ab0..1000cd9 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java @@ -96,7 +96,7 @@ VmDeviceDAO dao = getVmDeviceDao(); VmPayload payload = getParameters().getVmPayload(); - if (payload != null) { + if (payload != null || getParameters().isClearPayload()) { List<VmDevice> disks = dao.getVmDeviceByVmIdAndType(getVmId(), VmDeviceType.DISK.getName()); VmDevice oldPayload = null; for (VmDevice disk : disks) { @@ -112,12 +112,14 @@ dao.removeAll(devs); } - VmDeviceUtils.addManagedDevice(new VmDeviceId(Guid.NewGuid(), getVmId()), - VmDeviceType.DISK, - payload.getType(), - payload.getSpecParams(), - true, - true); + if (!getParameters().isClearPayload()) { + VmDeviceUtils.addManagedDevice(new VmDeviceId(Guid.NewGuid(), getVmId()), + VmDeviceType.DISK, + payload.getType(), + payload.getSpecParams(), + true, + true); + } } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VmManagementParametersBase.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VmManagementParametersBase.java index 88e2634..e496395 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VmManagementParametersBase.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VmManagementParametersBase.java @@ -21,6 +21,7 @@ private boolean privateDontCheckTemplateImages; private HashMap<Guid, DiskImage> diskInfoDestinationMap; private VmPayload payload; + private boolean clearPayload; private boolean balloonEnabled = true; private VM vm = null; @@ -106,6 +107,14 @@ this.payload = value; } + public boolean isClearPayload() { + return clearPayload; + } + + public void setClearPayload(boolean clearPayload) { + this.clearPayload = clearPayload; + } + public boolean isBalloonEnabled() { return balloonEnabled; } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java index 9c10298..9922677 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java @@ -388,7 +388,11 @@ VmManagementParametersBase params = new VmManagementParametersBase(updated); if (incoming.isSetPayloads()) { - params.setVmPayload(parent.getPayload(incoming)); + if (incoming.getPayloads().isSetPayload()) { + params.setVmPayload(parent.getPayload(incoming)); + } else { + params.setClearPayload(true); + } } if (incoming.isSetMemoryPolicy() && incoming.getMemoryPolicy().isSetBallooning()) { params.setBalloonEnabled(incoming.getMemoryPolicy().isBallooning()); -- To view, visit http://gerrit.ovirt.org/9665 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I01cf3b6cf0bae68ec0797c0585ee55b19e54463d Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Shahar Havivi <shav...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches