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
