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

Reply via email to