Make Keystone client pluggable

Similarly to how the engine client works, this makes it possible to
switch out the builtin keystone client with a custom - interface
compatible - plugin replacement.

Co-Authored-By: Anderson Mesquita <andersonvom@gmail.com>
Partial-Bug: #1274201
Change-Id: If14ff4b34b90f46d0f468fd669dcc2fdc36c8c97
Add Keystone V2 plugin

This adds the previous Keystone V2 client to be used as a plugin by
clouds that have not upgraded to V3 yet.  This replacement also raises
NotSupported exceptions in methods that are V3 only.

Co-Authored-By: Richard Lee <rblee88@gmail.com>
Closes-Bug: #1274201
Change-Id: I97d3fe7e5ff52250c699c9b470d114e53888ef15
Nova keypair validation breaks client plugins

Changes made to the nova keypair validation functionality break the
client plugin functionality.

Change-Id: Ia45db6dc369fe75520de03347e16b8e3f3c6ced8
Closes-Bug: #1280016
Make server resources use nova_utils.refresh_server()

Update Server, Instance, and CloudServer so that they use
nova_utils.refresh_server() instead of server.get().

Change-Id: Id65fabaa15c06ecf511c231888166eded00ba467
Allow Server name property to be updated

The patch will ensure the 'name' property updatable for the resource
OS::Nova::Server.

Change-Id: Iaf8569fc739b2e5f9b5011ecdd57af25f7b1f57d
Closes-Bug: #1279239
Always report the action in state_reason as engine encodes it

Presently the state_reason is a mix of upper and lower
case depending on where the state_reason is updated.  This
change defaults the state_reason's action text to upper case
in all cases.

Change-Id: I117d310858133d80675edd87d395c60764635eeb
blueprint: oslo-messaging
replace dict comprehension with dict constructor

this should make it compatible with python2.6

Change-Id: I0f1ba0efb6f3ff47243118a2f8a7cdc7c7e72bfe
Closes-Bug: #1287631
Merge "Allow Server name property to be updated"
Merge "Nova keypair validation breaks client plugins"
Merge "Make server resources use nova_utils.refresh_server()"
Merge "Make Keystone client pluggable"
Merge "Add Keystone V2 plugin"
Merge "Always report the action in state_reason as engine encodes it"
Merge "replace dict comprehension with dict constructor"