vmware: Fix problems with VIM API retry logic

Currently the VIM APIs including session creation API are retried for
cases which are unrelated to connection or session overload problems.
This change fix the retry logic as follows:
* Add an exception to indicate connection problem and raise it
  appropriately from the VIM API client
* Modify the expected exceptions in the retry decorator to include
  only connection and session overload related exceptions

This change also fixes the base class of VimFaultException
(VolumeBackendAPIException -> VimException). This change is required
so that we can handle the exceptions thrown by the VIM API client in
a consistent manner. Currently if we need to handle VIM API related
exceptions, we have to catch both VimException and VimFaultException.
For example, the API for checking active session raises
VimFaultException in some cases and we are handling only VimException.
Due to this, when session expires, the session re-establishment and API
retry fails (intermittently) since the check for active session throws
VimFaultException in some cases which is not handled.

Change-Id: I72cfc7777c3ce693b8598633f822c12c2cee2235
Closes-Bug: #1294598
Closes-Bug: #1302514
NetApp NFS: Do not reference dst_img_local before assignment

This patch moves the assignment of the dst_img_local variable to before the
try/finally block that references it so that the finally block will have this
variable no matter where in the try block an error is raised.

Change-Id: Iab48b46559f18a3d6b044abe4bc3e615e7fee075
Closes-Bug: 1309047
Add exception handling for copy_volume_to_image()

The method require_driver_initialized occurs exception so that the
method volume_get will be not executed, and the variable 'volume'
will be not defined. In the "finally" code segment, the
volume['instance_uuid'] will get the UnboundLocalError, this patch
gets volume before require_driver_initialized to avoid the above
problem.

Change-Id: Ic8167383eb67c5016c9853da274455e0f202dc4d
Closes-Bug: #1322958
Add mailmap entry

Add a mailmap entry to map to my gmail account.

Change-Id: If8cdff519415bd2b7138638746988e6f177c855c
NetApp fix eseries concurrent vol map failure

This fixes the issue while mapping volume to host
when the requests are very close in time proximity.
The map operation has been synchronized.

Change-Id: I2e120d84d3b96faa4ab8d4324e70a089bcddeaa5
Closes-bug: #1312685
Allow host config to be overriden in backend

This allows you to specify host=XXX in your backend configuration
to override the host value that is specified in the DEFAULT section,
allowing for some backends to share a hostname while others can
have unique names.

Change-Id: Ie8894a7cebf350dc2d50567058a765482b9d97d7
Closes-bug: #1322366
Merge "Add mailmap entry"
Use error instead of warning to log mount exc

Gluster's driver uses warning to log mount exceptions. This patch
replaces that warning with an error message.

Change-Id: I54a10ec8abf460ca9ff7bb009b8d702cfad0fed0
Closes-Bug: #1317573
Ensure metadata is saved before updating volume status

This patch ensures the volume metadata is saved to
the snapshot metadata before updating the status
of the snapshot to be available.

Change-Id: Iada010520dc3c086fcd410a6c7fd152cf4a31561
Closes-Bug: #1310991
Updated from global requirements

Change-Id: I6baf865f537abb71258fdfebe89403f7076c2765
Merge "vmware: Fix problems with VIM API retry logic"
Only create volume with an active image

1. Currently cinder doesn't check whether the image is active
when create volume with an image id, we can even create volume
with a deleted/saving/queued image.

2. For deleted image, it only happened when using admin credentials.

When using non-admin credentials, it returned an error that image
is not found by using 'glance image-show' on a deleted image, which
is expected. Also when creating a volume from this deleted image,
it returned  a 404 error upfront. This again is the expected result.

When using admin credentials, we can view the details of deleted image
with 'glance image-show'. If create a volume out of an image ID (which
is now deleted), the operation succeeds, but the volume is left in
'error' state.

3. This accounts for a bug(he volume shouldn't be created) and should be fixed.

Change-Id: If4f59695fbf6636778d0d352aef28d90bb45ee91
Closes-Bug: #1302621
Fix ISER scan retry option

The 'num_iscsi_scan_tries' option was renamed to
'num_volume_device_scan_tries'.

Remove it from the test where the deprecated name is
referenced since it is not used there anyway.

Fix the ISER driver to set the new config field rather than the
old one.  Presumably this made the num_iser_scan_tries option
not work since only the new field is passed to the brick
connector.

Closes-Bug: #1323741

Change-Id: I13ac4cce10894b541054fbda719bbc5fd555e3c1
Merge "Updated from global requirements"
Handle volumes no longer existing in resume delete

init_host resumes deletes for volumes with a status of 'deleting'. It
does these sequentially, and sometimes a volume could be deleted under
it, causing a bad stacktrace. This will gracefully handle those
situations and move on. Added coverage for resume volume delete being
successful as well.

Change-Id: I5b30265609b65804f2da77d9daa84b640de7939c
Closes-Bug: #1322340
Merge "Fix ISER scan retry option"
Merge "Allow host config to be overriden in backend"
Merge "Only create volume with an active image"
Add support for z/VM driver.

Add 'FCP' into connection_info in initialize_connection
in order to support IBM z/VM hypervisors. This change only
because z/VM need FCP(fibre channel port) info while other
platform don't need it. It will not have side effect
to other platforms since they can safely ignore it.

Change-Id: Ib2d72969608a84a7a200b96da3eefb3ccc13a096
Closes-Bug: #1323993
Merge "Ensure metadata is saved before updating volume status"