Add cinder support for IBM FlashSystem.

This driver implements cinder FC volume driver.
It communicates with IBM FlashSystem using SSH management interface.
It supports all required driver features.

Change-Id: Idc1c5961f134652e5cce51c84d7280f9d3864578
Implements: blueprint ibm-flashsystem-driver
Volume type access extension

This extension adds the ability to manage volume type access:
* Volume types are public by default
* Private volume types can be created by setting
  the is_public boolean field to False at creation time.
* Access to a private volume type can be controlled
  by adding or removing a project from it.
* Private volume types without projects are only visible
  by users with the admin role/context.

Implementation details and unit tests were mostly adapted
from Nova flavor access extension.

DocImpact: New volume type access extension
Implements: blueprint private-volume-types
Change-Id: I8faf1d8097bf8412d4e169ec3503821351795561
Fix 3PAR drivers attempt to locate existing host

This patch fixes the current 3PAR drivers around attempting to locate
3PAR host that might already have volumes attached. The FC driver is
using the correct REST based queryHost but is not specifying the
parameters wwns=wwns when calling it. This was accidentally merged
during the removal on the local file locks.

The iSCSI driver was actually calling a SSH based findHost command
instead of the REST based queryHost based on iqns. The SSH based
command was failing with a session key error after a long idle time
between attaches.
Closes-Bug: 1398206

Change-Id: I5e0b1e5382c65176a74441bd4fe40d066317de48
Fix rpc initialization of cinder-manager volume

VolumeCommands.rpc_client is a property, so when the oslo.config argparser
introspect the class VolumeCommands at module loading time, it launch the
method. But the method depends on a initialized oslo.config.cfg.CONF object,
but this one is not yet initialized.

So don't use python property, to initialize the rpc_client correctly.

No test because of bug: #1398401

Change-Id: I2c2f0be6e7a9d0866f063d98e1f8213f62fb9f92
Closes-bug: #1398319
Add ability to zfssa driver to create multiple initiator groups

Currently the zfssa driver only support one initiator group. This
is causing broken scsi devices when detaching volumes from instances.
This fix adds support for configuring multiple initiator groups.

Closes-Bug: #1378390
DocImpact

Change-Id: Ib3262ebd40e9c2ff2f36d0a7b1b5b3506ed3acc1
Revert "Fix Brocade FC SAN lookup MITM vulnerability"

This reverts commit ab4f57212683baec45d5b682bdd3952ff58249ed.

The change is being reverted as it broke the Brocade FC SAN lookup
functionality.  The change uses configuration options from
ssh_utils that are not initialized when the Brocade driver is
run causing an exception to be thrown complaining that
CONF.ssh_hosts_key_file is used before it is initialized.

The right solution is to change the Brocade driver to use ssh_utils to
make SSH connections.

Conflicts:

	cinder/zonemanager/drivers/brocade/brcd_fc_san_lookup_service.py

Change-Id: I7814c3da9c0e6fcf3143969e74304a48cafcb3d1
Closes-bug: 1398488
NetApp 7mode NFS driver doesn't honor netapp_vfiler option

This patch fixes the NetApp 7mode NFS driver to register and use
the netapp_vfiler option if it is configured in cinder.conf.

DocImpact
Change-Id: I4db42d2521d7e6018f4f7ad0c4ab13441871675e
Closes-Bug: 1381716
Merge "Fix 3PAR drivers attempt to locate existing host"
Merge "NetApp 7mode NFS driver doesn't honor netapp_vfiler option"
Use object.property instead of object.dump()['property']

Less verbose and requires less work for the library.

Change-Id: Ied2196b548c91324fdfce39ec4f8801e59da4f6c
Merge "Volume type access extension"
VMware: Add missing storage profile requirement

If a storage profile is part of a volume type, it should be used as a
requirement for datastore selection-- only datastores which satisfy the
storage profile should be used for backing VM creation. Currently in
retype API, if storage profiles in old and new volume types are same,
it is not passed as a requirement. Hence, the backing VM corresponding
to the volume might end up in a datastore which doesn't satisfy the
storage profile. This patch fixes the problem.

Closes-Bug: #1398293
Change-Id: I49161e9fc5a8f2749ee6097fa5a136b78dfcf3ab
Merge "Use object.property instead of object.dump()['property']"
Bring cinder up-to-date with new oslo libraries

New versions of the oslo libraries have been released and
this has broken Cinder in the gate.  The first issue is
causing all unit tests to fail with the message:

"NoSuchOptError: no such option: fake_rabbit"

This was due to commit bcb3b23b8f6e7d01e38fdc031982558711bb7586
removing that option from oslo/messaging/_drivers/impl_rabbit.py .
We were trying to set that option in cinder/tests/conf_fixture.py .
I have removed that code.

Second, the update has made etc/cinder.conf.sample go out of date
again.  I am merging the changes to bring it back up to date.

This change also disables execution of check_uptodate.sh execution
from the gate.

Change-Id: Ie4e25a8cd36782007a8934cc4573632f5215c2b1
Remove lio_initiator_iqns

This is a holdover from the initial LIO implementation
which did not manage ACLs sufficiently.  This is
unneeded now and handled by:
67dd248 LIO iSCSI initiator ACL auto-config

DocImpact: remove lio_initiator_iqns cfg opt

Closes-Bug: #1390383

Change-Id: I3b7fe4765c1c568a6a7713f86cadece52b130911
Merge "Bring cinder up-to-date with new oslo libraries"
Improve unit tests for cinder/volume/utils.py

This commit increases the unit test coverage of cinder/volume/utils.py.
It also replaces tests using mox or stubout.

Change-Id: Idb06b37c803d94bb33b0df9d19ced8b330def2ad
Merge "Revert "Fix Brocade FC SAN lookup MITM vulnerability""
Merge "Add cinder support for IBM FlashSystem."
Remove the check_uptodate conf checks

We recently removed the checkupdate tests for sample.conf
here Ie4e25a8cd36782007a8934cc4573632f5215c2b1

To stop gating on this as it's just a big fat
pain when external libs change.

Instead, we'll start generating this in an external
job and publishing somewhere.

Funny thing though, we actually have a direct call in
run_tests.sh as well.

This patch removes the second call in run_tests.sh

Change-Id: Iaef411e254186fbba80c21903d6f94538a808d93