Ori Liel has uploaded a new change for review. Change subject: restapi: Move Role remove from collection to entity ......................................................................
restapi: Move Role 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: I8cad6c147cb75d835d08dc16e47de1a8ec8806c0 Signed-off-by: Ori Liel <[email protected]> --- M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/RoleResource.java M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/RolesResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRoleResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRolesResource.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRoleResourceTest.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRolesResourceTest.java 6 files changed, 74 insertions(+), 69 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/23/41923/1 diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/RoleResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/RoleResource.java index 744f4c4..f2f85c3 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/RoleResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/RoleResource.java @@ -16,8 +16,10 @@ 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; @Produces({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) @@ -26,4 +28,7 @@ @Path("permits") public PermitsResource getPermitsResource(); + @DELETE + public Response remove(); + } diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/RolesResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/RolesResource.java index 9d57496..c04f76a 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/RolesResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/RolesResource.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; @@ -41,10 +40,6 @@ @POST @Consumes({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) public Response add(Role role); - - @DELETE - @Path("{id}") - public Response remove(@PathParam("id") String id); /** * Sub-resource locator method, returns individual RoleResource on which the diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRoleResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRoleResource.java index e72ef10..a670c36 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRoleResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRoleResource.java @@ -2,12 +2,14 @@ import static org.ovirt.engine.api.restapi.resource.BackendRolesResource.SUB_COLLECTIONS; +import javax.ws.rs.core.Response; + import org.ovirt.engine.api.model.Role; import org.ovirt.engine.api.model.User; import org.ovirt.engine.api.resource.PermitsResource; -import org.ovirt.engine.api.resource.RoleResource; import org.ovirt.engine.api.resource.UpdatableRoleResource; import org.ovirt.engine.core.common.action.RolesOperationsParameters; +import org.ovirt.engine.core.common.action.RolesParameterBase; import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.queries.IdQueryParameters; @@ -16,7 +18,7 @@ public class BackendRoleResource extends AbstractBackendSubResource<Role, org.ovirt.engine.core.common.businessentities.Role> - implements UpdatableRoleResource, RoleResource{ + implements UpdatableRoleResource{ private Guid userId; @@ -72,4 +74,10 @@ protected Role doPopulate(Role model, org.ovirt.engine.core.common.businessentities.Role entity) { return model; } + + @Override + public Response remove() { + get(); + return performAction(VdcActionType.RemoveRole, new RolesParameterBase(asGuid(id))); + } } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRolesResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRolesResource.java index f521cd8..e12a2cd 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRolesResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRolesResource.java @@ -12,7 +12,6 @@ import org.ovirt.engine.api.resource.UpdatableRoleResource; import org.ovirt.engine.api.restapi.types.Mapper; import org.ovirt.engine.core.common.action.RoleWithActionGroupsParameters; -import org.ovirt.engine.core.common.action.RolesParameterBase; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.ActionGroup; import org.ovirt.engine.core.common.queries.IdQueryParameters; @@ -43,11 +42,6 @@ return performCreate(VdcActionType.AddRoleWithActionGroups, new RoleWithActionGroupsParameters(map(role), mapPermits(role.getPermits().getPermits())), new QueryIdResolver<Guid>(VdcQueryType.GetRoleById, IdQueryParameters.class)); - } - - @Override - public Response performRemove(String id) { - return performAction(VdcActionType.RemoveRole, new RolesParameterBase(asGuid(id))); } @Override diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRoleResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRoleResourceTest.java index 0625b12..c4d9cbf 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRoleResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRoleResourceTest.java @@ -1,8 +1,11 @@ package org.ovirt.engine.api.restapi.resource; +import javax.ws.rs.WebApplicationException; + import org.junit.Test; import org.ovirt.engine.api.model.Role; import org.ovirt.engine.core.common.action.RolesOperationsParameters; +import org.ovirt.engine.core.common.action.RolesParameterBase; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; @@ -32,6 +35,62 @@ verifyModel(resource.update(getModel()), 0); } + @Test + public void testRemove() throws Exception { + setUpGetEntityExpectations(); + setUriInfo(setUpActionExpectations(VdcActionType.RemoveRole, + RolesParameterBase.class, + new String[] { "RoleId" }, + new Object[] { GUIDS[0] }, + true, + true)); + verifyRemove(resource.remove()); + } + + @Test + public void testRemoveNonExistant() throws Exception{ + setUpGetEntityExpectations(VdcQueryType.GetRoleById, + 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 { + setUpGetEntityExpectations(); + setUriInfo(setUpActionExpectations(VdcActionType.RemoveRole, + RolesParameterBase.class, + new String[] { "RoleId" }, + new Object[] { GUIDS[0] }, + canDo, + success)); + try { + resource.remove(); + fail("expected WebApplicationException"); + } catch (WebApplicationException wae) { + verifyFault(wae, detail); + } + } + + private Role getModel() { Role role = new Role(); role.setName(NAMES[0]); diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRolesResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRolesResourceTest.java index bef236e..f3e6a85 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRolesResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRolesResourceTest.java @@ -12,7 +12,6 @@ import org.ovirt.engine.api.model.Permits; import org.ovirt.engine.api.model.Role; import org.ovirt.engine.core.common.action.RoleWithActionGroupsParameters; -import org.ovirt.engine.core.common.action.RolesParameterBase; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.ActionGroup; import org.ovirt.engine.core.common.businessentities.RoleType; @@ -33,67 +32,12 @@ public void testQuery() throws Exception { } - @Test - public void testRemove() throws Exception { - setUpGetEntityExpectations(); - setUriInfo(setUpActionExpectations(VdcActionType.RemoveRole, - RolesParameterBase.class, - new String[] { "RoleId" }, - new Object[] { GUIDS[0] }, - true, - true)); - verifyRemove(collection.remove(GUIDS[0].toString())); - } - - @Test - public void testRemoveNonExistant() throws Exception{ - setUpGetEntityExpectations(VdcQueryType.GetRoleById, - 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 setUpGetEntityExpectations() throws Exception { setUpGetEntityExpectations(VdcQueryType.GetRoleById, 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 { - setUpGetEntityExpectations(); - setUriInfo(setUpActionExpectations(VdcActionType.RemoveRole, - RolesParameterBase.class, - new String[] { "RoleId" }, - 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/41923 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8cad6c147cb75d835d08dc16e47de1a8ec8806c0 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
