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

Reply via email to