Remove outdated docstring for XenApi driver's options

XenAPI's driver options's help strings can explain how to
use these options, so remove these duplicated and outdated
docstring.

Change-Id: I3de257e75ba13352e9460070f5bb2a6d7cf36a4e
Clean up iSCSI multipath devices in Post Live Migration

When a volume is attached to a VM in the source compute node through
multipath, the related files in /dev/disk/by-path/ are like this

stack@ubuntu-server12:~/devstack$ ls /dev/disk/by-path/*24
/dev/disk/by-path/ip-192.168.3.50:3260-iscsi-iqn.1992-04.com.emc:cx.
fnm00124500890.a5-lun-24
/dev/disk/by-path/ip-192.168.4.51:3260-iscsi-iqn.1992-04.com.emc:cx.
fnm00124500890.b4-lun-24

The information on its corresponding multipath device is like this
stack@ubuntu-server12:~/devstack$ sudo multipath -l 3600601602ba034
00921130967724e411
3600601602ba03400921130967724e411 dm-3 DGC,VRAID
size=1.0G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
|-+- policy='round-robin 0' prio=-1 status=active
| `- 19:0:0:24 sdl 8:176 active undef running
`-+- policy='round-robin 0' prio=-1 status=enabled
  `- 18:0:0:24 sdj 8:144 active undef running

But when the VM is migrated to the destination, the related information is
like the following example since we CANNOT guarantee that all nodes are able
to access the same iSCSI portals and the same target LUN number. And the
information is used to overwrite connection_info in the DB before the post
live migration logic is executed.

stack@ubuntu-server13:~/devstack$ ls /dev/disk/by-path/*24
/dev/disk/by-path/ip-192.168.3.51:3260-iscsi-iqn.1992-04.com.emc:cx.
fnm00124500890.b5-lun-100
/dev/disk/by-path/ip-192.168.4.51:3260-iscsi-iqn.1992-04.com.emc:cx.
fnm00124500890.b4-lun-100

stack@ubuntu-server13:~/devstack$ sudo multipath -l 3600601602ba034
00921130967724e411
3600601602ba03400921130967724e411 dm-3 DGC,VRAID
size=1.0G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
|-+- policy='round-robin 0' prio=-1 status=active
| `- 19:0:0:100 sdf 8:176 active undef running
`-+- policy='round-robin 0' prio=-1 status=enabled
  `- 18:0:0:100 sdg 8:144 active undef running

As a result, if post live migration in source side uses <IP>, <IQN> and
<TARGET LUN Number> to find the devices to clean up, it may use 192.168.3.51,
iqn.1992-04.com.emc:cx.fnm00124500890.a5 and 100.
However, the correct one should be 192.168.3.50, iqn.1992-04.com.emc:cx.
fnm00124500890.a5 and 24.

Similar philosophy in (https://bugs.launchpad.net/nova/+bug/1327497) can be
used to fix it: Leverage the unchanged multipath_id to find correct devices
to delete.

Change-Id: I875293c3ade9423caa2b8afe9eca25a74606d262
Closes-Bug: #1357368
update retryable errors & instance fault on retry

HTTP errors can be split into a few categories: client ephemeral, server
ephemeral, server permanent, and globally permanent. You could argue
there is even more permutations. However, for simplicity, these errors
can be viewed as ephemeral and permanent.

The Glance XenAPI plugin has been updated to raise a RetryableError for
ephemeral and unexpected (i.e. errors that are categorized as neither
permanent or ephemeral) errors.

Additionally, an instance fault will be logged every time an error
occurs. This will serve as transaction history where every attempt is a
transaction on the state. If an ephemeral error occurs, there is a
retry, then a permanent error, the history of each error will be in the
instance_faults.

Deployers should configure the num_retries relative to the number of
api_servers. Right now, servers are put in random order and then cycled.
Trying the same server multiple times could cause unnecessary load and
delays. However, trying multiple servers, is ideal when a single server
is behaving badly or cannot reach another server it needs to communicate
with to fulfill a request.

Closes-Bug: 1380776

Change-Id: I267a5b524c3ff8a28edf1a2285b77bb09049773c
Read flavor even if it is already deleted

Currently libvirt code has some references to Flavor
as objects.Flavor.get_by_id. because the flavor might be
deleted before it's referenced, so most code need to
read deleted flavor in libvirt driver. This patch
makes the _prepare_args_for_get_config which is used for
sriov feature consistent to other Flavor get functions.

Related-Bug: #1352668

Change-Id: Ia4a03467720f1fed18cabe1b78bdd4488f316e34
Split out num instances filter unit tests

Break out the unit tests for num instances filters from
test_host_filters.py into its own file. In the process, we mock out the
database calls for getting aggregate information instead of creating
database records.

Change-Id: I71516cee8b1660e8e8f76eae4ae831b34232289e
Split out IO Ops filter unit tests

Break out the unit tests for IO Ops filters from test_host_filters.py
into its own file. In the process, we mock out the database calls for
getting aggregate information instead of creating database records.

Change-Id: I8395ba7c09ca5c85ecd94d2cc670f3cd0880a373
Split out core filter unit tests

Break out the unit tests for core filters from test_host_filters.py
into its own file. In the process, we mock out the database calls for
getting aggregate information instead of creating database records.

Change-Id: I9c602b9832632ad84b4b0941c5254a283d278b69
Split out aggregate disk filter unit tests

The aggregate disk filter unit tests remained in test_host_filters.py,
and this patch moves them to the test_disk_filters.py file. This was the
last occurrence of aggregate database calls from test_host_filters.py.

Change-Id: Ic47c41474dce8bf3936910be5feee081445193de
Ignore DiskNotFound error on detaching volumes

When volume_api.terminate_connection RPC calls fail due to timeout,
detaching volume will be impossible because it is already detached but
still have the volume mapping entry. To make it detachable completely
by retrying volume detach, this patch make it ignore DiskNotFound error
while detaching volumes and go through removing the mapping.

Change-Id: I95077179160a2eb35436db2a5f7a5fbca64ec323
Closes-Bug: #1367964
Merge "Remove outdated docstring for XenApi driver's options"
Merge "Split out num instances filter unit tests"
Change error code of floating_ip_dns api(v2.1)

Changes :
webob.exc.HTTPUnprocessableEntity(422) -> webob.exc.HTTPBadRequest(400)

Partially implements blueprint v2-on-v3-api
Change-Id: Ic6063c2c4525c7ff8e07495c75c134ff7e78756b
Merge "Ignore DiskNotFound error on detaching volumes"
Merge "Read flavor even if it is already deleted"
Merge "Change error code of floating_ip_dns api(v2.1)"
Merge "Split out IO Ops filter unit tests"
Merge "Split out core filter unit tests"
Merge "Split out aggregate disk filter unit tests"
Merge "Clean up iSCSI multipath devices in Post Live Migration"
Merge "update retryable errors & instance fault on retry"