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

Reply via email to