You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@libcloud.apache.org by Steve Gregory <co...@steve-gregory.com> on 2013/10/30 20:33:56 UTC

[dev] Specifications for New Openstack Storage Driver - Cinder

Hello,

I've been working very closely with the openstack compute driver on
libcloud and its great! However, not all API functionality is exposed
through nova. One specific call I was trying to make this week was to call
the cinder API to list all volumes (specifically, i needed it to pass the
'all_tenants' attribute which is not supported by the os-volume nova
extension).

I was still able to use the libcloud driver to make calls to cinder by
modifying the _ex_force_base_url to match the corresponding value for
cinder in the service catalog, but it is not an elegant process.

During my discussions in the IRC chat it was brought up that there was talk
to support both nova and cinder from the openstack driver, by way of
creating a separate driver that dealt only with calls to cinder, but could
be wrapped in the compute driver interface.

I look forward to coding up a solution, but before I begin, I think its
best to call out to the developers: is there anything else that I should
know? Any specifications that were previously discussed? Any specific
template I should be following to ensure compatability with the openstack
compute driver and consistency with the rest of the storage drivers?

Thanks for your help,
Steve Gregory

Re: [dev] Specifications for New Openstack Storage Driver - Cinder

Posted by Brian Curtin <br...@RACKSPACE.COM>.
On Oct 30, 2013, at 12:33 PM, Steve Gregory <co...@steve-gregory.com> wrote:

> Hello,
> 
> I've been working very closely with the openstack compute driver on
> libcloud and its great! However, not all API functionality is exposed
> through nova. One specific call I was trying to make this week was to call
> the cinder API to list all volumes (specifically, i needed it to pass the
> 'all_tenants' attribute which is not supported by the os-volume nova
> extension).
> 
> I was still able to use the libcloud driver to make calls to cinder by
> modifying the _ex_force_base_url to match the corresponding value for
> cinder in the service catalog, but it is not an elegant process.
> 
> During my discussions in the IRC chat it was brought up that there was talk
> to support both nova and cinder from the openstack driver, by way of
> creating a separate driver that dealt only with calls to cinder, but could
> be wrapped in the compute driver interface.
> 
> I look forward to coding up a solution, but before I begin, I think its
> best to call out to the developers: is there anything else that I should
> know? Any specifications that were previously discussed? Any specific
> template I should be following to ensure compatability with the openstack
> compute driver and consistency with the rest of the storage drivers?

I started (and stopped, and started and stopped) work on creating a Cinder driver, but it’s not yet complete. I basically made it so when you create a Nova driver, you can select to use the volume extension API or the Cinder driver for how you do your block storage stuff. It’s partly driven by Rackspace needing Cinder support because Rackspace Cloud Servers only support creating block storage via Rackspace’s Cloud Block Storage, which is built on Cinder - we don’t support creating BS via the extension. It’s also driven by just wanting to add more OpenStack support.

Choosing the extension API was the easy part and that works fine. I still need to build out the rest of the Cinder driver, but I have most of it sketched out at https://github.com/briancurtin/libcloud/tree/add_cinder_support

It doesn’t really work yet since I’ve been piecing things together and playing with it, so it’s very much a work in progress. If you have any ideas on how to move that forward, or to go another way, or whatever, I’d be happy to work with you on it.