Ori Liel has uploaded a new change for review. Change subject: restapi: Move Tag remove from collection to entity ......................................................................
restapi: Move Tag 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: I239e333592b4a0125c9004b84a2862098feb8503 Signed-off-by: Ori Liel <[email protected]> --- M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/TagResource.java M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/TagsResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendTagResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendTagsResource.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagResourceTest.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagsResourceTest.java 6 files changed, 79 insertions(+), 76 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/45/41945/1 diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/TagResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/TagResource.java index 9823950..3c10e77 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/TagResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/TagResource.java @@ -16,9 +16,15 @@ package org.ovirt.engine.api.resource; +import javax.ws.rs.DELETE; import javax.ws.rs.Produces; +import javax.ws.rs.core.Response; + import org.ovirt.engine.api.model.Tag; @Produces({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) public interface TagResource extends UpdatableResource<Tag> { + + @DELETE + public Response remove(); } diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/TagsResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/TagsResource.java index 6303681..c3583a1 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/TagsResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/TagsResource.java @@ -17,7 +17,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.Path; import javax.ws.rs.PathParam; @@ -38,10 +37,6 @@ @POST @Consumes({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) public Response add(Tag tag); - - @DELETE - @Path("{id}") - public Response remove(@PathParam("id") String id); @Path("{id}") public TagResource getTagSubResource(@PathParam("id") String id); diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendTagResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendTagResource.java index 1438e86..b2ac74d 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendTagResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendTagResource.java @@ -1,9 +1,12 @@ package org.ovirt.engine.api.restapi.resource; +import javax.ws.rs.core.Response; + import org.ovirt.engine.api.model.Tag; import org.ovirt.engine.api.resource.TagResource; import org.ovirt.engine.core.common.action.MoveTagParameters; +import org.ovirt.engine.core.common.action.TagsActionParametersBase; import org.ovirt.engine.core.common.action.TagsOperationParameters; import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; @@ -53,6 +56,12 @@ new UpdateParametersProvider()); } + @Override + public Response remove() { + get(); + return performAction(VdcActionType.RemoveTag, new TagsActionParametersBase(guid)); + } + protected void moveTag(Guid newParentId) { performAction(VdcActionType.MoveTag, new MoveTagParameters(guid, newParentId), Void.class); } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendTagsResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendTagsResource.java index 3836ccd..614ebb3 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendTagsResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendTagsResource.java @@ -7,7 +7,6 @@ import org.ovirt.engine.api.model.Tag; import org.ovirt.engine.api.resource.TagResource; import org.ovirt.engine.api.resource.TagsResource; -import org.ovirt.engine.core.common.action.TagsActionParametersBase; import org.ovirt.engine.core.common.action.TagsOperationParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.Tags; @@ -48,11 +47,6 @@ return performCreate(VdcActionType.AddTag, new TagsOperationParameters(map(tag)), new TagNameResolver(tag.getName())); - } - - @Override - public Response performRemove(String id) { - return performAction(VdcActionType.RemoveTag, new TagsActionParametersBase(asGuid(id))); } protected List<Tags> getTags() { diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagResourceTest.java index f59f4f8..1ab381b 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagResourceTest.java @@ -11,6 +11,7 @@ import org.junit.Test; import org.ovirt.engine.api.model.Tag; import org.ovirt.engine.core.common.action.MoveTagParameters; +import org.ovirt.engine.core.common.action.TagsActionParametersBase; import org.ovirt.engine.core.common.action.TagsOperationParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.Tags; @@ -190,6 +191,69 @@ } } + @Test + public void testRemove() throws Exception { + setUpGetEntityExcpectations(); + setUriInfo(setUpActionExpectations(VdcActionType.RemoveTag, + TagsActionParametersBase.class, + new String[] { "TagId" }, + new Object[] { GUIDS[0] }, + true, + true)); + verifyRemove(resource.remove()); + } + + @Test + public void testRemoveNonExistant() throws Exception { + setUpGetEntityExpectations(VdcQueryType.GetTagByTagId, + IdQueryParameters.class, + new String[] { "Id" }, + new Object[] { GUIDS[0] }, + null); + control.replay(); + try { + resource.remove(); + fail("expected WebApplicationException"); + } catch (WebApplicationException wae) { + assertNotNull(wae.getResponse()); + assertEquals(404, wae.getResponse().getStatus()); + } + } + + @Test + public void testRemoveCantDo() throws Exception { + doTestBadRemove(false, true, CANT_DO); + } + + @Test + public void testRemoveFailed() throws Exception { + doTestBadRemove(true, false, FAILURE); + } + + protected void doTestBadRemove(boolean canDo, boolean success, String detail) throws Exception { + setUpGetEntityExcpectations(); + setUriInfo(setUpActionExpectations(VdcActionType.RemoveTag, + TagsActionParametersBase.class, + new String[] { "TagId" }, + new Object[] { GUIDS[0] }, + canDo, + success)); + try { + resource.remove(); + fail("expected WebApplicationException"); + } catch (WebApplicationException wae) { + verifyFault(wae, detail); + } + } + + private void setUpGetEntityExcpectations() throws Exception { + setUpGetEntityExpectations(VdcQueryType.GetTagByTagId, + IdQueryParameters.class, + new String[] { "Id" }, + new Object[] { GUIDS[0] }, + getEntity(0)); + } + protected void setUpGetEntityExpectations(int index) throws Exception { setUpGetEntityExpectations(index, false); } diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagsResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagsResourceTest.java index b1e8436..ffa8138 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagsResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagsResourceTest.java @@ -17,11 +17,9 @@ import org.ovirt.engine.api.model.Tag; import org.ovirt.engine.api.model.TagParent; import org.ovirt.engine.api.restapi.resource.BaseBackendResource.WebFaultException; -import org.ovirt.engine.core.common.action.TagsActionParametersBase; import org.ovirt.engine.core.common.action.TagsOperationParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.Tags; -import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.NameQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryParametersBase; import org.ovirt.engine.core.common.queries.VdcQueryType; @@ -66,69 +64,6 @@ collection.setUriInfo(uriInfo); getCollection(); fail("Expected WebFaultException"); - } - - @Test - public void testRemove() throws Exception { - setUpGetEntityExcpectations(); - setUriInfo(setUpActionExpectations(VdcActionType.RemoveTag, - TagsActionParametersBase.class, - new String[] { "TagId" }, - new Object[] { GUIDS[0] }, - true, - true)); - verifyRemove(collection.remove(GUIDS[0].toString())); - } - - @Test - public void testRemoveNonExistant() throws Exception{ - setUpGetEntityExpectations(VdcQueryType.GetTagByTagId, - 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.GetTagByTagId, - IdQueryParameters.class, - new String[] { "Id" }, - new Object[] { GUIDS[0] }, - getEntity(0)); - } - - @Test - public void testRemoveCantDo() throws Exception { - doTestBadRemove(false, true, CANT_DO); - } - - @Test - public void testRemoveFailed() throws Exception { - doTestBadRemove(true, false, FAILURE); - } - - protected void doTestBadRemove(boolean canDo, boolean success, String detail) throws Exception { - setUpGetEntityExcpectations(); - setUriInfo(setUpActionExpectations(VdcActionType.RemoveTag, - TagsActionParametersBase.class, - new String[] { "TagId" }, - new Object[] { GUIDS[0] }, - canDo, - success)); - try { - collection.remove(GUIDS[0].toString()); - fail("expected WebApplicationException"); - } catch (WebApplicationException wae) { - verifyFault(wae, detail); - } } @Test -- To view, visit https://gerrit.ovirt.org/41945 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I239e333592b4a0125c9004b84a2862098feb8503 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ori Liel <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
