Make rbd store's pool handling more universal

Currently we ignore the pool part of the location throughout the rbd store code.
If there is a pool specified, use that. Otherwise we can still fall back to the
configured pool.

This is a required change if we want to support ephemeral disk snapshotting later on
as in that scenario the ephemeral pool might be a different pool from images pool,
yet we're going to need to reference the snapshot of a disk in the ephemeral pool.

Change-Id: Ie415667a809975948c8cfb71ec63a0905995fa67
Closes-Bug: 1368128
Closes-rally-bug: DE758
Not-in-upstream: true
rbd: clean up unused parents of clones on deletion

In order to make snapshotting ephemeral disks stored in rbd efficient
and avoid any local disk use, nova will tell glance about an rbd
snapshot's location rather than uploading data.

Since rbd images with snapshots cannot be deleted, nova cannot remove
the original disk in this case. Instead, nova renames the original rbd
image so glance can determine that it is no longer used by
nova. Glance can then delete this rbd image once its snapshots are
deleted.

To effect this, modify the rbd store's backend to recursively delete
any parents that have a special string in their name. This has
no chance of name collision from other openstack use since rbd images
are otherwise only named with uuids.

To allow glance to do this, it needs write access to the ceph pool
used by nova ephemeral disks.

DocImpact
Partial-Bug: #1346525
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Closes-rally-bug: DE758
Not-in-upstream: true
Merge pull request #5 from CiscoSystems/rbd-ephmeral-glance

Rbd ephmeral glance