NetApp bug fix for multibackend scenario.

The multibackend scenario using filter scheduler
did not work with NetApp drivers because of use
of FLAGS. Changed to use configuration to support
the multibackend scenario.

bug 1132637

Change-Id: I8ac5bd6d4269f703c3b3b0aa062c92f4412c25af
NetApp: Fix for snapshot not deleted in error state.

This fix enables cleaning of volumes/snapshots
in error state by allowing them to delete.
It will allow the delete call to be
successful if snapshot/volume are in
error state. This also fixes the bug
raised recently with  number 1145409 which seems
to be duplicate of 1143661.

bug 1143661
bug 1145409

Change-Id: I38bc13e676404f96db54b12edfa56680489e893e
NetApp: Clean up lock file left behind by unit tests

The synchronization decorator added to the NetAppISCSIDriver class
creates a lock file named cinder/openstack/cinder-netapp_dfm
during the unit tests. This commit cleans it up.

Fixes bug 1135619

Change-Id: Iec41a0f23d4a1c6668bdcb451c2c02efd3f97500
Only use iscsi_helper config option if using LVMISCSIDriver

_get_iscsi_properties checks for iscsi_helper == 'tgtadm',
but this is run for drivers other than LVMISCSIDriver.

Only change target_lun based on iscsi_helper if using
LVMISCSIDriver/ThinLVMVolumeDriver.

Change-Id: I8c63f8d4097682c875bbfdfade665fdacbcf8e22
Convert from using FLAGS directly in SF driver.

In order for the Filter scheduler to be used to it's
full advantage Cinder drivers need to move away from
using FLAGS directly and switch to appending their
specific options to self.configuration.

This patch converts the driver and updates tests.

Fixes bug: 1131553

Change-Id: Id1a7c583894ac368bdcc61facc6f72300db320c7
Merge "Convert from using FLAGS directly in SF driver."
Improved fail_reason for cinder-backup swift connection errors

Modified swift backup service to catch socket errors when talking to
swift and raise a specific SwiftConnectionFailed exception in these
cases. This allows us to provide a more readable error message
detailing the problem connecting to swift to the end user when they
view the backup. Also reduced the default number of swift retries
so devstack environments fail faster - production environments can
tune these in cinder.conf.

Fixes bug: 1132791

Change-Id: Ibca744ea5adcbd31d068ac3d858bde6a4a0c9844
Elevate context for delete volume with no host.

So in the case of a volume that is placed in error state
on create and never actually deployed, the cinder.volume.api delete
call does a short cut call to db.destroy_volume which is fine because
all we have is a DB entry (scheduler never deployed the volume).

Unfortunately, this requires admin context, so just add an elevate
context to the db.destroy_volume call.

Fixes bug: 1084273

Change-Id: I0ef8bf4356047c385bef703b8dce7d5edf537bf6
Merge "Improved fail_reason for cinder-backup swift connection errors"
Merge "Elevate context for delete volume with no host."
Merge "Only use iscsi_helper config option if using LVMISCSIDriver"
Add some useful log to filter scheduler.

When the filter scheduler is unable to find a suitable host to
deploy a volume on it simply logged a warning "not hosts found".
This isn't very helpful, so this patch adds some logging info as
far as why no valid host was available.  This just focuses on the
capacity filtering as that's where I've commonly seen this issue
particularly in tempest runs.

Also noticed that the get status was checking for "if Not capacity",
but this is wrong because free capacity==0 would be interpretted as
failing to get capacity.  Change this to "if is None".

Fixes bug: 1136147

Change-Id: Ia1ce508826ee69ae68a250ea68616909c59974e5
Merge "Add some useful log to filter scheduler."
swift backup service checks version during restore

Modified swift backup service to check metadata version during restore
and raise an error if the backup version isn't a version that the
service knows how to handle. The versions which can be handled are
described in a dictionary mapping versions to methods which can handle
them. This will facilitate graceful handling of newer backup formats by
the swift backup service when we introduce changes.

Fixes bug: 1136174

Change-Id: Id7d05848fd448ce21f641e5cd6945477702cbe38
sync oslo changes for setup / version

this fixes the fact that run_tests.sh wouldn't work in a venv with
a clean cinder checkout. Yay for fixing being able to run tests.

Fixes bug #1125416

Change-Id: Ic341c3b878cc566f8d2f6a3b2c9d1fa62fc52261
Merge branch 'master' of https://github.com/openstack/cinder
Fix Storwize/SVC storage_protocol reporting.

The Storwize/SVC driver supports both FC and iSCSI protocols
simultaneously. Therefore, 'storage_protocol' should be defined as a
list of enabled protocols, not simply 'iSCSI'. The extra_specs
key-value would then be, for example, storage_protocol='<in> iSCSI'
or storage_protocol='<in> FC'.

Fixes bug: 1142196

Change-Id: Ib99a6d4e4e61d07ddb4f173c13fe7e9f5482fa2b
Fixes issues found in /os-hosts API

There are some issues found in Cinder /os-hosts API:

1) Bracket in the wrong spot in Cinder HostController show method
There is an erroneous bracket on the following line in the show method
that should be at the end of the response:
   'total_volume_gb': str(sum)},

2) XML Attributes Missing for List/Index method in Cinder HostController
The HostIndexTemplate class specifies mapping for "host" and "topic"
attributes rather than any of the ones that are actually returned from
the index method.

3) XML Serialization is commented for Cinder HostController show method

Fixes Bug: 1139984

Change-Id: I881e80b5e109ed6ddcc4f7c4bf5749ab6dca563d
Fixed copy image to volume and clone volume.

This patch fixed the following issues in EMC driver found during G3 testing:
1. VNX array has two storage processors and it is doing load balancing when
attaching a LUN to a host. The storage processor used to attach a LUN to a
host is different from the one discovered by the driver sometimes, causing
Copy Image to Volume to fail.
2. The clone relationship is removed after a volume is successfully
cloned. However, this happens too soon sometimes before the cloned volume
is fully synced with the source volume.  The fix is to wait until it is
fully synced.

Change-Id: I5b8fab263723c47faf30b950a611c5bde7f29092
Fixes: bug #1135221
Fix 3PAR drivers to work in multi-backend mode.

The 3PAR drivers weren't updated when the multi backend
patch landed on G3 day.  This patch implements the new config
mechanism to accessing FLAGS, so that it works when an admin
has multiple drivers active.

This fixes
bug 1131346

Change-Id: Icc5475d15bfd0fa14aae12ab8a8370a894e46857