Brick support for pNFS

This change implements a retry mechanism
during mounting nfs share. It tries mounting
using pnfs if no specific nfs version is specified
in the nfs options. In case of any failure during mounting
it falls back to regular nfs mount which will internally
try to mount with highest supported version. If nfs version
is specified in options then regular mount will be allowed.

Change-Id: I502b375548707ce7021cbacf1cd4f5532804aeb3
Implements: blueprint pnfs
Removes use of timeutils.set_time_override

The set_time_override function in timeutils was written as a
helper function to mock utcnow for unittests before 'mock' was
generally used. Now that we have mock and fixture, we no longer
need to use it.

Change-Id: I057d4bc3a8b1d4e96e6830cd3071dc96a05496dc
Partial-Bug: #1266962
Storwize/SVC: Change volume copy task to async

If Cinder crashes during a migration or retype (where data is moved and
the operation can take a long time), the storage ends up with multiple
copies of the same volume which requires storage admin intervention.

This patch maintain a list of pending operations which is backed up in
admin metadata, and a periodic task reviews the list and removes volume
copies whose copy operation completed. When Cinder comes up, check the
admin metadata and rebuild the list.

Change-Id: I6549712bb0083996faced89c2207a4c438ae953d
Closes-Bug: #1278035
Replace tearDown with addCleanup

Infra team has indicated that tearDown should not be used and should
be replaced with addCleanup in all places.

This patch replaces tearDown with addCleanup methods in cinder/tests/api.

Implements blueprint replace-teardown-with-addcleanup

Change-Id: I640c1985bf7fce6f2fbd4de8e56448b6c9af51ca
Fix test_delete_should_not_.. to assert something

This changes test_delete_should_not_delete_if_provider_location_not_provided
to assert the case it is testing.

Closes-bug: 1284263

Change-Id: I25160140e15721e0de4251ba2373a560d4b0ad46
3PAR: Create volume from snapshot with larger size

Refactored the migrate_volume code to be usable by both migrate volume
and create volume from snapshot with a larger size. The common functionality
is to clone a volume as a base volume. Migrate volume specifies a different
CPG, whereas create volume from snapshot uses the same CPG.

Change-Id: I4081807294d918fc0e9c2e17bae89b6df7ee1513
Closes-Bug: #1279478
Fix silly error in comment

Fixing since it threw me for a second or two...

Change-Id: I53ecbe8a7bf31bd5c88cb0d025ff3d46aa741ce9
3PAR: Fix extend volume GiB to MiB

Extend volume was sending GiB instead of MiB to the 3PAR
array. This patch is now sending the growth size in MiBs
instead of GiBs.

Change-Id: Ib4903315a32e090e760883cc80c50f3698fe015f
Closes-Bug: #1284368
Merge "Removes use of timeutils.set_time_override"
Merge "Replace tearDown with addCleanup"
Merge "Storwize/SVC: Change volume copy task to async"
Merge "Brick support for pNFS"
Merge "3PAR: Create volume from snapshot with larger size"
Merge "3PAR: Fix extend volume GiB to MiB"
Update FibreChannel Zone Manager config

This patch changes the way the config options are
layed out in the cinder.conf to follow the
standards for grouping settings together.

Instead of using dynamic config names to group
settings together by fabric name, we look for
fabric groups based upon the fc_fabric_names.
We also create a new fc-zone-manager group
for all of the global fczm settings.

Change-Id: I91c8a05adec2fb12f664ca0df6007465c1a460e0
Closes-Bug: #1284338
DocImpact
Merge "Fix silly error in comment"
Merge "Fix test_delete_should_not_.. to assert something"
Merge "Update FibreChannel Zone Manager config"