Ori Liel has uploaded a new change for review. Change subject: restapi: Move Permit remove from collection to entity ......................................................................
restapi: Move Permit 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: I0d0a4631459e0639c0cebb8be91008bbe0bbbb08 Signed-off-by: Ori Liel <ol...@redhat.com> --- M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PermitResource.java M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PermitsResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPermitResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPermitsResource.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendPermitResourceTest.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendPermitsResourceTest.java 6 files changed, 112 insertions(+), 98 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/48/42148/1 diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PermitResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PermitResource.java index 598aba1..0844387 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PermitResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PermitResource.java @@ -16,8 +16,10 @@ package org.ovirt.engine.api.resource; +import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.Produces; +import javax.ws.rs.core.Response; import org.ovirt.engine.api.model.Permit; @@ -26,4 +28,7 @@ @GET public Permit get(); + + @DELETE + public Response remove(); } diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PermitsResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PermitsResource.java index ef4d8ae..3986e3a 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PermitsResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PermitsResource.java @@ -18,7 +18,6 @@ import javax.ws.rs.Consumes; import javax.ws.rs.GET; -import javax.ws.rs.DELETE; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.POST; @@ -45,9 +44,6 @@ @Consumes({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) public Response add(Permit permit); - @DELETE - @Path("{id}") - public Response remove(@PathParam("id") String id); /** * Sub-resource locator method, returns individual PermitResource on which diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPermitResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPermitResource.java index 8a2a182..9aea7d2 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPermitResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPermitResource.java @@ -1,20 +1,23 @@ package org.ovirt.engine.api.restapi.resource; +import javax.ws.rs.core.Response; + import org.ovirt.engine.api.model.Permit; import org.ovirt.engine.api.model.PermitType; import org.ovirt.engine.api.resource.PermitResource; +import org.ovirt.engine.core.common.action.ActionGroupsToRoleParameter; +import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.ActionGroup; +import org.ovirt.engine.core.compat.Guid; public class BackendPermitResource - extends AbstractBackendResource<Permit, ActionGroup> + extends AbstractBackendSubResource<Permit, ActionGroup> implements PermitResource { - protected String id; protected BackendPermitsResource parent; public BackendPermitResource(String id, BackendPermitsResource parent) { - super(Permit.class, ActionGroup.class); - this.id = id; + super(id, Permit.class, ActionGroup.class); this.parent = parent; } @@ -51,4 +54,22 @@ protected Permit doPopulate(Permit model, ActionGroup entity) { return model; } + + @Override + public Response remove() { + get(); + ActionGroup entity = parent.lookupId(id); + if (entity == null) { + notFound(); + return null; + } + return performAction(VdcActionType.DetachActionGroupsFromRole, + new ActionGroupsToRoleParameter(parent.roleId, asList(entity))); + } + + @Override + protected Guid asGuidOr404(String id) { + // Permit ID is not a GUID + return null; + } } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPermitsResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPermitsResource.java index 39e979a..ed1998a 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPermitsResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPermitsResource.java @@ -63,17 +63,6 @@ } @Override - public Response performRemove(String id) { - ActionGroup entity = lookupId(id); - if (entity == null) { - notFound(); - return null; - } - return performAction(VdcActionType.DetachActionGroupsFromRole, - new ActionGroupsToRoleParameter(roleId, asList(entity))); - } - - @Override @SingleEntityResource public PermitResource getPermitSubResource(String id) { return inject(new BackendPermitResource(id, this)); diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendPermitResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendPermitResourceTest.java index 44f913b..3865f67 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendPermitResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendPermitResourceTest.java @@ -1,29 +1,25 @@ package org.ovirt.engine.api.restapi.resource; +import java.util.ArrayList; +import java.util.List; + import javax.ws.rs.WebApplicationException; -import org.junit.Assert; import org.junit.Test; import org.ovirt.engine.api.model.Permit; import org.ovirt.engine.api.model.PermitType; -import org.ovirt.engine.api.restapi.resource.validation.ValidatorLocator; -import org.ovirt.engine.api.restapi.types.MappingLocator; import org.ovirt.engine.api.restapi.types.PermitMapper; +import org.ovirt.engine.core.common.action.ActionGroupsToRoleParameter; +import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.ActionGroup; import org.ovirt.engine.core.compat.Guid; -public class BackendPermitResourceTest extends Assert { +public class BackendPermitResourceTest extends AbstractBackendSubResourceTest<Permit, ActionGroup, BackendPermitResource> { private static final Guid ROLE_ID = new Guid("11111111-1111-1111-1111-111111111111"); - private MappingLocator mapperLocator; - private ValidatorLocator validatorLocator; - public BackendPermitResourceTest() { - mapperLocator = new MappingLocator(); - mapperLocator.populate(); - validatorLocator = new ValidatorLocator(); - validatorLocator.populate(); + super(new BackendPermitResource("1", new BackendPermitsResource(ROLE_ID))); } @Test @@ -40,6 +36,7 @@ BackendPermitResource resource = new BackendPermitResource(id, new BackendPermitsResource(ROLE_ID)); resource.getParent().setMappingLocator(mapperLocator); try { + control.replay(); resource.get(); fail("expected WebApplicationException"); } catch (WebApplicationException wae) { @@ -49,17 +46,79 @@ @Test public void testGet() { + initResource(resource.parent); + control.replay(); for (ActionGroup action : ActionGroup.values()) { - BackendPermitResource resource = - new BackendPermitResource(Integer.toString(action.getId()), new BackendPermitsResource(ROLE_ID)); - resource.setMappingLocator(mapperLocator); - resource.getParent().setMappingLocator(mapperLocator); - resource.setValidatorLocator(validatorLocator); - resource.getParent().setValidatorLocator(validatorLocator); + resource.id = Integer.toString(action.getId()); verifyPermit(resource.get(), action); } + resource.id = "1"; // reset id, because 'resource' is used for multiple tests. } + @Test + public void testRemoveBadId() throws Exception { + doTestRemoveNotFound("foo"); + } + + @Test + public void testRemoveNotFound() throws Exception { + doTestRemoveNotFound("11111"); + } + + private void doTestRemoveNotFound(String id) throws Exception { + initResource(resource.parent); + resource.id = id; + control.replay(); + try { + resource.remove(); + fail("expected WebApplicationException"); + } catch (WebApplicationException wae) { + verifyNotFoundException(wae); + } + resource.id = "1"; + } + + @Test + public void testRemove() throws Exception { + initResource(resource.parent); + List<ActionGroup> actionGroups = new ArrayList<ActionGroup>(); + actionGroups.add(ActionGroup.forValue(1)); + setUriInfo(setUpActionExpectations(VdcActionType.DetachActionGroupsFromRole, + ActionGroupsToRoleParameter.class, + new String[] { "RoleId", "ActionGroups" }, + new Object[] { GUIDS[1], actionGroups }, + true, + true)); + verifyRemove(resource.remove()); + } + + @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 { + initResource(resource.parent); + List<ActionGroup> actionGroups = new ArrayList<ActionGroup>(); + actionGroups.add(ActionGroup.forValue(1)); + setUriInfo(setUpActionExpectations(VdcActionType.DetachActionGroupsFromRole, + ActionGroupsToRoleParameter.class, + new String[] { "RoleId", "ActionGroups" }, + new Object[] { GUIDS[1], actionGroups }, + canDo, + success)); + try { + resource.remove(); + fail("expected WebApplicationException"); + } catch (WebApplicationException wae) { + verifyFault(wae, detail); + } + } private void verifyPermit(Permit permit, ActionGroup action) { assertEquals(Integer.toString(action.getId()), permit.getId()); PermitType permitType = PermitMapper.map(action, (PermitType)null); @@ -67,5 +126,11 @@ assertNotNull(permit.getRole()); assertEquals(ROLE_ID.toString(), permit.getRole().getId()); } + + @Override + protected ActionGroup getEntity(int index) { + // TODO Auto-generated method stub + return null; + } } diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendPermitsResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendPermitsResourceTest.java index eef1923..1de15a4 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendPermitsResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendPermitsResourceTest.java @@ -3,7 +3,6 @@ import java.util.ArrayList; import java.util.List; -import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.Response; import org.junit.Ignore; @@ -28,67 +27,6 @@ @Override public void testQuery() throws Exception { } - - @Test - public void testRemoveBadId() throws Exception { - doTestRemoveNotFound("foo"); - } - - @Test - public void testRemoveNotFound() throws Exception { - doTestRemoveNotFound("11111"); - } - - private void doTestRemoveNotFound(String id) throws Exception { - control.replay(); - try { - collection.remove(id); - fail("expected WebApplicationException"); - } catch (WebApplicationException wae) { - verifyNotFoundException(wae); - } - } - - @Test - public void testRemove() throws Exception { - List<ActionGroup> actionGroups = new ArrayList<ActionGroup>(); - actionGroups.add(ActionGroup.forValue(1)); - setUriInfo(setUpActionExpectations(VdcActionType.DetachActionGroupsFromRole, - ActionGroupsToRoleParameter.class, - new String[] { "RoleId", "ActionGroups" }, - new Object[] { GUIDS[1], actionGroups }, - true, - true)); - verifyRemove(collection.remove("1")); - } - - @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 { - List<ActionGroup> actionGroups = new ArrayList<ActionGroup>(); - actionGroups.add(ActionGroup.forValue(1)); - setUriInfo(setUpActionExpectations(VdcActionType.DetachActionGroupsFromRole, - ActionGroupsToRoleParameter.class, - new String[] { "RoleId", "ActionGroups" }, - new Object[] { GUIDS[1], actionGroups }, - canDo, - success)); - try { - collection.remove("1"); - fail("expected WebApplicationException"); - } catch (WebApplicationException wae) { - verifyFault(wae, detail); - } - } - @Test public void testAddPermit() throws Exception { -- To view, visit https://gerrit.ovirt.org/42148 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0d0a4631459e0639c0cebb8be91008bbe0bbbb08 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