Refactor SSHPool.get() to use Pool.get()

In previous code of SSHPool.get(), we pasted the code
from Pool.get() and check if a connection is active before return
it.

However, it's much simpler and cleaner to just call the Pool.get()
and then check the connection before return. With this,we can free
ourselves from manually keeping up with code of Pool.get() in
upstream package eventlet

As a side effect,this patch fixed bug #1194393 which caused by a
previous bug in eventlet codes before revision 1072

fixed bug #1194393
Change-Id: Ic2bf2fa1ad82cf8669b6c491c955dcab39eb1510
Added incremental backup support to Ceph backup driver

The Ceph backup driver is now capable of doing differential
and incremental backups between or within Ceph clusters.

Implements: blueprint cinder-backup-to-ceph

Change-Id: Id59bf1963c6d35aae4baf6f49be17340982c205c
Clone_image method added image_id as parameter.

Clone_image method contains volume and image_location
as parameters. It needs to add additional image_id
as a parameter for driver implementations to introspect
internal image stores or registry for efficient image cloning.

blueprint clone-image-imageid

Change-Id: I20ae519492d73abecb1d0efc3b8e7204d2b2a4cb
3PAR Driver modifications to support QOS

Currently, the OpenStack HP 3PAR Fibre Channel (FC) and iSCSI Drivers
do not support Quality of Service (QoS) extra specs. The QoS settings
added in this patch include;
•   maximum MB/second (maxBWS)
•   maximum IO/second (maxIOPS)
These new extra specs will be scoped keys, the scoping will be
qos:maxBWS and qos:maxIOPS. A new key hp3par:vvs was also
added to allow the admin to predefine QOS settings on a 3PAR
virtual volume set and any volume created would be added
to that predefined volume set.

The 3PAR storage arrays set these values on virtual volume sets,
not the actual volume. So the change includes creating a virtual
volume set with these settings and then adding the volume to the
volume set.
1.  Max IO/S & Max MB/S are not QoS guarantees
2.  These are per volume maximums which the 3PAR is guaranteed
not to exceed.
3.  Settings these values does not guarantee these performance
rates will be achievable

DocImpact

Implements blueprint 3par-qos-support

Change-Id: I69031c6d3febe11dd5f9ff17095b86f3fe72a2a4
Fix volumes search by metadata

The metadata parameter is urlencoded (to string) by cinderclient
but isn't decoded back to dict by the API.

The metadata parameter needs to be converted back to dict
to be of any use by the filters parameter of get_all().

The original implementation has been done by:
Mathieu Gagne <mgagne@iweb.com>

Fixes: bug #1195015

Change-Id: I19d7d386afddddc067e9f4ef86967c9b72d9e530
Merge "3PAR Driver modifications to support QOS"
Cleanup README.rst

Change-Id: Ia7413db4d71c85cbb382f289f36c02b0f838571d
Implement extend volume for Storwize/SVC.

This implements the extend volume functionality for the Storwize/SVC
driver.  Extending volumes with snapshots is not supported, as this
will require converting the snapshots into full copies, which will eat
up free space.

Change-Id: I5fb8c6967e6f3df1adfef46e05c832a953dd7131
Add create & attach times to SolidFire attributes.

This change simply adds create_time and attach_time to
the SolidFire devices attributes.

Times are taken from the volume-ref object, attach_time
is only set/present after an attach, and is also removed
from the attributes list on a detach.

This also required that we actually set attach_time on the
volume in the db.  We have the column, but we weren't actually
setting it, so this change required that be fixed.

In the future we should also look at changing the attach_time
from a string to a proper date-time object.

Change-Id: Ib9577ac160596a6878d1729f6022885b6cfa90e2
Fix further Hacking 0.6.x warnings

* Add missing Apache license header
* Avoid using locals() in string formatting

Change-Id: Ib9fa878babae5c50bc77e48c62b33a8ebfe39f7f
use 'exc_info=1' instead of import traceback

We need store traceback message in log sometime. Python logging module
already provide a argument to do that. For example, we could:

logger.error('msg', exc_info=1)
logger.debug(e, exc_info=(type_,value_,tb))
logger.exception('msg') # exception add exc_info automaticly

Change-Id: Iaf541e4f4ea139d9315ac1990f0e6079c8f8a20d
fix name 'update_volume_status' to 'update_volume_stats'

_update_volume_status() private method is called by
get_volume_stats(). This is confusing as the volume's
stats and not status gets updated.

fixes bug #1199327

Change-Id: I9f7971e457250798320c14d3f58bdc199c8cfceb
Merge "Added incremental backup support to Ceph backup driver"
Merge "Refactor SSHPool.get() to use Pool.get()"
Merge "Cleanup README.rst"
Fixes RBD driver docstring format issues.

All docstrings should now comply with HACKING.rst

Change-Id: I0892af8d81415880d5e0f9aab5c7cd95ff3bf6b9
Fixes: bug #1203697
Fix oslo.config.cfg.NoSuchOptError when running individual tests

We need to import cinder.common.config wherever we are using an olso
configuration option from this module. Otherwise it is not necessarily
the case that olso knows about the option and it complains.

cinder.tests imports this configuration module but it not the case that
this module has been imported when you you are running individual tests.

Change-Id: I8f2c966848f55c80213d2ecd2dbf75b777627e6b
Fixes: bug #1203737
Merge "Add create & attach times to SolidFire attributes."
GPFS convert glance image to raw only when needed

Modify _gpfs_fetch_to_raw to check image format.  If already in raw
format, no need to call convert_image.  In that case, simply rename
to destination name.

Change-Id: I197d99194f93c02ce3c501de25433d89b23e6a35
Fixes: bug #1201676
Update RBD driver to be compliant with HACKING

Fixes imports, doc strings, and dict style.

Change-Id: Id678d972b9bf744239460fe97155a6a7bd8a868e