]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
rbd: simplify configuration and use librbd and librados
authorJosh Durgin <josh.durgin@inktank.com>
Wed, 22 May 2013 00:49:02 +0000 (17:49 -0700)
committerJosh Durgin <josh.durgin@inktank.com>
Thu, 30 May 2013 20:26:24 +0000 (13:26 -0700)
commite2d0e1f479a56d60dc09ae913ab6625660ed0961
tree986fb04d23dbbb95f60f5c4e1c7d21ad3b8c2d97
parent483b84e42b90f2ffe0a09f5e38b85eb64cf8f7d9
rbd: simplify configuration and use librbd and librados

Add an rbd_ceph_conf options to mirror glance configuration, and use
the existing rbd_user option to choose how to connect to the cluster
instead of relying on an environment variable.  Use these settings
when running command line programs and when connecting via librados.

Use absolute imports so that importing the python librbd bindings
via 'import rbd' does not try to import cinder.drivers.rbd again.

Create some convenience wrappers to simplify librbd and librados
error handling and cleanup. Using these everywhere also simplifies
testing. Mock out all the librados and librbd calls in the tests
so these libraries don't need to be installed.

Remove the local_path() method since it's never used. It was
left over from nova-volume.

There are only three things still relying on the command line:
- importing an image
- exporting to an image
- getting monitor addresses

Importing and exporting on the command line include zero-detection
that would be little benefit to replicate here. librados and librbd
don't have a simple interface to obtain the monitor addresses, so
leave that to a command line tool as well.

Fixes: bug 1083540
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Change-Id: I32d059c5e460c2dd8423119b3dbe4a9921f5e907
cinder/tests/test_rbd.py
cinder/volume/drivers/rbd.py