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
fix atom link in XML Version API

This patch fixes tag names where the tag name has ':'
for links templates.
Some examples are
'{http://www.w3.org/2005/Atom}link'
should be
['{http://www.w3.org/2005/Atom}link']

and

'test1:test2'
should be
['test1', 'test2']

Closes-Bug: #1311243
Change-Id: I6e7c068e41eb6b069c24ef9d6c46b726ea722074
Have task/flow logging go to a separate log file

To be able to point the taskflow logging at a task log
we need to be able to separate the logs coming from cinder
from the logs coming from taskflow (as well as the listener
that acts as the intermediary between both projects).

To start the process of having a detailed task log
location, add-in a new log setting that can be used for just
this purpose.

This is not the most ideal way of doing this, since it just
provides a sample logging configuration adjustment, but there
does not appear to be a better way (due to how
cinder/openstack/common/logging.py can't be modified or adjusted
with a better option).

Part of blueprint task-logging

Change-Id: I5e3946c71110ee1b923c2258f3a7eb83c358426b
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