Implement retype in HP LeftHand driver

This adds the ability to modify the
type of an existing HP LeftHand volume to
another type supported on the same backend.

Main use case for this is changing provisioning,
(full vs. thin), adaptive optimization and data
protections settings for a volume on-demand.

Change-Id: I78e53431708bcb3151c5dc4016e65d1a655e03c6
Implements: blueprint retype-support-for-hplefthand-driver
Add support for backing up volume metadata

This commit adds a new versioned api to the backup driver base
class which all backup driver implementations should use in order
to support backing up volume metadata as well as data. The general
rule here is that we backup all metadata from a set of db tables
and can then be selective about what we restore.

As part of this commit, Ceph backup driver implements the new api
to backup volume metadata (including glance metadata) thus
supporting restoring volumes as bootable.

It is expected that the other backup driver implementations will
follow suit and adopt this approach.

Implements: blueprint cinder-backup-volume-metadata-support
Fixes: bug 1137908
Change-Id: Icf2f1202d827d2435e09f5dad0f6f022f35dceee
GPFS:  Implement volume backup and restore

Add support in gpfs driver for volume backup interface
to backup or restore a volume using backup service
specified in cinder.conf.

Implements: blueprint gpfs-volume-backup
Change-Id: I6f6730bab87c7e7547a66e1b57909f761f87d347
Merge "Add support for backing up volume metadata"
IBM XIV and DS8000 Driver reorganizing (IBM dir)

    * renamed:    cinder/volume/drivers/xiv_ds8k.py
                  -> cinder/volume/drivers/ibm/xiv_ds8k.py
    * updated all references to old xiv_ds8k paths
    * regenerated sample.conf

Change-Id: Iab094c78a0e4eb1753fe8809089ba1337d95e2e0
Partially implements: blueprint ibm-volume-driver-reorg
Sync request_id, request_utils for cinder

This is in preparation for work being done on request ID tracing across
OpenStack services.

Per discussion in blueprint cross-service-request-id , the standard header
name for the request ID across OpenStack projects should be
x-openstack-request-id. The request_id middleware was created for just this
purpose, as oslo change Ic7967cd62e7b743343d70f751b9238339171e013 . Using the
same middleware allows for consistency across projects.

There is an additional oslo module, request_utils, introduced as
change Id085c4444fee2bb68b80738bfe77ccb0ba1908ec to allow uniform logging of
request IDs. Bring that in as well so we have it when necessary.

Implements: blueprint add-standard-req-id-header
Change-Id: If080df2a323347924c93a912538dab5ffeffe982
Ensures NetApp iSCSI driver correctly compares int values for size

The NetApp iSCSI driver needs to verify that the new size requested
during an extend operation does not exceed the max_resize of the
lun.  However, the driver was doing a >= compare against str values
of the sizes rather than the int values.  This caused the incorrect
code path to be used in certain situations.

Change-Id: I8bc66c71db6b469c7adf00ce8b5091513fccb740
Closes-Bug: 1281279
Remove unused function

Romove unused function stub_out_rate_limiting in
cinder/tests/api/fakes.py

Change-Id: Ib6fea599eacb140108ca4293cdd089b010a8b979
Closes-Bug: #1282098
Merge "Implement retype in HP LeftHand driver"
Merge "Sync request_id, request_utils for cinder"
HP LeftHand Backend assisted volume migrate

This patch implements volume migrate using native LeftHand APIs.

Limitations:
1. Same LeftHand backend
2. Volume cannot be attached
3. Volumes with snapshots cannot be migrated
4. Source and Destination clusters must be in the same management group
5. Volume re-type not supported

Change-Id: I503d5a10ee59db14130c676a5c3a07abf9a2b7af
Implements: blueprint native-lefthand-volume-migrate
Merge "GPFS:  Implement volume backup and restore"
Merge "IBM XIV and DS8000 Driver reorganizing (IBM dir)"
Merge "HP LeftHand Backend assisted volume migrate"
Merge "Remove unused function"