Ori Liel has uploaded a new change for review. Change subject: restapi: Move User remove from collection to entity ......................................................................
restapi: Move User 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: I7ecc13c300732ea919ca4e47f69b0e2e64439e56 Signed-off-by: Ori Liel <ol...@redhat.com> --- M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/aaa/UserResource.java M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/aaa/UsersResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUserResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUsersResource.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUserResourceTest.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUsersResourceTest.java 6 files changed, 75 insertions(+), 89 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/11/42011/1 diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/aaa/UserResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/aaa/UserResource.java index 669d703..357067f 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/aaa/UserResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/aaa/UserResource.java @@ -16,9 +16,11 @@ package org.ovirt.engine.api.resource.aaa; +import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; +import javax.ws.rs.core.Response; import org.ovirt.engine.api.model.User; import org.ovirt.engine.api.resource.ApiMediaType; @@ -32,6 +34,9 @@ @GET public User get(); + @DELETE + public Response remove(); + @Path("roles") public AssignedRolesResource getRolesResource(); diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/aaa/UsersResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/aaa/UsersResource.java index c2f0dee..58d926d 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/aaa/UsersResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/aaa/UsersResource.java @@ -17,7 +17,6 @@ package org.ovirt.engine.api.resource.aaa; 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; @@ -39,10 +38,6 @@ @POST @Consumes({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) public Response add(User User); - - @DELETE - @Path("{id}") - public Response remove(@PathParam("id") String id); /** * Sub-resource locator method, returns individual UserResource on which the diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUserResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUserResource.java index f635a70..bc4cbb3 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUserResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUserResource.java @@ -2,6 +2,8 @@ import static org.ovirt.engine.api.restapi.resource.aaa.BackendUsersResource.SUB_COLLECTIONS; +import javax.ws.rs.core.Response; + import org.ovirt.engine.api.model.BaseResource; import org.ovirt.engine.api.model.User; import org.ovirt.engine.api.resource.AssignedPermissionsResource; @@ -12,6 +14,8 @@ import org.ovirt.engine.api.restapi.resource.BackendAssignedPermissionsResource; import org.ovirt.engine.api.restapi.resource.BackendAssignedRolesResource; import org.ovirt.engine.api.restapi.resource.BackendUserTagsResource; +import org.ovirt.engine.core.common.action.IdParameters; +import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.aaa.DbUser; import org.ovirt.engine.core.common.queries.GetDbUserByUserNameAndDomainQueryParameters; import org.ovirt.engine.core.common.queries.IdQueryParameters; @@ -73,4 +77,10 @@ new GetDbUserByUserNameAndDomainQueryParameters(userName, domainName), BaseResource.class); } + + @Override + public Response remove() { + get(); + return performAction(VdcActionType.RemoveUser, new IdParameters(asGuid(id))); + } } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUsersResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUsersResource.java index d5f9807..028e0b7 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUsersResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUsersResource.java @@ -24,7 +24,6 @@ import org.ovirt.engine.api.restapi.utils.DirectoryEntryIdUtils; import org.ovirt.engine.core.aaa.DirectoryUser; import org.ovirt.engine.core.common.action.AddUserParameters; -import org.ovirt.engine.core.common.action.IdParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.aaa.DbUser; import org.ovirt.engine.core.common.interfaces.SearchType; @@ -121,11 +120,6 @@ constraint); return sb.toString(); - } - - @Override - public Response performRemove(String id) { - return performAction(VdcActionType.RemoveUser, new IdParameters(asGuid(id))); } protected Users mapDbUserCollection(List<DbUser> entities) { diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUserResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUserResourceTest.java index 91a98d7..be55689 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUserResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUserResourceTest.java @@ -13,6 +13,8 @@ import org.ovirt.engine.api.model.Group; import org.ovirt.engine.api.model.User; import org.ovirt.engine.api.restapi.resource.AbstractBackendSubResourceTest; +import org.ovirt.engine.core.common.action.IdParameters; +import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.aaa.DbUser; import org.ovirt.engine.core.common.queries.GetDbUserByUserNameAndDomainQueryParameters; import org.ovirt.engine.core.common.queries.IdQueryParameters; @@ -75,6 +77,64 @@ verifyModel(resource.getUserByNameAndDomain("admin", "internal"), 0); } + @Test + public void testRemove() throws Exception { + setUpGetEntityExpectations(); + setUriInfo(setUpActionExpectations( + VdcActionType.RemoveUser, + IdParameters.class, + new String[] { "Id" }, + new Object[] { GUIDS[0] }, + true, + true)); + verifyRemove(resource.remove()); + } + + @Test + public void testRemoveNonExistant() throws Exception { + setUpGetEntityExpectations( + VdcQueryType.GetDbUserByUserId, + 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); + } + + private void doTestBadRemove(boolean canDo, boolean success, String detail) throws Exception { + setUpGetEntityExpectations(); + setUriInfo(setUpActionExpectations( + VdcActionType.RemoveUser, + IdParameters.class, + new String[] { "Id" }, + new Object[] { GUIDS[0] }, + canDo, + success)); + try { + resource.remove(); + fail("expected WebApplicationException"); + } catch (WebApplicationException wae) { + verifyFault(wae, detail); + } + } + protected void setUpGetEntityExpectations() throws Exception { setUpGetEntityExpectations(false); } diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUsersResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUsersResourceTest.java index 0da9145..b5bb6de 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUsersResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUsersResourceTest.java @@ -18,7 +18,6 @@ import org.ovirt.engine.api.restapi.utils.DirectoryEntryIdUtils; import org.ovirt.engine.core.aaa.DirectoryUser; import org.ovirt.engine.core.common.action.AddUserParameters; -import org.ovirt.engine.core.common.action.IdParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.aaa.DbUser; import org.ovirt.engine.core.common.interfaces.SearchType; @@ -47,83 +46,6 @@ public BackendUsersResourceTest() { super(new BackendUsersResource(), SearchType.DBUser, "Users : "); - } - - @Test - public void testRemove() throws Exception { - setUpGetEntityExpectations(); - setUriInfo( - setUpActionExpectations( - VdcActionType.RemoveUser, - IdParameters.class, - new String[] { "Id" }, - new Object[] { GUIDS[0] }, - true, - true - ) - ); - verifyRemove(collection.remove(GUIDS[0].toString())); - } - - @Test - public void testRemoveNonExistant() throws Exception{ - setUpGetEntityExpectations( - VdcQueryType.GetDbUserByUserId, - 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.GetDbUserByUserId, - 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); - } - - private void doTestBadRemove(boolean canDo, boolean success, String detail) throws Exception { - setUpGetEntityExpectations(); - setUriInfo( - setUpActionExpectations( - VdcActionType.RemoveUser, - IdParameters.class, - new String[] { "Id" }, - 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/42011 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7ecc13c300732ea919ca4e47f69b0e2e64439e56 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ori Liel <ol...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches