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

Reply via email to