XenAPI: Calculate disk_available_least

The disk_available_least item is now needed for the tempest test.
Calculate based on the virtual-allocation from the SR.

Change-Id: I1a08f229de7cd77d4798472c82304247fae290e5
Closes-bug: 1300242
Fix the explanations of HTTPNotFound for keypair's API

Gets the "explanation" from HTTPNotFound exception and returns
correct message. the commit Ia784e09cda986a421e83c2820dfd0a2267867cdd
has fixed this kind of bug already, but this bug is remained.

Closes-Bug: #1307338
Change-Id: I6811eecba86938e4253f437b7677cb7e4468fd67
Add helper method to determine disk size from instance properties

Add a _disk_size_from_instance method which by using the disk name
determine the size of the disk refered in the instance properties.
Update the method finish_migration to use this new helper.

Change-Id: I45bd3804fdabff35189421d01a0503c886c24a4c
Related-Bug: #1298975
Xen: Retry plugin call after connection reset

When using the call_plugin_serialized_with_retry session method it will
retry if the plugin raises a RetryableError, but not if it loses the
connection to xenapi.  This adds a retry for the 'Connection reset by
peer' error that is occasionally seen.

Change-Id: Ibb36a0170e0e807ad7a4198df7b6e574c4279bed
Closes-Bug: #1200591
XenAPI: Use local rsync rather than remote if possible

Using ssh depends on the host being set up to be able to SSH into
itself which is not a common scenario.  While this is unavoidable for
the current implementation of resize across multiple hosts, if there
is a single host (i.e. a test scenario) or the resize is restricted
to the same host then we can succeed without SSH access

Dependency on Ia310e31d31aaf5c979e41c64af8223202a18e03a is because the
tests will always fail without Ia310 therefore this fix cannot be tested
without taking Ia310 as well.

Closes-bug: 1308064

Change-Id: I15802a1d97d380b1c5b74fc9f92ece2494fe789a
Merge "Xen: Retry plugin call after connection reset"
Merge "Add helper method to determine disk size from instance properties"
Merge "XenAPI: Calculate disk_available_least"
Merge "Fix the explanations of HTTPNotFound for keypair's API"
Merge "XenAPI: Use local rsync rather than remote if possible"