You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by Sang-Min Park <sa...@eucalyptus.com> on 2011/02/21 21:04:54 UTC

Scope of API definitions

Hi all,



During the fork and modification of EC2 driver into Eucalyptus driver, I
found that there’re functions that are not listed on Deltacloud API (
http://incubator.apache.org/deltacloud/api.html) For example, they are
‘keys’, ‘buckets/blobs’, ‘load balancer’, ‘storage volume’, etc.



Should they be considered core APIs like the ones documented on the API
page? Is there a guideline on the API coverage for a new driver
implementation (like implementing some APIs is mandatory and the others are
optional) ? If some functions could not be supported (like load balancer),
is there a well-defined way to tell the framework that the functions are not
supported?



Thanks!



-------------------------------------------------------------

Sang-Min Park

Software Engineer, Eucalyptus Systems, Inc.

6755 Hollister Avenue | Goleta, CA | 93117
Office: 805-845-8000 (+9038) Cell: 434-825-4939
email: spark@eucalyptus.com

http://www.eucalyptus.com

Re: Scope of API definitions

Posted by David Lutterkort <lu...@redhat.com>.
On Mon, 2011-02-21 at 15:23 -0500, Eric Woods wrote:
> To reiterate the importance of Sang-Min's question, I think we should
> consider documenting these functions (found in base_driver.rb),
> indicating which ones are considered "core" and which may be
> optionally implemented:

Completely agree - the first step in this process is to wrote up teh
definition of the public API. I am in the process of doing that.
Hopefully have that done by the end of the week.

David



Re: Scope of API definitions

Posted by Eric Woods <wo...@gmail.com>.
To reiterate the importance of Sang-Min's question, I think we should consider documenting these functions (found in base_driver.rb), indicating which ones are considered "core" and which may be optionally implemented:

    # def realms(credentials, opts=nil)
    #
    # def images(credentials, ops)
    #
    # def instances(credentials, ops)
    # def create_instance(credentials, image_id, opts)
    # def start_instance(credentials, id)
    # def stop_instance(credentials, id)
    # def reboot_instance(credentials, id)
    #
    # def storage_volumes(credentials, ops)
    #
    # def storage_snapshots(credentials, ops)
    # 
    # def buckets(credentials, opts = nil)
    # def create_bucket(credentials, name, opts=nil)
    # def delete_bucket(credentials, name, opts=nil)
    #
    # def blobs(credentials, opts = nil)
    # def blob_data(credentials, bucket_id, blob_id, opts)
    # def create_blob(credentials, bucket_id, blob_id, blob_data, opts=nil)
    # def delete_blob(credentials, bucket_id, blob_id, opts=nil)
    #
    # def keys(credentials, opts)
    # def create_key(credentials, opts)
    # def destroy_key(credentials, opts)

When I saw the EC2 driver's extensive functionality, I asked the same question and found this list to be comprehensive of Deltacloud's "build-in" support.

Hope this helps,
Eric W.

On Feb 21, 2011, at 3:04 PM, Sang-Min Park wrote:

> Hi all,
> 
> 
> 
> During the fork and modification of EC2 driver into Eucalyptus driver, I
> found that there’re functions that are not listed on Deltacloud API (
> http://incubator.apache.org/deltacloud/api.html) For example, they are
> ‘keys’, ‘buckets/blobs’, ‘load balancer’, ‘storage volume’, etc.
> 
> 
> 
> Should they be considered core APIs like the ones documented on the API
> page? Is there a guideline on the API coverage for a new driver
> implementation (like implementing some APIs is mandatory and the others are
> optional) ? If some functions could not be supported (like load balancer),
> is there a well-defined way to tell the framework that the functions are not
> supported?
> 
> 
> 
> Thanks!
> 
> 
> 
> -------------------------------------------------------------
> 
> Sang-Min Park
> 
> Software Engineer, Eucalyptus Systems, Inc.
> 
> 6755 Hollister Avenue | Goleta, CA | 93117
> Office: 805-845-8000 (+9038) Cell: 434-825-4939
> email: spark@eucalyptus.com
> 
> http://www.eucalyptus.com


Re: Scope of API definitions

Posted by "marios@redhat.com" <ma...@redhat.com>.
Hi Sang-Min,

On 21/02/11 22:04, Sang-Min Park wrote:
> found that there’re functions that are not listed on Deltacloud API (
> http://incubator.apache.org/deltacloud/api.html) For example, they are
> ‘keys’, ‘buckets/blobs’, ‘load balancer’, ‘storage volume’, etc.

yes, you're right, that could do with some updating (this is on the 
current 'todo' list together with updating our official api spec)

> Should they be considered core APIs like the ones documented on the API
> page? Is there a guideline on the API coverage for a new driver
> implementation (like implementing some APIs is mandatory and the others are
> optional) ? If some functions could not be supported (like load balancer),
> is there a well-defined way to tell the framework that the functions are not
> supported?
>


yes they are part of the core API, however we don't have a 'well 
defined' way for developers to decide what to implement. A general rule 
is that a provider driver will implement 'what they can' - for instance, 
the storage api (buckets/blobs) is only available for ec2, rackspace and 
azure drivers. Each provider driver includes the appropriate collections 
in the driver definition (and only these are presented to a client at 
the /api toplevel entry point).

One thing you can do is fire up the core server 
(/path/to/source/deltacloud/server/bin/deltacloudd -i mock [or -i ec2]) 
and open a browser to 'http://localhost:3001/api/docs' to see 
documentation for collections (buckets, images etc) and what operations 
you can perform on these.

Sorry to have missed you on irc, the core developers are usually around 
earlier in the day but we are around, so please keep asking there as 
well as this list,

all the best, marios


>
>
> Thanks!
>
>
>
> -------------------------------------------------------------
>
> Sang-Min Park
>
> Software Engineer, Eucalyptus Systems, Inc.
>
> 6755 Hollister Avenue | Goleta, CA | 93117
> Office: 805-845-8000 (+9038) Cell: 434-825-4939
> email: spark@eucalyptus.com
>
> http://www.eucalyptus.com
>