Remove admin auth when getting the list of Neutron API extensions.

Currently _refresh_neutron_extensions_cache() always authenticates
with Neutron using the configured Neutron admin credentials because
it doesn't have access to the calling context.  But it's actually
always called when a valid context exists, and the call to get the
list of extensions is not itself an admin operation.  By passing
the context down we can avoid this additional authentication step.

Change-Id: I9e7d9c5e424a6b39c8f8ee1c79f5fd8f48ad81a2
Closes-Bug: 1250850
Introduce Guru Meditation Reports into Nova

This commit integrates functionality from the
`openstack.common.report` module into Nova.
This enables Nova services to receive SIGUSR1
and print a Guru Meditation Report to stderr.
The required modules were added to
'openstack-common.conf' as well.

Change-Id: I224a426dad084f0e738069207ffbffe7f7935a17
Implements: blueprint guru-meditation-report
Add pack_action_start/finish helper to InstanceAction object

Add these two helper function to cut InstanceAction object's dependency
on compute/utils.py. This is a refactor change so that
pack_action_start/finish code in compute/utils.py can be removed in a
later change.

The version of InstanceAction object doesn't change, since it's just an
object internal refactoring. No object field or method has been changed.

This is a part of: blueprint make-instance-action-use-objects

Change-Id: I38bde7b057efa0ce5634941f4ffa5ef27123958c
Re-Sync oslo-incubator fixtures

Syncing to add fixture.logging
(I7a4ab4f181634ed5b92ce88e9ed1d976ecb633a7) which will be enabled for
unit tests in a subsequent patch.

Commits Include:
 782fc83 Fixture to reraise exceptions raised during logging
 c178e56 Add basic Python 3 tests
 f6a97ac Enhance config fixture to support registering options
 b9d2ee4 Cleanup config fixture docstrings
 b8a191b Add 'new' parameter to mock.Patch and mock.PatchObject classes
 45658e2 Fix violations of H302:import only modules
 6fa29ae Trivial: Make vertical white space after license header
 consistent
 12bcdb7 Remove vim header
 3970d46 Fix typos in oslo
 371fa42 Move LockFixture into a fixtures module

Change-Id: I87e9e51610f3d00e92755c4f40aa295e60e440fb
Use oslo-common's logging fixture

Make the unit tests raise an exception when there is a logging
formatting issue. Related to oslo BP
logging-handleerror-raise-exception

Change-Id: Id4aa4277c387f1b67db4209d467c570b3c630f29
Make baremetal driver use Flavor object instead of VirtAPI

This makes the baremetal driver use the Flavor object instead of
getting that information through the VirtAPI/conductor call.

Related to blueprint compute-manager-objects

Change-Id: I1cbc3fc77bbbcaa3c194f12814893c5937fb6e96
Make compute manager use Flavor object

This makes compute manager use the Flavor objects instead of a
raw conductor API to get information about flavors during resize.

Related to blueprint compute-manager-objects

Change-Id: Ieb56b754eb5a4824fc69093897bdff25ab020883
Make resource_tracker use Flavor object

This makes the resource_tracker use the Flavor object for getting
information about an instance's flavor instead of a raw call to
conductor.

Related to blueprint compute-manager-objects

Change-Id: Ida93eeed9b8f8f5da267cff6a6b38f6661479b36
Adds unit test for etc/nova/policy.json data

* Test live etc/nova/policy.json data
* Convert all actions in policy.json to admin-only actions
* Check that Policy auth exception is raised when all above actions are
  called using non-admin context

Change-Id: I1b97987f8e9e3bacc606385a56daad189cf6ce19
Closes-Bug: #1262325
Update Oslo wiki link in README

Use lastest Oslo wiki link.

Change-Id: If777b59754cfd7e1f0c151c4acc5dc4e16cd6687
Merge "Remove admin auth when getting the list of Neutron API extensions."
Merge "Adds unit test for etc/nova/policy.json data"
Merge "Make baremetal driver use Flavor object instead of VirtAPI"
Merge "Make compute manager use Flavor object"
Use uuid instead of name for lvm backend

Because libvirt lvm volumes are based on instance['name'], it means
that the actual names used in lvm storage are based on an operator
configuration variable: instance_name_template (default is
'instance-%08x').

However this is site changeable, and changeable at any time. This
creates 2 failure modes.

1. Operator changes this, the result is all volumes created before the
change are no longer able to be cleaned up by nova

2. Operator has changed this to something that includes end user
input, like %(display_name), which would allow one user to impact
another (user A has display name "bob", user B has display name
"bob_joe")

This changes the lvm backend to use instance['uuid'] as it's
identifier which we know is unique, non overlapping, and not
changeable based on whims of site policy.

It also provides limited backwards compatibility for cleaning up old
disks if the installation was using the default template (which is
safe), otherwise it logs a warning about possibly leaking a disk which
will need to be manually cleaned up. That should be removed once we
open the Juno tree.

UpgradeImpact - while there is no operator action required to upgrade
over this change, if the nova install included a non default value for
instance_name_template then old lvm volumes will need to be cleaned up
manually after old guests are destroyed.

Change-Id: Ib36b962971fd1f66ea9a0818e91fec59e118e686
Closes-Bug: #1285735
Merge "Make resource_tracker use Flavor object"
Merge "Update Oslo wiki link in README"
Merge "Add pack_action_start/finish helper to InstanceAction object"
Merge "Introduce Guru Meditation Reports into Nova"
Merge "Re-Sync oslo-incubator fixtures"