Welcome to the libcloud community :)

First thank you for your feedback.

And now answers / feedback to your questions.

1. One of the main goals of Libcloud is to make using and switching between
multiple providers easier.

To make this possible, base API only exposes functionality which is
supported by majority of providers we have drivers for.

In RDBMS abstraction terms this usually means that the base API only
supports functionality which is for example defined in the ANSI-89 SQL
standard and your are discouraged from using other (e.g. Postgresql /
Oracle specific) functionality.

In Libcloud we do support some providers specific functionality
using extension methods (methods prefixed with "ex_"), but we discourage
users from using them if they use or want to use multiple providers in the
future.

2.

Keep in mind that the big chunk of the base API is now 4+ years old. A lot
has changes since them and it might makes sense to move more methods into
the base API.

Judging by my memory, having node start and stop method in the base API
does seems reasonable. Next step would be checking documentation of all the
providers we support and determine if majority of them actually supports
this functionality.

As far as _wait_until_running method goes - this method has been "promoted"
to the base API in the latest (0.12.1) release.

P.S. Here is a link to a thread from a couple of weeks ago which contains
answers to similar questions -
http://mail-archives.apache.org/mod_mbox/libcloud-users/201302.mbox/%3C1A1F3532-20E5-49D0-9F73-C75D1D36F9DA%40lal.in2p3.fr%3E

Let us know if you have any more questions.

On Tue, Mar 12, 2013 at 8:34 AM, Rudolf Streif
<[email protected]>wrote:

> Hello World, :)
>
> I am new to libcloud and have been using it for a little bit. I very much
> like the driver concept for abstracting the underlying cloud provider APIs
> which is very similar to the RDBMS drivers.
>
> So far I have mainly worked with the 'compute' drivers and I have a couple
> of newbie questions:
>
>
>    1. It seems odd to me that the NodeDriver class only defines methods for
>    create_node, reboot_node and destroy_node but no methods for start_node
> and
>    stop_node. I can see that some cloud APIs do not provide such
> functionality
>    but very common ones such as EC2, CloudSigma, etc. do. Consequently,
>    someone has implemented those methods as extensions in the particular
>    drivers. Is that a design consideration? Why not making them common in
> the
>    NodeDriver class?
>
>    2. Similar to 1 for the Node class. There are methods for rebooting and
>    destroying a node but none for starting and stopping it. There is also
> no
>    wait_until_running method in the Node class. Why is that?
>
> I have cloned the git repo and am adding the functionality I need for my
> application such as the above and other stuff. I am happy to contribute it
> back if there is interest.
>
> Cheers,
> Rudi
>

Reply via email to