Bump oslo.rootwrap to 1.3.0.0a1 for Cinder

Cinder already requires oslo.rootwrap 1.3.0 filters so we need to
bump requirements accordingly.

This will fix a variety of rootwrap warnings that can occur when using
the new cgroups features.

Change-Id: Ia72444d054a35c3dbb34c24dbefe8f05cdebbd33
Closes-bug: #1340877
Implement import/export for SolidFire Driver

This adds the import/export (or manage) functioniality
to the SolidFire driver.

Partially Implements: blueprint add-export-import-volumes

Change-Id: I4e7d5fc7c66d8037f01efc47a4cf5e93d9dba662
Avoid OSError in get_blkdev_major_minor with network filesystems

To avoid OSError (File not found) thrown for volumes on network filesystems
during volume copy with CONF.volume_copy_bps_limit, this patch adds a check
of whether the specified file is on the local block devices to
get_blkdev_major_minor().

It also adds a testcase for get_blkdev_major_minor with a file on nfs and
fixes it with a regular file.

Change-Id: I0b725bba07ad632bfa0c922bfce1652efe59b033
Closes-Bug: 1348230
Further cleanup of reservations index

It was discovered that the duplicate index checking does not work
on db2, so this fixes it.

Change-Id: I1a80b9c1fb6cfe916a2110de3151a09fa3618e75
Partial-bug: 1348720
Introduce iSCSI driver for Pure Storage FlashArray

This patch introduces an iSCSI driver for Pure Storage FlashArray to Cinder.
It impliments all required features.

Certification test results:
    https://bugs.launchpad.net/cinder/+bug/1347109

Change-Id: I25f465b4abfc19d9b2717ec095c65201e76beab9
Impliements: blueprint pure-iscsi-volume-driver
fixing the iSER transport protocol when using LVMISERDriver

ISER capabilities were broken in icehouse when trying to remove
duplication between ISCSIDriver and ISERDriver.
this fix does minimal changes in the code in order to fix
the capability.
the fix is basically re-adding the ISERTgtAdm and re-adding
the support in LVMISERDriver: change target_lun based on
iseradm.

Closes-Bug: #1336648
Change-Id: Ic3c9da9577d09d9199218ea82bda56599527223c
Add return of updated object on update from DB

There are a number of update methods in db/sqla/api
that update objects but no longer return the updated
reference for said object.

This patch adds the missing returns which are already
expected in the calling cidner/db/api wrapper. At some
point a close look at usage in callers
(ie cinder/volume/manager) should be done to make sure
we're being efficient here and not doing another get after
every update.

Change-Id: I0464d1879571a0044a416d652a186b1462c57fa2
Closes-Bug: #1349912
Update ref used for notifications

When we update a snapshot status in the db, we need to
use the newly updated snapshot-ref object in the following
notification method call.  Otherwise we're sending a
notifciation message with the old/outdated status
information.

NOTE: This also fixes the unit test that was written to
pass with the bug that existed in the notification.

Closes-Bug: #1349805

Change-Id: I32b86d7edd836310c6da7adffa46e915361668f0
Storwize/SVC can not get the right host

When only config FC host, Storwize/SVC driver can not get the host
by remote WWPNs except the first one.

Filter 'iscsi_name' and 'WWPN' from host information, if not configure
iSCSI port, only return the first WWPN.

Change-Id: I27852e49f5dfb3a94eed08bea0e5d81a9d7aef9c
Closes-Bug: #1343142
EMC VNX Direct Driver Update for Juno

VNX Direct Driver has been contributed to Icehouse release.
This patch refactors driver and adds the following new features

* Array-based Backend Support
* FC Basic Support
* Target Port Selection for MPIO
* Initiator Auto Registration
* Storage Group Auto Deletion
* Multiple Authentication Type Support
* Storage-Assisted Volume Migration
* SP Toggle for HA
* Security File Support
* Advance LUN Features
    # Compression Support
    # Deduplication Support
    # FAST VP Support
    # FAST Cache Support
* Storage-assisted Retype
* External Volume Management
* Read-only Volume
* FC Auto Zoning

Certificate Test Results
    https://bugs.launchpad.net/cinder/+bug/1336640

