[Gluster-devel] Gluster REST - Management REST APIs for Glusterd 1.0

Aravinda avishwan at redhat.com
Mon Dec 28 07:57:58 UTC 2015


On 12/28/2015 01:01 PM, Vijay Bellur wrote:
> On 12/21/2015 05:51 AM, Aravinda wrote:
>> Hi,
>> In the past I submitted a feature([1] and [2]) to provide REST interface
>> to Gluster
>> CLI commands. I abandoned the patch because Glusterd 2.0 had plan to
>> include REST API support natively. Now I started again since other
>> projects like "skyrings"[3] is looking for REST API support for
>> Gluster.
>> Created a gist[4] to discuss the REST API formats, Please review and let
>> me know your thoughts. Document is still in WIP, will update the
>> document by next week.
> Are these APIs in sync with the ones in review for glusterd 2.0? Even 
> with api versioning, I would like us to have the APIs similar to 2.0 
> as much as possible.

I am trying to keep the APIs in sync with glusterd 2.0 for easy 
migration. But have some confusions while choosing the HTTP method for 
some URLs.
For example: Volume Creation.

Glusterd 2.0 uses volume name as part of body instead of part of URL 
since volume id is unique identifier and which can be used to perform 
other volume operations like start/stop.
But in Glusterd 1.0 operations based on ID is not possible using CLIs so 
two calls per request.

POST /volumes/:id/start

In Glusterd 1.0,
     Get Volname from Gluster Volume info
     Use that Volname to construct Gluster CLI(gluster volume start :name)

In Glusterd 2.0,
     May be directly possible to perform action using id.

To avoid this extra processing, I used Volume name as part of URL since 
Volume name is unique identifier per Cluster and these REST APIs are for 
single cluster management.

In Glusterd 1.0
     PUT /volumes/:name

In Glusterd 2.0
     POST /volumes

Once I submit the draft of REST API doc, we can discuss about these issues.

> Thanks,
> Vijay
>> [1]
>> http://www.gluster.org/community/documentation/index.php/Features/rest-api 
>> [2] http://review.gluster.org/#/c/7860/
>> [3] https://github.com/skyrings/
>> [4] https://gist.github.com/aravindavk/6961564b4b1d966b8845

More information about the Gluster-devel mailing list