Adds a new tenant-centric network extension

Implements: blueprint tenant-networks

Adds a new API extension that supports a more tenant-centric model for
interacting with isolated networks. Additionally, the patch renames the
existing networks extension as os-admin-networks to more fully fit the
self-described implementation. Two new novaclient extensions and a
novaclient change accompany this patch.

DocImpact

Change-Id: Ib90a65c0a92445f86e930fab88ab4495aefff7c7
Sync log from oslo-incubator

Change-Id: I292789214d74d00c33d5111625b452bb1b339c4f
Cope better with out of sync bm data.

The baremetal hypervisor tracks references to instances which are
deleted asynchronously from the commit to the nova bm. As such, its a
normal but rare condition for a bare metal node to refer to a deleted
(and even garbage collected) nova instance. We should treat such
instances are deleted rather than erroring on any call through
list_instances(), permitting starting new instances and listing
instances to work - fixing bug: 1096722.

Pathologically, the database may suffer permanent skew, which means we
need a way to fix it (and thats tracked as a separate bug).

Change-Id: Ic21ff66b1fc0ad64bb5feff26291873b96d20e4e
New instance_actions and events table, model, and api

These tables will be a place to record actions taken on an instance, and
related underlying events.  This will provide a log of what has taken
place which can aid in debugging or just satisfy curiosity.  It will
also hold error information in the event that something exceptional
occurs during the action.  This is setting up the ability to report
error information without needing to set the VM to an ERROR state.

Blueprint instance-actions

Change-Id: I1f793abf0e4df0e4977850127fc41b4750ba2f4f
Fix N402 for nova/virt

Fix N402 errors (single line docstring should end in a period)
for nova/virt, part of a larger attempt to stop ignoring our own
hacking.py tests.

Change-Id: I523ce41bd2b38c73cf3fdb031101ccc0695f2488
fix N402 for nova/tests

convert docstrings on test_ functions to comments to prevent the
function name from being masked by test infrastructure

convert the rest of the docstrings to end in punctuation as per N401

Change-Id: Ib400537c6f7feb30739207a627b5aac3a7eb165a
fix N402 for nova/scheduler

fixes N402 (single line docstrings should end in period) for
nova/scheduler files.

Change-Id: I8e7b6a93df53fcd5c9491f533cadd093f4b802e0
fix N402 for nova/network

fixes N402 (single line docstring should end in a period) for
nova/network.

Change-Id: I2a24a2fef78cbafd3113b86515ac8fd92cc47e80
Move enabled_apis option into nova.service

The enabled_apis option is only used in nova-api and nova-all but
there's no more obvious place to put it than nova.service. At least
this location is consistent, since we quite have a number of other
options related to the APIs in nova.service.

blueprint: scope-config-opts
Change-Id: I86e200fa5ad91ac0b7ab6837cc61e5927b2ebeb7
Move vpn_image_id to pipelib

Apart from checking whether a given image is the cloudpipe image, the
vpn_image_id option is only used within pipelib itself.

Add a is_vpn_image() helper method and move the option into pipelib.
Some rejiggering of how pipelib imports ec2 opts is required to avoid
circular imports.

blueprint: scope-config-opts
Change-Id: Ie984b2bb81681c24d3cee803082960083992a535
Adds option to rebuild instance with existing disk

Evacuation of VM from a failed host for HA.
New api supports recreate/rebuild modes. With shared storage,
VM is recreated on the specified target from existing disk.
Otherwise, rebuild from original image is performed.

* new recreate, target host and on_shared_storage in rpcapi.rebuild
* change in manager.rebuild to rebuild instance using existing disk

part of blueprint rebuild-for-ha

DocImpact

Change-Id: I4d119eafc30da2779ad252259f88118ed0038cd1
Co-authored-by: Oshrit Feder <oshritf@il.ibm.com>
Enhance wsgi to listen on ipv6 address

* Check if the hostname is ipv6 and set the family appropriately
* Add test case for wsgi.Server and service.WSGIService

Change-Id: I6edd467467fa3d623d62e146750b3a6c42d8833c
Fixed typos in doc strings.

Change-Id: Ibf4bf4ce882077c89d8bb91f93572af7b6cc5da2
Merge "New instance_actions and events table, model, and api"
Merge "Fixed typos in doc strings."
Merge "Adds option to rebuild instance with existing disk"
Merge "Move enabled_apis option into nova.service"
Merge "Move vpn_image_id to pipelib"
Merge "Sync log from oslo-incubator"
Merge "Fix N402 for nova/virt"