Sergey Gotliv has uploaded a new change for review.

Change subject: <core | restapi | tools | history | engine | userportal | 
webadmin>: short summary under 50 chars
......................................................................

<core | restapi | tools | history | engine | userportal | webadmin>: short 
summary under 50 chars

restapi: Adding support for copy/move disk from disk collection.

Adding support for the following urls:
/api/disks/{disk:id}/copy
/api/disks/{disk:id}/move

Change-Id: I516341d3e033a94a997ac5320312e75a5ed1576c
Bug-Url: https://bugzilla.redhat.com/??????
Signed-off-by: Sergey Gotliv <sgot...@redhat.com>
---
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DiskResource.java
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/VmDiskResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDiskResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmDiskResource.java
4 files changed, 70 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/73/13973/1

diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DiskResource.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DiskResource.java
index 1349727..c62c448 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DiskResource.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DiskResource.java
@@ -15,11 +15,16 @@
 */
 package org.ovirt.engine.api.resource;
 
+import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
+import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
+import javax.ws.rs.core.Response;
 
 import org.jboss.resteasy.annotations.providers.jaxb.Formatted;
+import org.ovirt.engine.api.model.Action;
+import org.ovirt.engine.api.model.Actionable;
 import org.ovirt.engine.api.model.Disk;
 
 @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, 
MediaType.APPLICATION_X_YAML})
@@ -32,4 +37,18 @@
 
     @Path("permissions")
     public AssignedPermissionsResource getPermissionsResource();
+
+    @POST
+    @Formatted
+    @Actionable
+    @Path("move")
+    @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, 
MediaType.APPLICATION_X_YAML})
+    public Response move(Action action);
+
+    @POST
+    @Formatted
+    @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, 
MediaType.APPLICATION_X_YAML})
+    @Actionable
+    @Path("copy")
+    public Response copy(Action action);
 }
diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/VmDiskResource.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/VmDiskResource.java
index aac3fc0..c675c97 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/VmDiskResource.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/VmDiskResource.java
@@ -50,13 +50,6 @@
     @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, 
MediaType.APPLICATION_X_YAML})
     public Response deactivate(Action action);
 
-    @POST
-    @Formatted
-    @Actionable
-    @Path("move")
-    @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, 
MediaType.APPLICATION_X_YAML})
-    public Response move(Action action);
-
     @PUT
     @Formatted
     @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, 
MediaType.APPLICATION_X_YAML })
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDiskResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDiskResource.java
index 9b2a0d0..0bca24a 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDiskResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDiskResource.java
@@ -1,17 +1,26 @@
 package org.ovirt.engine.api.restapi.resource;
 
+import org.ovirt.engine.api.model.Action;
 import org.ovirt.engine.api.model.Disk;
 import org.ovirt.engine.api.resource.AssignedPermissionsResource;
 import org.ovirt.engine.api.resource.CreationResource;
 import org.ovirt.engine.api.resource.DiskResource;
 import org.ovirt.engine.api.resource.StatisticsResource;
 import org.ovirt.engine.core.common.VdcObjectType;
+import org.ovirt.engine.core.common.action.MoveDiskParameters;
+import org.ovirt.engine.core.common.action.MoveDisksParameters;
+import org.ovirt.engine.core.common.action.MoveOrCopyImageGroupParameters;
+import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.common.businessentities.ImageOperation;
 import org.ovirt.engine.core.common.queries.GetDiskByDiskIdParameters;
 import org.ovirt.engine.core.common.queries.GetPermissionsForObjectParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.Guid;
 
-public class BackendDiskResource extends AbstractBackendSubResource<Disk, 
org.ovirt.engine.core.common.businessentities.Disk> implements DiskResource {
+import javax.ws.rs.core.Response;
+import java.util.Collections;
+
+public class BackendDiskResource extends 
AbstractBackendActionableResource<Disk, 
org.ovirt.engine.core.common.businessentities.Disk> implements DiskResource {
 
     protected BackendDiskResource(String id) {
         super(id, Disk.class, 
org.ovirt.engine.core.common.businessentities.Disk.class);
@@ -39,6 +48,32 @@
     }
 
     @Override
+    public Response move(Action action) {
+        validateParameters(action, "storageDomain.id|name");
+        Guid storageDomainId = getStorageDomainId(action);
+        Guid imageId = asGuid(get().getImageId());
+        MoveDisksParameters params =
+                new MoveDisksParameters(Collections.singletonList(new 
MoveDiskParameters(
+                        imageId,
+                        Guid.Empty,
+                        storageDomainId)));
+        return doAction(VdcActionType.MoveDisks, params, action);
+    }
+
+    @Override
+    public Response copy(Action action) {
+        validateParameters(action, "storageDomain.id|name");
+        Guid storageDomainId = getStorageDomainId(action);
+        Guid imageId = asGuid(get().getImageId());
+        MoveOrCopyImageGroupParameters params =
+                new MoveOrCopyImageGroupParameters(imageId,
+                        Guid.Empty,
+                        storageDomainId,
+                        ImageOperation.Copy);
+        return doAction(VdcActionType.MoveOrCopyDisk, params, action);
+    }
+
+    @Override
     public Disk get() {
         return performGet(VdcQueryType.GetDiskByDiskId, new 
GetDiskByDiskIdParameters(guid));
     }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmDiskResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmDiskResource.java
index bad94f0..fbf4783 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmDiskResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmDiskResource.java
@@ -14,7 +14,9 @@
 import org.ovirt.engine.core.common.action.HotPlugDiskToVmParameters;
 import org.ovirt.engine.core.common.action.MoveDiskParameters;
 import org.ovirt.engine.core.common.action.MoveDisksParameters;
+import org.ovirt.engine.core.common.action.MoveOrCopyImageGroupParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.common.businessentities.ImageOperation;
 import org.ovirt.engine.core.common.queries.GetDiskByDiskIdParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.Guid;
@@ -99,6 +101,19 @@
         return doAction(VdcActionType.MoveDisks, params, action);
     }
 
+    @Override
+    public Response copy(Action action) {
+        validateParameters(action, "storageDomain.id|name");
+        Guid storageDomainId = getStorageDomainId(action);
+        Guid imageId = asGuid(getDisk().getImageId());
+        MoveOrCopyImageGroupParameters params =
+                new MoveOrCopyImageGroupParameters(imageId,
+                        Guid.Empty,
+                        storageDomainId,
+                        ImageOperation.Copy);
+        return doAction(VdcActionType.MoveOrCopyDisk, params, action);
+    }
+
     protected Disk getDisk() {
         return performGet(VdcQueryType.GetDiskByDiskId, new 
GetDiskByDiskIdParameters(guid));
     }


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

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

Reply via email to