Added unit test cases for _is_share_eligible in NFS driver.

The generic NFS driver (under cinder/volume/drivers/nfs.py) has
a method called _is_share_eligible, which checks if a given NFS
share meet user specified conditions, such as:
  1. The ratio of actual space (used_space / total_space) is
     less than 'nfs_used_ratio'.
  2. There is enough space is available for the new volume.
This patch adds the corresponding unit test case for it.

Change-Id: I4489cbbca0a1a75a1144a87628843baf0a92f8a8
Closes-Bug: #1298414
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
Add set-bootable command

Bootable Status is set to "True" automatically when user
create a volume from a image. But user have to set bootable
status manually when creating a bootable volume manually.

blueprint add-bootable-option

this commit is related to https://review.openstack.org/#/c/83691/

Change-Id: Ib6cdca15950fe86b4fb2a43cfc7338e28260e453
Specify lld in tgt config backends

Otherwise when running tgt-admin --delete, it might forget
to invoke tgtadmn with "--lld iscsi" in order to delete the low-level
iscsi exports, which can cause crashes or hangs later on.

Closes-Bug: #1311640
Change-Id: I436c67c30565089236e987d84ac2609eedd2d2c7
Add rally job

Add rally scenario to be run by OpenStack CI system

Change-Id: Ie305ab51b75cd24e21868b965b9345a4444b2d20
Fix broken version responses

The version responses link to non-existing PDF and WADL files.
Remove the WADL link and replace the PDF link with a HTML link to
docs.openstack.org.

Change-Id: Id514caee32df430b616609144f52d1a58c93d9cd
Closes-Bug: #1313118
Closes-Bug: #1313116
Implement validate_connector in FibreChannelDriver

The base FibreChannelDriver didn't implement the
validate_connector() method. It fell back to the
parent class which simply does a pass.  Now the
FCDriver checks to ensure that the connector has
wwnns and wwpns and raises an exception if either
one is empty or not set.

Closes-Bug: #1294812

Change-Id: I1e63c4718d24bdb3ead78de871971cdc498f6b01
Ensure that lun_id is an int

The map_vol_to_host function was treating the lun number
as a string rather than an int.  This was causing attempts
to mount storwize_svc volumes to Hyper-V nodes to fail as they
were checking an integer type against a unicode type which
would fail.

This change casts result_lun to an integer after the value has
gone through the ssh injection attack check.  This way Hyper-V
is able to verify if the found LUN is the target LUN, enabling
mount of storwize_svc volumes to Hyper-V.

Change-Id: I96d179f2a58e5948c8ba6c9ae618daad7b8d4c86
Closes-bug: 1269915
Remove explicit dependency on amqplib

amqp (or amqplib) is only accessed via kombu, and kombu
already specifies the right dependency (either amqp if new
enough or amqplib for old versions of kombu).

Change-Id: I4efa419db1befdfcbe639a8557e21eb97ca3a26e
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
Fix wrong exception reference

iscsi.py should catch cinder.exception.NotFound instead of
cinder.brick.exception.NotFound.

Change-Id: I77134683712e9706619a7f7fe82caed42ede5887
Closes-Bug: #1300136
Add mailmap entry

Add a mailmap entry to map to my gmail account.

Change-Id: If8cdff519415bd2b7138638746988e6f177c855c
Add missing methods to FakeISCSIDriver

Just a quick/simple add of missing methods to make the FakeISCSI
driver usable.

Change-Id: I7e822dd094d925d13e7e5b2f6605d11fd138dbd1
Merge "Implement validate_connector in FibreChannelDriver"
Merge "Add missing methods to FakeISCSIDriver"
eliminate the need for hp3parclient in tests

In order to eliminate the need to have the hp3parclient in the
global-requirements project, we need to remove the hp3parclient
from being imported in all 3par driver unit tests in cinder.

Closes-Bug: #1315195
Change-Id: Ife5c70871e742be5970be8f0284e12554f93cab4
Merge "Fix wrong exception reference"
Fix retyping volume that has volume type None

Modified volume_types_diff to work when one volume type is None.

Fixed _fix_encryption_specs so that the new dictionary is returned.

Change-Id: Iaba3032317f4d0649c917fb92403c4e9146fe3e9
Closes-Bug: #1311058
Fix for solidfire driver to use reserved_percentage

Fixed _update_cluster_status so reserved_percentage uses value
from cinder.conf.

Change-Id: I74af8dd86645b4c0800391bd126bf2bce94cf205
Merge "Add set-bootable command"