Timothy Asir has uploaded a new change for review. Change subject: gluster: commit remove bricks rest api ......................................................................
gluster: commit remove bricks rest api REST api for commiting the remove brick to the volume Change-Id: Id02298032c4b6b5986c785ae602800e428c6bf47 Signed-off-by: Timothy Asir <tjeya...@redhat.com> --- 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/java/org/ovirt/engine/api/resource/gluster/GlusterVolumeResource.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 M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumeResource.java 5 files changed, 55 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/64/19564/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..f051fba 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 @@ -13,7 +13,9 @@ import javax.ws.rs.core.Response; import org.jboss.resteasy.annotations.providers.jaxb.Formatted; +import org.ovirt.engine.api.model.Actionable; import org.ovirt.engine.api.model.GlusterBricks; +import org.ovirt.engine.api.resource.ActionResource; import org.ovirt.engine.api.resource.ApiMediaType; import org.ovirt.engine.api.resource.RsdlIgnore; @@ -25,6 +27,9 @@ @GET @Formatted public GlusterBricks list(); + + @Path("{action: (commit)}") + public ActionResource getActionSubresource(@PathParam("action") String action); /** * Adds given list of bricks to the volume, and updates the database accordingly. The properties @@ -63,6 +68,22 @@ public Response remove(@PathParam("brick_id") String id); /** + * Commit remove brick and update the given list of bricks to the volume, and updates the database accordingly. The properties + * {@link org.ovirt.engine.api.model.GlusterBrick#getServerId()} and + * {@link org.ovirt.engine.api.model.GlusterBrick#getBrickDir()} are required. + * + * @param bricks + * List of bricks to be updated to the volume + * @return + */ + @POST + @Formatted + @Consumes({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) + @Actionable + @Path("commit") + public Response commitRemove(GlusterBricks bricks); + + /** * Sub-resource locator method, returns individual GlusterBrickResource on which the remainder of the URI is * dispatched. * 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 e2ad0fb..e9be432 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 @@ -75,5 +75,5 @@ * @return matching subresource if found */ @Path("bricks") - public GlusterBricksResource getGlusterBrickSubResource(); + public GlusterBricksResource getGlusterBricksSubResource(); } 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 1fc7cb7..5206cd3 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 @@ -3857,6 +3857,21 @@ headers: Content-Type: {value: application/xml|json, required: true} Correlation-Id: {value: 'any string', required: false} +- name: /api/clusters/{cluster:id}/glustervolumes/{glustervolume:id}/bricks/commit|rel=commit + description: update the new brick list after remove brick to the gluster volume attached to the cluster + request: + body: + parameterType: Action + signatures: + - mandatoryArguments: + brick--COLLECTION: {brick.server_id: 'xs:string', brick.brick_dir: 'xs:string'} + optionalArguments: {replica_count: 'xs:unsignedShort', stripe_count: 'xs:unsignedShort'} + description: update the new brick list after remove brick to the gluster volume attached to the cluster + urlparams: {} + headers: + Content-Type: {value: application/xml|json, required: true} + Expect: {value: 201-created, required: false} + Correlation-Id: {value: 'any string', required: false} - name: /api/clusters/{cluster:id}/glustervolumes/{glustervolume:id}/bricks/{brick:id}/replace|rel=replace description: replace the specified brick with a new brick directory in the gluster volume attached to the cluster request: 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..6816af6 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 @@ -10,9 +10,11 @@ import org.ovirt.engine.api.model.GlusterBrick; import org.ovirt.engine.api.model.GlusterBricks; import org.ovirt.engine.api.model.GlusterVolume; +import org.ovirt.engine.api.resource.ActionResource; import org.ovirt.engine.api.resource.gluster.GlusterBrickResource; import org.ovirt.engine.api.resource.gluster.GlusterBricksResource; import org.ovirt.engine.api.restapi.resource.AbstractBackendCollectionResource; +import org.ovirt.engine.api.restapi.resource.BackendActionResource; import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdcReturnValueBase; @@ -199,4 +201,19 @@ } + @Override + public Response commitRemove(GlusterBricks bricks) { + List<GlusterBrickEntity> brickEntities = mapBricks(asGuid(getVolumeId()), bricks); + int replicaCount = bricks.isSetReplicaCount() ? bricks.getReplicaCount() : 0; + //int stripeCount = bricks.isSetStripeCount() ? bricks.getStripeCount() : 0; + + return performAction(VdcActionType.CommitRemoveGlusterVolumeBricks, + new GlusterVolumeRemoveBricksParameters(asGuid(getVolumeId()), brickEntities, replicaCount)); + } + + @Override + public ActionResource getActionSubresource(String action) { + return inject(new BackendActionResource(action, "")); + } + } 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 c6b81b8..366eaa0 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 @@ -101,7 +101,7 @@ } @Override - public GlusterBricksResource getGlusterBrickSubResource() { + public GlusterBricksResource getGlusterBricksSubResource() { return inject(new BackendGlusterBricksResource(this)); } -- To view, visit http://gerrit.ovirt.org/19564 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id02298032c4b6b5986c785ae602800e428c6bf47 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Timothy Asir <tjeya...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches