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 <[email protected]>
---
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 <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches