Juan Hernandez has uploaded a new change for review. Change subject: restapi: Move iSCSI Bond remove from collection to entity ......................................................................
restapi: Move iSCSI Bond remove from collection to entity This patch moves the method that implements the DELETE operation from the collection interface to the entity interface. This is needed to avoid issues with newer versions of Resteasy. Change-Id: I2ddba7d581b69006f8652dbb384a3fea737a3b5c Related: https://gerrit.ovirt.org/41783 Signed-off-by: Juan Hernandez <[email protected]> --- M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/IscsiBondResource.java M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/IscsiBondsResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondsResource.java A backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondResourceTest.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondsResourceTest.java 6 files changed, 94 insertions(+), 57 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/56/41856/1 diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/IscsiBondResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/IscsiBondResource.java index 8805508..af751c6 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/IscsiBondResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/IscsiBondResource.java @@ -1,16 +1,20 @@ package org.ovirt.engine.api.resource; +import javax.ws.rs.DELETE; import javax.ws.rs.Path; import javax.ws.rs.Produces; +import javax.ws.rs.core.Response; import org.ovirt.engine.api.model.IscsiBond; @Produces({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) public interface IscsiBondResource extends UpdatableResource<IscsiBond> { + @DELETE + Response remove(); @Path("networks") - public NetworksResource getNetworksResource(); + NetworksResource getNetworksResource(); @Path("storageconnections") - public StorageServerConnectionsResource getStorageServerConnectionsResource(); + StorageServerConnectionsResource getStorageServerConnectionsResource(); } diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/IscsiBondsResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/IscsiBondsResource.java index 5957dcf..1cd3dbb 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/IscsiBondsResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/IscsiBondsResource.java @@ -1,7 +1,6 @@ package org.ovirt.engine.api.resource; import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; @@ -14,18 +13,13 @@ @Produces({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) public interface IscsiBondsResource { - @GET - public IscsiBonds list(); + IscsiBonds list(); @POST @Consumes({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) - public Response add(IscsiBond iscsiBond); - - @DELETE - @Path("{id}") - public Response remove(@PathParam("id") String id); + Response add(IscsiBond iscsiBond); @Path("{id}") - public IscsiBondResource getIscsiBondSubResource(@PathParam("id") String id); + IscsiBondResource getIscsiBondSubResource(@PathParam("id") String id); } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondResource.java index 3adc4ba..ed61f6b 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondResource.java @@ -7,14 +7,18 @@ import org.ovirt.engine.api.resource.NetworksResource; import org.ovirt.engine.api.resource.StorageServerConnectionsResource; import org.ovirt.engine.core.common.action.EditIscsiBondParameters; +import org.ovirt.engine.core.common.action.RemoveIscsiBondParameters; import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.compat.Guid; -public class BackendIscsiBondResource extends AbstractBackendActionableResource<IscsiBond, org.ovirt.engine.core.common.businessentities.IscsiBond> - implements IscsiBondResource { +import javax.ws.rs.core.Response; + +public class BackendIscsiBondResource + extends AbstractBackendActionableResource<IscsiBond, org.ovirt.engine.core.common.businessentities.IscsiBond> + implements IscsiBondResource { public BackendIscsiBondResource(String id) { super(id, IscsiBond.class, org.ovirt.engine.core.common.businessentities.IscsiBond.class, SUB_COLLECTIONS); @@ -54,4 +58,10 @@ protected IscsiBond doPopulate(IscsiBond model, org.ovirt.engine.core.common.businessentities.IscsiBond entity) { return model; } + + @Override + public Response remove() { + get(); + return performAction(VdcActionType.RemoveIscsiBond, new RemoveIscsiBondParameters(guid)); + } } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondsResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondsResource.java index 1fa32f2..d604f99 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondsResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondsResource.java @@ -11,7 +11,6 @@ import org.ovirt.engine.api.resource.IscsiBondsResource; import org.ovirt.engine.api.restapi.types.IscsiBondMapper; import org.ovirt.engine.core.common.action.AddIscsiBondParameters; -import org.ovirt.engine.core.common.action.RemoveIscsiBondParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; @@ -46,11 +45,6 @@ return performCreate(VdcActionType.AddIscsiBond, new AddIscsiBondParameters(entity), new QueryIdResolver<Guid>(VdcQueryType.GetIscsiBondById, IdQueryParameters.class)); - } - - @Override - protected Response performRemove(String id) { - return performAction(VdcActionType.RemoveIscsiBond, new RemoveIscsiBondParameters(asGuid(id))); } @Override diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondResourceTest.java new file mode 100644 index 0000000..b8cbdd8 --- /dev/null +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondResourceTest.java @@ -0,0 +1,70 @@ +package org.ovirt.engine.api.restapi.resource; + +import org.junit.Test; +import org.ovirt.engine.api.model.IscsiBond; +import org.ovirt.engine.core.common.action.RemoveIscsiBondParameters; +import org.ovirt.engine.core.common.action.VdcActionType; +import org.ovirt.engine.core.common.queries.IdQueryParameters; +import org.ovirt.engine.core.common.queries.VdcQueryType; + +import javax.ws.rs.WebApplicationException; + +public class BackendIscsiBondResourceTest + extends AbstractBackendSubResourceTest<IscsiBond, org.ovirt.engine.core.common.businessentities.IscsiBond, BackendIscsiBondResource> { + + public BackendIscsiBondResourceTest() { + super(new BackendIscsiBondResource(GUIDS[0].toString())); + } + + @Test + public void testRemove() throws Exception { + setUpGetEntityExpectations(0, getEntity(0)); + setUriInfo( + setUpActionExpectations( + VdcActionType.RemoveIscsiBond, + RemoveIscsiBondParameters.class, + new String[] { "IscsiBondId" }, + new Object[] { GUIDS[0] }, + true, + true + ) + ); + verifyRemove(resource.remove()); + } + + @Test + public void testRemoveNonExistant() throws Exception { + setUriInfo(setUpBasicUriExpectations()); + setUpGetEntityExpectations(0, null); + control.replay(); + try { + resource.remove(); + fail("expected WebApplicationException"); + } + catch (WebApplicationException wae) { + assertNotNull(wae.getResponse()); + assertEquals(404, wae.getResponse().getStatus()); + } + } + + private void setUpGetEntityExpectations(int index, org.ovirt.engine.core.common.businessentities.IscsiBond result) + throws Exception { + setUpGetEntityExpectations( + VdcQueryType.GetIscsiBondById, + IdQueryParameters.class, + new String[] { "Id" }, + new Object[] { GUIDS[index] }, + result + ); + } + + @Override + protected org.ovirt.engine.core.common.businessentities.IscsiBond getEntity(int index) { + org.ovirt.engine.core.common.businessentities.IscsiBond iscsiBond = + new org.ovirt.engine.core.common.businessentities.IscsiBond(); + iscsiBond.setId(GUIDS[index]); + iscsiBond.setName(NAMES[index]); + iscsiBond.setStoragePoolId(GUIDS[0]); + return iscsiBond; + } +} diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondsResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondsResourceTest.java index 0c5145c..1defe64 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondsResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendIscsiBondsResourceTest.java @@ -3,19 +3,19 @@ import java.util.ArrayList; import java.util.List; -import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.Response; import org.junit.Test; import org.ovirt.engine.api.model.IscsiBond; import org.ovirt.engine.core.common.action.AddIscsiBondParameters; -import org.ovirt.engine.core.common.action.RemoveIscsiBondParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.compat.Guid; -public class BackendIscsiBondsResourceTest extends AbstractBackendCollectionResourceTest<IscsiBond, org.ovirt.engine.core.common.businessentities.IscsiBond, BackendIscsiBondsResource> { +public class BackendIscsiBondsResourceTest + extends AbstractBackendCollectionResourceTest<IscsiBond, org.ovirt.engine.core.common.businessentities.IscsiBond, BackendIscsiBondsResource> { + protected static final Guid ISCSI_BOND_ID = GUIDS[1]; protected static final Guid DATA_CENTER_ID = GUIDS[2]; static Guid PARENT_GUID = GUIDS[2]; @@ -114,40 +114,5 @@ return iscsiBonds; } - @Test - public void testRemove() throws Exception { - setUpGetEntityExcpectations(); - setUriInfo(setUpActionExpectations(VdcActionType.RemoveIscsiBond, - RemoveIscsiBondParameters.class, - new String[] { "IscsiBondId" }, - new Object[] { GUIDS[0] }, - true, - true)); - verifyRemove(collection.remove(GUIDS[0].toString())); - } - @Test - public void testRemoveNonExistant() throws Exception { - setUpGetEntityExpectations(VdcQueryType.GetIscsiBondById, - IdQueryParameters.class, - new String[] { "Id" }, - new Object[] { NON_EXISTANT_GUID }, - null); - control.replay(); - try { - collection.remove(NON_EXISTANT_GUID.toString()); - fail("expected WebApplicationException"); - } catch (WebApplicationException wae) { - assertNotNull(wae.getResponse()); - assertEquals(404, wae.getResponse().getStatus()); - } - } - - private void setUpGetEntityExcpectations() throws Exception { - setUpGetEntityExpectations(VdcQueryType.GetIscsiBondById, - IdQueryParameters.class, - new String[] { "Id" }, - new Object[] { GUIDS[0] }, - getEntity(0)); - } } -- To view, visit https://gerrit.ovirt.org/41856 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2ddba7d581b69006f8652dbb384a3fea737a3b5c Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Juan Hernandez <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
