Daniel Erez has uploaded a new change for review. Change subject: restapi: accept action in remove storage connection ......................................................................
restapi: accept action in remove storage connection Storage connections delete operation now takes an Action as optional parameter. The Action object should contain a Host element from which the connection would be unmounted. Change-Id: I19a0047ee14962eb8a6d0ab2c4e981913d062612 Bug-Url: https://bugzilla.redhat.com/1117278 Signed-off-by: Daniel Erez <[email protected]> --- M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/StorageServerConnectionsResource.java M backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondStorageConnectionsResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageServerConnectionsResource.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageServerConnectionsResourceTest.java 5 files changed, 30 insertions(+), 18 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/21/31921/1 diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/StorageServerConnectionsResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/StorageServerConnectionsResource.java index 6533594..3d7a023 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/StorageServerConnectionsResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/StorageServerConnectionsResource.java @@ -10,7 +10,7 @@ import javax.ws.rs.core.Response; import org.jboss.resteasy.annotations.providers.jaxb.Formatted; -import org.ovirt.engine.api.model.Host; +import org.ovirt.engine.api.model.Action; import org.ovirt.engine.api.model.StorageConnection; import org.ovirt.engine.api.model.StorageConnections; @@ -34,13 +34,13 @@ /** * Deletes the connection from the system, and disconnects the specified host from it * @param id - * @param host + * @param action * @return */ @DELETE @Consumes({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) @Path("{id}") - public Response remove(@PathParam("id") String id, Host host); + public Response remove(@PathParam("id") String id, Action action); /** * Deletes the connection from the system diff --git a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml index 9b21446..51ed6f1 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml +++ b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml @@ -4946,7 +4946,7 @@ parameterType: Host signatures: - mandatoryArguments: {} - optionalArguments: {host.id|name: 'xs:string'} + optionalArguments: {action.host.id|name: 'xs:string'} urlparams: async: {context: matrix, type: 'xs:boolean', value: true|false, required: false} headers: diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondStorageConnectionsResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondStorageConnectionsResource.java index 11344ab..c28045b 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondStorageConnectionsResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondStorageConnectionsResource.java @@ -4,7 +4,7 @@ import javax.ws.rs.core.Response; -import org.ovirt.engine.api.model.Host; +import org.ovirt.engine.api.model.Action; import org.ovirt.engine.api.model.StorageConnection; import org.ovirt.engine.api.model.StorageConnections; import org.ovirt.engine.api.resource.StorageServerConnectionResource; @@ -43,7 +43,7 @@ } @Override - public Response remove(String id, Host host) { + public Response remove(String id, Action action) { // TODO should return BadRequest error return null; } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageServerConnectionsResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageServerConnectionsResource.java index 4580735..c3fae67 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageServerConnectionsResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageServerConnectionsResource.java @@ -4,7 +4,7 @@ import javax.ws.rs.core.Response; -import org.ovirt.engine.api.model.Host; +import org.ovirt.engine.api.model.Action; import org.ovirt.engine.api.model.StorageConnection; import org.ovirt.engine.api.model.StorageConnections; import org.ovirt.engine.api.resource.StorageServerConnectionResource; @@ -21,7 +21,6 @@ private final EntityIdResolver<String> ENTITY_RETRIEVER = new QueryIdResolver<String>(VdcQueryType.GetStorageServerConnectionById, StorageServerConnectionQueryParametersBase.class); - private Host host = null; // host used for removal of connection public BackendStorageServerConnectionsResource() { super(StorageConnection.class, org.ovirt.engine.core.common.businessentities.StorageServerConnections.class); @@ -90,11 +89,19 @@ } @Override - public Response remove(String id, Host host) { - if (host != null) { - this.host = host; + public Response remove(String id, Action action) { + getEntity(id); + StorageServerConnections connection = new StorageServerConnections(); + connection.setid(id); + Guid hostId = Guid.Empty; + + if (action != null && action.isSetHost()) { + hostId = getHostId(action.getHost()); } - return super.remove(id); + + StorageServerConnectionParametersBase parameters = + new StorageServerConnectionParametersBase(connection, hostId); + return performAction(VdcActionType.RemoveStorageServerConnection, parameters); } @Override @@ -102,9 +109,7 @@ StorageServerConnections connection = new StorageServerConnections(); connection.setid(id); Guid hostId = Guid.Empty; - if(this.host != null) { - hostId = getHostId(host); - } + StorageServerConnectionParametersBase parameters = new StorageServerConnectionParametersBase(connection, hostId); return performAction(VdcActionType.RemoveStorageServerConnection, parameters); diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageServerConnectionsResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageServerConnectionsResourceTest.java index 6a0b510..77234fa 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageServerConnectionsResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageServerConnectionsResourceTest.java @@ -10,6 +10,7 @@ import org.junit.Ignore; import org.junit.Test; +import org.ovirt.engine.api.model.Action; import org.ovirt.engine.api.model.Host; import org.ovirt.engine.api.model.StorageConnection; import org.ovirt.engine.core.common.action.StorageServerConnectionParametersBase; @@ -132,7 +133,9 @@ new Object[] { connection, GUIDS[1] }, true, true)); - verifyRemove(collection.remove(GUIDS[0].toString(), host)); + Action action = new Action(); + action.setHost(host); + verifyRemove(collection.remove(GUIDS[0].toString(), action)); } @Test @@ -142,7 +145,9 @@ host.setId(GUIDS[1].toString()); control.replay(); try { - collection.remove(GUIDS[0].toString(), host); + Action action = new Action(); + action.setHost(host); + collection.remove(GUIDS[0].toString(), action); fail("expected WebApplicationException"); } catch (WebApplicationException wae) { assertNotNull(wae.getResponse()); @@ -165,7 +170,9 @@ false, false)); try { - collection.remove(GUIDS[0].toString(), host); + Action action = new Action(); + action.setHost(host); + collection.remove(GUIDS[0].toString(), action); } catch (WebApplicationException wae) { assertNotNull(wae.getResponse()); assertEquals(400, wae.getResponse().getStatus()); -- To view, visit http://gerrit.ovirt.org/31921 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I19a0047ee14962eb8a6d0ab2c4e981913d062612 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.5 Gerrit-Owner: Daniel Erez <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
