Juan Hernandez has uploaded a new change for review. Change subject: restapi: Move Gluster Volume remove from collection to entity ......................................................................
restapi: Move Gluster Volume 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: I7bb4478330532a521bed940ffdbd1ec2fb39211d Related: https://gerrit.ovirt.org/41783 Signed-off-by: Juan Hernandez <juan.hernan...@redhat.com> --- M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterVolumeResource.java M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterVolumesResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumeResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumesResource.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumeResourceTest.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumesResourceTest.java 6 files changed, 48 insertions(+), 58 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/89/41889/1 diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterVolumeResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterVolumeResource.java index b8e1f04..53bba12 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterVolumeResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterVolumeResource.java @@ -1,6 +1,7 @@ package org.ovirt.engine.api.resource.gluster; import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; @@ -17,69 +18,72 @@ import org.ovirt.engine.api.resource.MeasurableResource; /** - * Resource interface for the "clusters/{cluster_id}/glustervolumes/{volume_id}" resource + * Resource interface for the "clusters/{cluster_id}/glustervolumes/{volume_id}" resource. */ @Produces({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) public interface GlusterVolumeResource extends MeasurableResource { @GET - public GlusterVolume get(); + GlusterVolume get(); + + @DELETE + Response remove(); @Path("{action: (start|stop|rebalance|stoprebalance|setOption|resetOption|resetAllOptions)}/{oid}") - public ActionResource getActionSubresource(@PathParam("action") String action, @PathParam("oid") String oid); + ActionResource getActionSubresource(@PathParam("action") String action, @PathParam("oid") String oid); @POST @Consumes({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) @Actionable @Path("start") - public Response start(Action action); + Response start(Action action); @POST @Consumes({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) @Actionable @Path("stop") - public Response stop(Action action); + Response stop(Action action); @POST @Consumes({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) @Actionable @Path("rebalance") - public Response rebalance(Action action); + Response rebalance(Action action); @POST @Consumes({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) @Actionable @Path("stoprebalance") - public Response stopRebalance(Action action); + Response stopRebalance(Action action); @POST @Consumes({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) @Actionable @Path("setoption") - public Response setOption(Action action); + Response setOption(Action action); @POST @Consumes({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) @Actionable @Path("resetoption") - public Response resetOption(Action action); + Response resetOption(Action action); @POST @Consumes({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) @Actionable @Path("resetalloptions") - public Response resetAllOptions(Action action); + Response resetAllOptions(Action action); @POST @Consumes({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) @Actionable @Path("startprofile") - public Response startProfile(Action action); + Response startProfile(Action action); @POST @Consumes({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) @Actionable @Path("stopprofile") - public Response stopProfile(Action action); + Response stopProfile(Action action); @GET @Path("profilestatistics") @@ -89,7 +93,7 @@ ApiMediaType.APPLICATION_X_YAML, ApiMediaType.APPLICATION_PDF }) - public GlusterVolumeProfileDetails getProfileStatistics(); + GlusterVolumeProfileDetails getProfileStatistics(); /** * Sub-resource locator method, returns GlusterBricksResource on which the remainder of the URI is dispatched. @@ -97,5 +101,5 @@ * @return matching subresource if found */ @Path("bricks") - public GlusterBricksResource getGlusterBrickSubResource(); + GlusterBricksResource getGlusterBrickSubResource(); } diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterVolumesResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterVolumesResource.java index c5eb56c..3be314d 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterVolumesResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterVolumesResource.java @@ -1,10 +1,6 @@ -/** - * - */ package org.ovirt.engine.api.resource.gluster; import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; @@ -22,39 +18,27 @@ @Produces({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) public interface GlusterVolumesResource { @GET - public GlusterVolumes list(); + GlusterVolumes list(); /** - * Creates a new Gluster Volume and adds it to the database. The Volume is created based on properties of @volume<p> - * The properties {@link GlusterVolume#getName()}, {@link GlusterVolume#getVolumeType()} and - * {@link GlusterVolume#getGlusterBricks()} are required. + * Creates a new Gluster Volume and adds it to the database. The Volume is created based on properties of + * the {@code volume} parameter. The properties {@link GlusterVolume#getName()}, + * {@link GlusterVolume#getVolumeType()} and {@link GlusterVolume#getBricks()} are required. * - * @param volume - * the Gluster Volume definition from which to create the new Volume + * @param volume the Gluster Volume definition from which to create the new Volume * @return the new newly created Gluster Volume */ @POST @Consumes({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) - public Response add(GlusterVolume volume); - - /** - * Removes the given Gluster Volume and deletes it from the database. - * - * @param id ID of the volume to be removed - * @return - */ - @DELETE - @Path("{volume_id}") - public Response remove(@PathParam("volume_id") String id); + Response add(GlusterVolume volume); /** * Sub-resource locator method, returns individual GlusterVolumeResource on which the remainder of the URI is * dispatched. * - * @param name - * the GlusterVolume name + * @param id the volume identifier * @return matching subresource if found */ - @Path("{volume_id}") - public GlusterVolumeResource getGlusterVolumeSubResource(@PathParam("volume_id") String id); + @Path("{id}") + GlusterVolumeResource getGlusterVolumeSubResource(@PathParam("id") String id); } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumeResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumeResource.java index 4f3cbd2..fd16097 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumeResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumeResource.java @@ -193,4 +193,9 @@ return false; } } + + @Override + public Response remove() { + return performAction(VdcActionType.DeleteGlusterVolume, new GlusterVolumeParameters(guid)); + } } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumesResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumesResource.java index 037e674..9529d2f 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumesResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumesResource.java @@ -16,7 +16,6 @@ import org.ovirt.engine.api.restapi.resource.AbstractBackendCollectionResource; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.gluster.CreateGlusterVolumeParameters; -import org.ovirt.engine.core.common.action.gluster.GlusterVolumeParameters; import org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeType; @@ -120,11 +119,6 @@ bricks.add(getMapper(GlusterBrick.class, GlusterBrickEntity.class).map(brick, null)); } volumeEntity.setBricks(bricks); - } - - @Override - protected Response performRemove(String id) { - return performAction(VdcActionType.DeleteGlusterVolume, new GlusterVolumeParameters(asGuid(id))); } @Override diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumeResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumeResourceTest.java index acf9f6b..f619ac9 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumeResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumeResourceTest.java @@ -22,6 +22,7 @@ import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.gluster.GlusterVolumeActionParameters; import org.ovirt.engine.core.common.action.gluster.GlusterVolumeOptionParameters; +import org.ovirt.engine.core.common.action.gluster.GlusterVolumeParameters; import org.ovirt.engine.core.common.action.gluster.GlusterVolumeRebalanceParameters; import org.ovirt.engine.core.common.action.gluster.ResetGlusterVolumeOptionsParameters; import org.ovirt.engine.core.common.businessentities.AsyncTaskStatus; @@ -187,6 +188,21 @@ verifyActionResponse(resource.resetAllOptions(new Action())); } + @Test + public void testRemove() throws Exception { + setUriInfo( + setUpActionExpectations( + VdcActionType.DeleteGlusterVolume, + GlusterVolumeParameters.class, + new String[] { "VolumeId" }, + new Object[] { GUIDS[0] }, + true, + true + ) + ); + verifyRemove(resource.remove()); + } + protected UriInfo setUpActionExpectations(VdcActionType task, Class<? extends VdcActionParametersBase> clz, String[] names, diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumesResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumesResourceTest.java index 0311372..423cce9 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumesResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumesResourceTest.java @@ -1,6 +1,5 @@ package org.ovirt.engine.api.restapi.resource.gluster; - import static org.easymock.EasyMock.expect; import java.util.List; @@ -20,7 +19,6 @@ import org.ovirt.engine.api.restapi.resource.BackendResource; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.gluster.CreateGlusterVolumeParameters; -import org.ovirt.engine.core.common.action.gluster.GlusterVolumeParameters; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeType; import org.ovirt.engine.core.common.interfaces.SearchType; @@ -208,17 +206,6 @@ new String[] { "Id" }, new Object[] { volumeId }, getEntity(1)); - } - - @Test - public void testRemove() throws Exception { - setUriInfo(setUpActionExpectations(VdcActionType.DeleteGlusterVolume, - GlusterVolumeParameters.class, - new String[] { "VolumeId" }, - new Object[] { GUIDS[0] }, - true, - true)); - verifyRemove(collection.remove(GUIDS[0].toString())); } /** -- To view, visit https://gerrit.ovirt.org/41889 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7bb4478330532a521bed940ffdbd1ec2fb39211d Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Juan Hernandez <juan.hernan...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches