Update gpfs driver volume creation process

Modify gpfs driver to set file permissions in
a more consistent way.

Modify image_utils.resize_image to allow caller
to request it be run as root.

SecurityImpact
Change-Id: Ic01d91c0d660c74095e8d2b212279b39b9b9dc05
Partial-Bug: #1260679
Use six.moves cStringIO instead of cStringIO

to keep Python 3.x compatibility, use six.moves.cStringIO to
replace StringIO

Change-Id: Id89c6156d9bba0007e8b16cd2cc28413a7cc5fd3
Closes-Bug: #1280964
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
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
Remove unused function

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

Change-Id: Ib6fea599eacb140108ca4293cdd089b010a8b979
Closes-Bug: #1282098
Update 3PAR drivers to pass cert test

This patch updates both the HP 3PAR Fibre Channel
and HP 3PAR iSCSI block storage drivers so that they
can pass the driver certification tests.  We also updated
the unit tests to use mock instead of mox.

These versions of the drivers require the new 3.0.0 hp3parclient,
which can be downloaded from the pypi repository:
https://pypi.python.org/pypi/hp3parclient
The new hp3parclient requires the 3.1.3 firmware on the HP 3PAR.

The driver certification results:
Related-Bug: #1278575
Related-Bug: #1278577

Closes-Bug: #1279137

Change-Id: I72e0a76c865e54c58e41cc4409555d9042e30267
DocImpact: Document new driver requirements.
Add support for qos_specs feature to 3PAR drivers

This patch includes the ability to set the qos-specs for the
existing 3PAR qos settings (maxIOP and maxBWS) in addition to
the new settingis listed below. We would prefer that the
new qos-specs associated to a volume type be used, but this
patch also supports setting these values the old way in extra-specs
for backwards compatibility.

This patch also adds two additional personas to the list of
valid personas that are now support by the 3PAR backends.

DocImpact: Implements new qos settings
minIOPS - The minimum IOPs per second
minBWS - The minimum bandwidth per second
latency - The QOS I/O target latency
priority - The QOS scheduling priority (high, normal, low)
The priority defaults to normal

Two new personas added include HPUX and WindowsServer

Change-Id: I7f94a493919dc2d34daac91d684369d1f51c974c
Implements: blueprint add-qosspec-support-to-3par-drivers
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"
Ensure return for db api functions

Functions in db/api.py should return whatever the implementation of
those functions return. This is important for qos_specs_update which
returns something for the sqlalchemy implementation, but for others as
well for future implementations.

Added 'return' for functions that were missing it.

Change-Id: I384b1cf915b2d2238fd75d23b17558cae2cf9f50
Closes-Bug: #1272365
Add HP MSA Fiber Channel driver

This commit implements a driver for the HP MSA arrays. Only Fiber
Channel is supported for now.

Implements: blueprint add-msa-2040-driver
DocImpact
Change-Id: I75232cafadf7f6d15c5959d6c054f2e0f4d14e2c
Merge "Remove unused function"
Merge "Update gpfs driver volume creation process"
Merge "Ensure return for db api functions"
Merge "Update 3PAR drivers to pass cert test"
Merge "Add support for qos_specs feature to 3PAR drivers"
Merge "Use six.moves cStringIO instead of cStringIO"
Merge "Add HP MSA Fiber Channel driver"