Juan Hernandez has uploaded a new change for review.

Change subject: restapi: Move Data Center remove from collection to entity
......................................................................

restapi: Move Data Center 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: I82356e359564904138acefd49aea0e1f42b55ed0
Related: https://gerrit.ovirt.org/41783
Signed-off-by: Juan Hernandez <[email protected]>
---
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DataCenterResource.java
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DataCentersResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDataCenterResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDataCentersResource.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDataCenterResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDataCentersResourceTest.java
6 files changed, 132 insertions(+), 107 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/85/41785/1

diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DataCenterResource.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DataCenterResource.java
index d247533..1d4d306 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DataCenterResource.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DataCenterResource.java
@@ -16,13 +16,23 @@
 
 package org.ovirt.engine.api.resource;
 
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
+import javax.ws.rs.core.Response;
 
+import org.ovirt.engine.api.model.Action;
 import org.ovirt.engine.api.model.DataCenter;
 
 @Produces({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, 
ApiMediaType.APPLICATION_X_YAML})
 public interface DataCenterResource extends UpdatableResource<DataCenter> {
+    @DELETE
+    Response remove();
+
+    @DELETE
+    @Consumes({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, 
ApiMediaType.APPLICATION_X_YAML})
+    Response remove(Action action);
 
     @Path("storagedomains")
     public AttachedStorageDomainsResource getAttachedStorageDomainsResource();
diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DataCentersResource.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DataCentersResource.java
index 2f46e8d..6422f52 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DataCentersResource.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DataCentersResource.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;
@@ -25,7 +24,6 @@
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.Response;
 
-import org.ovirt.engine.api.model.Action;
 import org.ovirt.engine.api.model.DataCenter;
 import org.ovirt.engine.api.model.DataCenters;
 
@@ -40,15 +38,6 @@
     @POST
     @Consumes({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, 
ApiMediaType.APPLICATION_X_YAML})
     public Response add(DataCenter dataCenter);
-
-    @DELETE
-    @Path("{id}")
-    public Response remove(@PathParam("id") String id);
-
-    @DELETE
-    @Consumes({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, 
ApiMediaType.APPLICATION_X_YAML})
-    @Path("{id}")
-    public Response remove(@PathParam("id") String id, Action action);
 
     /**
      * Sub-resource locator method, returns individual DataCenterResource on 
which the
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDataCenterResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDataCenterResource.java
index b0a0269..6777ea3 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDataCenterResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDataCenterResource.java
@@ -5,6 +5,7 @@
 
 import java.util.List;
 
+import org.ovirt.engine.api.model.Action;
 import org.ovirt.engine.api.model.DataCenter;
 import org.ovirt.engine.api.resource.AssignedPermissionsResource;
 import org.ovirt.engine.api.resource.AttachedStorageDomainsResource;
@@ -17,6 +18,7 @@
 import org.ovirt.engine.api.restapi.utils.MalformedIdException;
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.action.StoragePoolManagementParameter;
+import org.ovirt.engine.core.common.action.StoragePoolParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
@@ -25,6 +27,8 @@
 import org.ovirt.engine.core.common.queries.NameQueryParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.Guid;
+
+import javax.ws.rs.core.Response;
 
 public class BackendDataCenterResource extends 
AbstractBackendSubResource<DataCenter, StoragePool>
         implements DataCenterResource {
@@ -150,4 +154,20 @@
     public QoSsResource getQossResource() {
         return inject(new BackendQossResource(id));
     }
+
+    @Override
+    public Response remove() {
+        get();
+        return performAction(VdcActionType.RemoveStoragePool, new 
StoragePoolParametersBase(asGuid(id)));
+    }
+
+    @Override
+    public Response remove(Action action) {
+        get();
+        StoragePoolParametersBase params = new 
StoragePoolParametersBase(asGuid(id));
+        if (action != null && action.isSetForce()) {
+            params.setForceDelete(action.isForce());
+        }
+        return performAction(VdcActionType.RemoveStoragePool, params);
+    }
 }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDataCentersResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDataCentersResource.java
index 69c35c6..59db79b 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDataCentersResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDataCentersResource.java
@@ -4,7 +4,6 @@
 
 import javax.ws.rs.core.Response;
 
-import org.ovirt.engine.api.model.Action;
 import org.ovirt.engine.api.model.DataCenter;
 import org.ovirt.engine.api.model.DataCenters;
 import org.ovirt.engine.api.model.StorageType;
@@ -12,7 +11,6 @@
 import org.ovirt.engine.api.resource.DataCenterResource;
 import org.ovirt.engine.api.resource.DataCentersResource;
 import org.ovirt.engine.core.common.action.StoragePoolManagementParameter;
-import org.ovirt.engine.core.common.action.StoragePoolParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.interfaces.SearchType;
@@ -60,21 +58,6 @@
         return performCreate(VdcActionType.AddEmptyStoragePool,
                                new StoragePoolManagementParameter(entity),
                                new 
QueryIdResolver<Guid>(VdcQueryType.GetStoragePoolById, 
IdQueryParameters.class));
-    }
-
-    @Override
-    public Response performRemove(String id) {
-        return performAction(VdcActionType.RemoveStoragePool, new 
StoragePoolParametersBase(asGuid(id)));
-    }
-
-    @Override
-    public Response remove(String id, Action action) {
-        getEntity(id);
-        StoragePoolParametersBase params = new 
StoragePoolParametersBase(asGuid(id));
-        if (action != null && action.isSetForce()) {
-            params.setForceDelete(action.isForce());
-        }
-        return performAction(VdcActionType.RemoveStoragePool, params);
     }
 
     private DataCenters mapCollection(List<StoragePool> entities) {
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDataCenterResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDataCenterResourceTest.java
index 4181106..88d3c90 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDataCenterResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDataCenterResourceTest.java
@@ -11,8 +11,10 @@
 import javax.ws.rs.WebApplicationException;
 
 import org.junit.Test;
+import org.ovirt.engine.api.model.Action;
 import org.ovirt.engine.api.model.DataCenter;
 import org.ovirt.engine.core.common.action.StoragePoolManagementParameter;
+import org.ovirt.engine.core.common.action.StoragePoolParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
@@ -138,6 +140,106 @@
         }
     }
 
+    @Test
+    public void testRemove() throws Exception {
+        setUpGetEntityExpectations(1);
+        setUpVersionExpectations();
+        setUriInfo(
+            setUpActionExpectations(
+                VdcActionType.RemoveStoragePool,
+                StoragePoolParametersBase.class,
+                new String[] { "StoragePoolId" },
+                new Object[] { GUIDS[0] },
+                true,
+                true
+            )
+        );
+        verifyRemove(resource.remove());
+    }
+
+    @Test
+    public void testRemoveForced() throws Exception {
+        setUpGetEntityExpectations(1);
+        setUpVersionExpectations();
+        setUriInfo(
+            setUpActionExpectations(
+                VdcActionType.RemoveStoragePool,
+                StoragePoolParametersBase.class,
+                new String[] { "StoragePoolId", "ForceDelete" },
+                new Object[] { GUIDS[0], Boolean.TRUE },
+                true,
+                true
+            )
+        );
+        Action action = new Action();
+        action.setForce(true);
+        verifyRemove(resource.remove(action));
+    }
+
+    @Test
+    public void testRemoveForcedIncomplete() throws Exception {
+        setUpGetEntityExpectations(1);
+        setUpVersionExpectations();
+        setUriInfo(
+            setUpActionExpectations(
+                VdcActionType.RemoveStoragePool,
+                StoragePoolParametersBase.class,
+                new String[] { "StoragePoolId", "ForceDelete" },
+                new Object[] { GUIDS[0], Boolean.FALSE },
+                true,
+                true
+            )
+        );
+        Action action = new Action();
+        resource.remove(action);
+    }
+
+    @Test
+    public void testRemoveNonExistant() throws Exception{
+        setUpGetEntityExpectations(1, true);
+        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(1);
+        setUpVersionExpectations();
+        setUriInfo(
+            setUpActionExpectations(
+                VdcActionType.RemoveStoragePool,
+                StoragePoolParametersBase.class,
+                new String[] { "StoragePoolId" },
+                new Object[] { GUIDS[0] },
+                canDo,
+                success
+            )
+        );
+        try {
+            resource.remove();
+            fail("expected WebApplicationException");
+        }
+        catch (WebApplicationException wae) {
+            verifyFault(wae, detail);
+        }
+    }
+
     protected void setUpGetEntityExpectations(int times) throws Exception {
         setUpGetEntityExpectations(times, false);
     }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDataCentersResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDataCentersResourceTest.java
index f2dc80c..d93ac5c 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDataCentersResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDataCentersResourceTest.java
@@ -10,10 +10,8 @@
 import javax.ws.rs.core.UriInfo;
 
 import org.junit.Test;
-import org.ovirt.engine.api.model.Action;
 import org.ovirt.engine.api.model.DataCenter;
 import org.ovirt.engine.core.common.action.StoragePoolManagementParameter;
-import org.ovirt.engine.core.common.action.StoragePoolParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.interfaces.SearchType;
@@ -55,57 +53,6 @@
         verifyCollection(getCollection());
     }
 
-    @Test
-    public void testRemove() throws Exception {
-        setUpGetEntityExpectations();
-        setUpVersionExpectations();
-        setUriInfo(setUpActionExpectations(VdcActionType.RemoveStoragePool,
-                                           StoragePoolParametersBase.class,
-                                           new String[] { "StoragePoolId" },
-                                           new Object[] { GUIDS[0] },
-                                           true,
-                                           true));
-        verifyRemove(collection.remove(GUIDS[0].toString()));
-    }
-
-    @Test
-    public void testRemoveForced() throws Exception {
-        setUpGetEntityExpectations();
-        setUpVersionExpectations();
-        setUriInfo(setUpActionExpectations(VdcActionType.RemoveStoragePool,
-                                           StoragePoolParametersBase.class,
-                                           new String[] { "StoragePoolId", 
"ForceDelete" },
-                                           new Object[] { GUIDS[0], 
Boolean.TRUE },
-                                           true,
-                                           true));
-        verifyRemove(collection.remove(GUIDS[0].toString(), new 
Action(){{setForce(true);}}));
-    }
-
-    @Test
-    public void testRemoveForcedIncomplete() throws Exception {
-        setUpGetEntityExpectations();
-        setUpVersionExpectations();
-        setUriInfo(setUpActionExpectations(VdcActionType.RemoveStoragePool,
-                                           StoragePoolParametersBase.class,
-                                           new String[] { "StoragePoolId", 
"ForceDelete" },
-                                           new Object[] { GUIDS[0], 
Boolean.FALSE },
-                                           true,
-                                           true));
-        collection.remove(GUIDS[0].toString(), new Action(){{}});
-    }
-
-    @Test
-    public void testRemoveNonExistant() throws Exception{
-        setUpGetEntityExpectations(NON_EXISTANT_GUID, true);
-        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(Guid entityId, boolean returnNull) 
throws Exception {
         setUpGetEntityExpectations(VdcQueryType.GetStoragePoolById,
@@ -115,32 +62,6 @@
                 returnNull ? null : 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();
-        setUpVersionExpectations();
-        setUriInfo(setUpActionExpectations(VdcActionType.RemoveStoragePool,
-                                           StoragePoolParametersBase.class,
-                                           new String[] { "StoragePoolId" },
-                                           new Object[] { GUIDS[0] },
-                                           canDo,
-                                           success));
-        try {
-            collection.remove(GUIDS[0].toString());
-            fail("expected WebApplicationException");
-        } catch (WebApplicationException wae) {
-            verifyFault(wae, detail);
-        }
-    }
 
     @Test
     public void testAddDataCenter() throws Exception {


-- 
To view, visit https://gerrit.ovirt.org/41785
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I82356e359564904138acefd49aea0e1f42b55ed0
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Juan Hernandez <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to