Timothy Asir has uploaded a new change for review. Change subject: restapi: REST api for start remove brick/bricks of a gluster volume ......................................................................
restapi: REST api for start remove brick/bricks of a gluster volume Can initiate a remove brick operation using DELETE method with the url: https://url:port/api/clusters/{cluster-id}/glustervolumes/{volume-id}/bricks/{brick-id} Multiple bricks also can be removed using DELETE method with the folowing request body structure: <bricks> <brick id="{brick-id1}"></brick> ... <brick id="{brick-idn}"></brick> </bricks> and with the url: https://url:port/api/clusters/{cluster-id}/glustervolumes/{volume-id}/bricks Change-Id: I786bec796ad7305defa93e74b6ecaa24b61870b2 Signed-off-by: Timothy Asir <[email protected]> --- M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterBricksResource.java M backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterBricksResource.java 3 files changed, 18 insertions(+), 11 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/58/19358/1 diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterBricksResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterBricksResource.java index 6ec9930..db033d4 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterBricksResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/gluster/GlusterBricksResource.java @@ -48,8 +48,8 @@ * @return */ @DELETE - @RsdlIgnore //TODO: remove this when we have support for delete at collection level in yaml metadata - public Response remove(GlusterBricks bricks); + @Consumes({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) + public Response startRemove(GlusterBricks bricks); /** * Removes the given brick from the volume and deletes it from the database. @@ -60,7 +60,7 @@ */ @DELETE @Path("{brick_id}") - public Response remove(@PathParam("brick_id") String id); + public Response startRemove(@PathParam("brick_id") String id); /** * Sub-resource locator method, returns individual GlusterBrickResource on which the remainder of the URI is diff --git a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml index b9c7efb..fc3dae8 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml +++ b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml @@ -3844,15 +3844,15 @@ headers: All-Content: {value: true|false, required: false} - name: /api/clusters/{cluster:id}/glustervolumes/{glustervolume:id}/bricks|rel=delete - description: get the list of all bricks in the gluster volume attached to the cluster + description: delete brick/bricks from the gluster volume attached to the cluster request: body: parameterType: Bricks - signatures: + signatures: - mandatoryArguments: bricks--COLLECTION: {brick.id: 'xs:string'} optionalArguments: {} - description: get the list of all bricks in the gluster volume attached to the cluster + description: delete the brick/bricks from the gluster volume attached to the cluster urlparams: {} headers: Content-Type: {value: application/xml|json, required: true} diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterBricksResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterBricksResource.java index 651dc3d..df99ba5 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterBricksResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterBricksResource.java @@ -42,7 +42,6 @@ setParent(parent); } - @SuppressWarnings("unchecked") @Override public GlusterBricks list() { List<GlusterBrickEntity> bricks = @@ -138,7 +137,7 @@ } @Override - public Response remove(GlusterBricks bricks) { + public Response startRemove(GlusterBricks bricks) { if (bricks.getGlusterBricks().size() > 0) { for (GlusterBrick brick : bricks.getGlusterBricks()) { validateParameters(brick, "id"); @@ -162,13 +161,17 @@ this.parent = parent; } - @Override - protected Response performRemove(String id) { + private GlusterBricks cookBricksUsingBrickId(String id) { GlusterBrick brick = new GlusterBrick(); brick.setId(id); GlusterBricks bricks = new GlusterBricks(); bricks.getGlusterBricks().add(brick); - return remove(bricks); + return bricks; + } + + @Override + protected Response performRemove(String id) { + return startRemove(cookBricksUsingBrickId(id)); } @Override @@ -199,4 +202,8 @@ } + @Override + public Response startRemove(String id) { + return startRemove(cookBricksUsingBrickId(id)); + } } -- To view, visit http://gerrit.ovirt.org/19358 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I786bec796ad7305defa93e74b6ecaa24b61870b2 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Timothy Asir <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