CCLA SCHEDULE B SUBMISSION

Change-Id: Ib7edaefa5eceb8e8c01ec0ce0dcdada7eaa9dd08
Implements: blueprint emc-vnx-direct-driver-juno-update
Fixes migrate_volume_completion

The following issues are addressed:

The source volume is never deleted when a migration is done because
status_update was assumed to always be a dict.

Unattached volumes are set to in-use when retyped.

In-use migrated volumes are left in status attaching.

Change-Id: Ib5034679a5f469ba53e6280a47e8c94d633cf911
Partial-Bug: 1316079
Move SSHPool into ssh_utils.py

utils.py is loaded by almost everything, but SSH
code and imports (paramiko) are only needed by certain
drivers.

Split this into a separate file to reduce overhead (and
things that can break) for commands like cinder-manage.

Partial-Bug: #1348787

Change-Id: I46896f2bd1fd0de2aedde8e87e255398e5bc3171
Move generate_password into volume utils

This is only used in places where volume/utils is
relevant, and moving it there reduces the amount of
code that has to load the python Crypto library.

Closes-Bug: #1348787

Change-Id: Id74fdd2d6f12f0196055deb1b0dd610677caff0f
Change 3PAR delete message when volume is busy

This patch traps for when a volume is busy at
delete time.   It then logs a more useful message
and raises a VolumeIsBusy exception.

Change-Id: I689c1a5ff5e2d4c748a98615f5610a029a027e35
Closes-Bug: 1349636
VMware:Support for attaching disk to backing

This change adds support for attaching a virtual disk to an existing
backing VM. Currently volume creation from preallocated/sparse image doesn't
honour the disk type in the volume extra spec and adapter type in the image
meta-data. The workflow to address these issues requires the above mentioned
method. This change also sets the disk size of backing to at least 1MB which
is the minimum required by VIM APIs.

Closes-Bug: #1340315
Partial-Bug: #1284284
Partial-Bug: #1287185
Partial-Bug: #1287176

Change-Id: Icdb1f26d5c8eaa42408a14c57c7394d96dda078f
VMware:Disk type conversion during clone backing

This patch adds support for converting virtual disk provisioning
type during clone backing operation. Currently volume creation from
preallocated/sparse image doesn't honour the disk type property in
the volume extra spec. The workflow to address this issue requires
disk provisioning type conversion during clone.

Partial-Bug: #1287176
Partial-Bug: #1287185

Change-Id: Ie493768445b838d3e9447edb76d9845e972bc7c3
Add note that some checks are disabled on purpose

Change-Id: I9a2daf57a8bb73e292d99f5177c310d75061cc13
Enable checks for E711, E712 and E713

* E711 comparison to None should be 'if cond is None:'
* E712 comparison to True should be 'if cond is True:' or 'if cond:'
* E713 test for membership should be 'not in'

Change-Id: I1481209a85fa6db0343d0111e2b19d9fab4538a7
VMware: Volume from non-streamOptimized image

Volume creation from non-streamOptimized images (preallocated/thin/sparse)
has following problems:

1) Sparse vmdk image is not converted to appropriate virtual disk type
   suitable for attaching to a nova instance.
2) The adapter type in image meta-data is ignored while creating volumes.
3) The vmware:vmdk_type extra_spec property is ignored.
4) Virtual disk extent operation is called with a wrong parameter which
   might result in unwanted disk provisioning type conversion.

This patch fixes the first 3 problems using the following workflow:

a) Create a disk-less backing.
b) Create a virtual disk (single flat extent) from the non-streamOptimized
   image
c) Attach the virtual disk to the backing
d) Clone the backing (if needed) to perform disk provisioning type conversion

Closes-Bug: #1287176
Closes-Bug: #1287185
Closes-Bug: #1284284
Change-Id: Ib7e9fae81d69d2fe490a4b603337f3d5cee1138c
Fix solidfire accept_transfer

Previous fix has a mistake which makes the situation worse.  This change
fix volume['project_id'] and volume['user_id'] and adds unit test for
accept_transfer.

Closes-bug: # 1349475

Change-Id: I7b2bcefa4c8d173689cc63ee5aa9e00397c7f8ca