Use block_device_info at post_live_migration_at_destination

post_live_migration_at_destination make libvirt.xml to destination
host. when execute (live) block migration for vm made by bootable
volume, method post_live_migration_at_destination write a
libvirt.xml in destination host.
but it missed block disk information so moved libvirt.xml always
has a wrong disk information.
I add block_device_info in blockinfo.get_disk_info at
post_live_migration_at_destination.
This change will make libvirt.xml with valid block disk information.

Closes-Bug: 1271780
(cherry picked from commit 0486647e1c85947bc48cbdd279b3f49824a6e692)

Conflicts:
	nova/tests/virt/libvirt/test_libvirt.py
	nova/virt/libvirt/driver.py

Change-Id: I31b3f2ef5f03f9ef61524bdb7ae089b18e4cd254
Further harden boto version checking in EC2 tests

Use pkg_resources to determine correct boto interface
to use in API tests.  stable/havana version.

Fixes Bug #1239220

Rebased-By: Dirk Mueller <dirk@dmllr.de>

Change-Id: I455ce5f2aabfad7178be361844c6b9b7b0d9c946
Pass thru credentials to allow re-authentication

This is a backport of 4 fixes squashed into one because:

1. They need to all be merged together as they build on each
   other as problems were found in each change after it was
   merged on master.
2. The 3rd change won't pass Jenkins on it's own so it has
   to be squashed with the 4th and final change, so I'm just
   going to squash the entire topic branch together.

The change bugs fixed and cherry pick commit hashes are left
intact for each change.

Closes-Bug: #1241275
(cherry picked from commit 51e5f52e4cb60e266ccde71f205c91eb8c97b48b)

Cache Neutron Client for Admin Scenarios

Closes-Bug: #1250580
(cherry picked from commit 85332012dede96fa6729026c2a90594ea0502ac5)

Users with admin role in Nova should not re-auth with Neutron

Closes-Bug: 1250763
(cherry picked from commit 1c1371c78b990447aeaa4377b512f8887e6ff3ce)

Fix Neutron Authentication for Metadata Service

Closes-Bug:  1255577
(cherry picked from commit 652620d12f3afe6845e41d9762b52d23f44fd557)

============

Change-Id: I2858562b180f3e058a2da9d67bef02af80927177
User a more accurate max_delay for reconnects

In an HA deployment, a 60 seconds delay between reconnects can be quite
problematic. This patch changes the delay calculation by setting the max
delay to 5s and by changing the way it is increased.

Unfortunately, this is one of the places where both our main drivers are
not consistent. Rabbit's driver uses configuration parameters for this
whereas qpid's driver has never had one. However, I would prefer not
adding configuration paremeters to qpid's driver for the following
reasons:

    1. Most of OpenStack services depend on the messaging layer, hence
    they need it to be available. A 5s delay seems to be reasonable and
    I could argue the need of tune it further. Although so frequent
    reconnects can add load to the network, that wouldn't be the main
    issue if one of the brokers go down.
    2. We're trying to move away from configuration options towards using
    transport URL. This path is still not clear and I would
    prefer avoiding adding new options until we clear it out.

Closes-bug: #1281148

Change-Id: I537015f452eb770acba41fdedfe221628f52a920
(cherry picked from commit 8b628d1e024f787dbb93d508117d9148388c0590)
Fix 'icehouse-compat' processing for compute rpc

Commit 2c63cae921d024f39f7d14459873d20caa5cf9e0 added some havana
specific rpc handling to aid with the live upgrade from havana to
icehouse.  Unfortunately, the processing was broken for some
methods.  It would claim to be sending a '3.0' message, but would
be sending some of the arguments in an old format, causing some
methods to break when processed on the remote end.

This patch fixes up the logic to ensure that if messages are sent as
'3.0', that the format of the data sent in the message matches.

Note that this is a stable/havana specific change.

Change-Id: I54135effe4e083f73cb7d912ac9e82fd182e2b2d
Closes-bug: #1301436
Adds RDP console support

Implements: blueprint hyper-v-rdp-console

Nova currently supports VNC and SPICE remote console protocols. This
commit adds support for the RDP protocol in a similar way.

Change-Id: I2c219d4a200122c6d6cfcbd8e074dca0f6fea598
Hyper-V driver RDP console access support

Implements: blueprint hyper-v-rdp-console

Hyper-V uses RDP to provide graphical console access, unlike most other
hypervisors which use VNC for this purpose.

This patch implements get_rdp_console in the Hyper-V driver.

Change-Id: I92e6c4921ff42c1bac2c76dfa1570160a0d11338
Adds get_console_connect_info API

Implements: blueprint hyper-v-rdp-console

Currently graphical console access to Nova instances is limited to
clients which are part of Nova itself (novnc, xvpvnc, spice-html5).
The mentioned clients verify the validity of a console access token
with the following private API:
nova.consoleauth.rpcapi.ConsoleAuthAPI.check_token

The usage of a private API precludes the possibility of employing
external graphical console clients, including FreeRDP-WebConnect, used
to connect to Hyper-V instances via RDP.

This change adds a public API method that wraps the aforementioned
check_token private API. This allows external clients to obtain the
necessary protocol connection information by providing a token
previously obtained with calls to get_vnc_console, get_spice_console
or get_rdp_console.

Includes V2 and V3 API implementations.

Change-Id: Idd1e4f57b16bd1488f3b72bb064cef51321a7c79