libcloud-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Querna <>
Subject Re: [libcloud] need feedback on deployment API in trunk!
Date Mon, 01 Mar 2010 05:37:32 GMT
On Sun, Feb 28, 2010 at 7:12 PM, Ian Bicking <> wrote:
> On Sun, Feb 28, 2010 at 9:04 PM, Tom White <> wrote:
>>> So, basically there is a new deploy_node() method on the base driver
>>> class.  If a driver supports either giving us the nodes password, or
>>> setting one, it logs in using Paramiko, and can do basic setup of the
>>> node.  Supporting SSH Keys for places like amazon shouldn't be too
>>> hard to extend in here quickly either!
> I'm a little wary of paramiko, mostly because of the pycrypto
> requirement, which itself require compiling stuff.  It's not terrible,
> but it introduces a potential installation problem that I was hoping
> to avoid (by using pure Python libraries).  OTOH, I'm on the fence
> about using Fabric for the same reason, and if libcloud uses paramiko
> then I'd probably not be on the fence and just start using Fabric too
> ;)  (Currently I'm using ssh calls via subprocess.)

I am not aware of any pure python SSH clients, other than Twisted
Conch, which would mean... porting to twisted (and depending on

If there are any others out there, I'd be happy to investigate switching.

> Does deploy_node do both a create, and then run the deployment?  What
> kind of error checking does it have?  E.g., if that apt-get fails,
> what then?  Does Fabric already accomplish the same things with
> greater depth?

It both creates the node, and does the initial connection.  It has
very little error handling right now. I definitely would like to
improve this though -- this is just a first draft :-)

I think there are a few options if we have a problem with the SSH connection:
 - We could leave the node alone (clean it up yourself later somehow)
 - We could destroy the node
 - We could provide an optional argument to pick one of the above behaviors.

View raw message