Yeah, what Markos said. It would be great to have this in trunk and it should be relatively easy to add it.
The link Markos posted looks like a good start, but you can see it's old and out of date. The whole thing can be simplified a lot and implement in substantially less lines of code today - key pair extension methods can be removed, "region" argument should be used, etc. If you need any help, let us know. On Wed, Feb 26, 2014 at 7:29 PM, Markos Gogoulos <[email protected]> wrote: > > > Hi Patrick, > > makes sense to me and should be straightforward to add > the driver, in fact I see there has been such an effort > ( > https://github.com/chirag-jog/libcloud/commit/07bc33e888a7e3782252f2e82b40013b0d6b7f78 > ) > although not sure why it wasn't merged to trunk. > > I suggest you open > an issue on jira so the discussion is not lost - > https://issues.apache.org/jira/browse/LIBCLOUD > > Regards, > > Markos > > Στις > 24.02.2014 23:17, Patrick Galbraith έγραψε: > > > Dear libcloud > community, > > > > I have the following proposal and was curious what > people on this list would think about it. > > > > Problem: > > > > Libcloud is > a unified API that makes is possible to connect to a variety of cloud > providers: Openstack-based, EC2, Vcloud, etc. It also supports four main > APIs: compute, storage, load balancers and DNS. > > > > For Compute to work > with an OpenStack cloud, you can use the stock Openstack provider, or in > the case of Rackspace, the Rackspace compute driver which inherits from > the base Openstack driver. The idea of the "driver" being another > abstraction on top of the Openstack driver. Rackspace's driver also > supports their old as well as the next generation Openstack compute. A > good way to understand this would be comparing how one connects: observe > the simplicity of the Rackspace connection: > > > > For Rackspace, all I > need is: > > > > cls = get_driver(Provider.RACKSPACE) > > driver = > cls('user', 'key value', region='ord') > > > > Versus a stock OpenStack > connection: > > > > HPCLOUD_AUTH_URL = > > > 'https://region-b.geo-1.identity.hpcloudsvc.com:35357/v2.0/tokens [1]' > > > > > OpenStack = get_driver(Provider.OPENSTACK) > > > > driver = > OpenStack('[email protected]', 'redacted', > > > ex_force_auth_url=HPCLOUD_AUTH_URL, > > > ex_force_auth_version='2.0_password', > > > ex_force_service_region='region-b.geo-1', > > > ex_tenant_name='[email protected]', > > > ex_force_service_name='Compute') > > > > Obviously, it's relatively simple > to use the Openstack driver, but the Rackspace driver demonstrates that > it makes it a bit more convenient to connect. I found in my > investigation into a problem with salt-stack and newer versions of > OpenStack Nova a problem I thought originally was libcloud was in fact > just difficulty in getting the connection parameters correct -- > something that a subclass such as what the Rackspace driver would do for > HP Cloud. > > > > I would envision the HP driver working such as: > > > > cls > = get_driver(Provider.HPCLOUD) > > driver = cls('user', 'password', > region='ae1') > > > > From what I see in using libcloud, the idea is to > make connecting and using a cloud provider as simple as possible and > straightforward and this falls right into line with that concept. > > > > I > propose developing this driver. It seems the work would be rather > straightforward and shouldn't take more than a week of development. I > wanted to get input from others on this list first. > > > > Thank you, > > > > > Patrick > > > > Links: > ------ > [1] > https://region-b.geo-1.identity.hpcloudsvc.com:35357/v2.0/tokens >
