Add preserve_ephemeral option to rebuild

The preserve_ephemeral option for rebuild will preserve the content of
the ephemeral partition, making stateful golden image based
deployments possible even when clouds haven't deployed Cinder, or the
hypervisor doesn't support Cinder (e.g. BareMetal / Ironic).

Partial-Bug: #1174154
blueprint: baremetal-preserve-ephemeral
Co-Authored-By: Robert Collins <rbtcollins@hp.com>

Change-Id: Id33d5d4107f89814842a3f0b7f33690dd7e3aadc
disable debug in eventlet.wsgi server

the debug flag basically just means that we get lines like:

 ....wsgi.server [-] (6966) accepted ('127.0.0.1', 51944)

After *every single* wsgi request, filling up the logs with
completely irrelevant data at info level because eventlet.wsgi
does not use python logging.

Change-Id: I508b963a0c84e17df845aad260dd8ee157abbea8
Fix docstring in libvirt.driver.LibvirtDriver.get_instance_disk_info()

Update param list to match reality and fold in pre-existing
NOTEs about the parameters into the doc string.

Change-Id: I994f75ef4d0f1540c007ec1d430c6973e9308e35
Move fake_network config option to linux_net

Option 'fake_network' is used by nova/network/linux_net.py but not
imported from nova/network/manager.py. Both use it, but manager imports
linux_net (via nova/network/api.py + nova/network/floating_ips.py) so it
makes more sense to define the option in linux_net and import_opt in
manager.

Precise example import chain:
    bin/nova-manage
    nova/cmd/manage.py: import_opt('flat_network_bridge', 'nova.network.manager')
    nova/network/manager.py: from nova.network import api as network_api
      -- At this point, manager has started to import but not yet called
      register_opts
    nova/network/api.py: from nova.network import floating_ips
    nova/nova/network/floating_ips.py: import_opt('public_interface', 'nova.network.linux_net')
    nova/nova/network/linux_net.py: import_opt('fake_network', 'nova.network.manager')
      -- BANG! Manager hasn't registered the option we want to import

Change-Id: I66f021b34aef650dca148a58203c249f6aa0e83e
XenAPI: get_info was very expensive

Getting the whole VM record is expensive and slowed down Tempest tests
significantly.  Replaced with getting each required item.

When getting power state, only need that specific value, so reduce the
calls to get_info too.

Change-Id: I93bcef5b692a531aac41518dc29d5d4f46cded65
Remove unused method from network rpcapi

Remove get_vifs_by_instance from the nova network rpcapi.  It's unused,
so we can go ahead and remove the client side of this.  The server
(manager) side can be removed on a major rpc api version bump.

Change-Id: Iab90e87e7a82abcf290c2fc799001cc4ee8299b2
Remove get_vif_by_mac_address from network rpcapi

This method is no longer used.  It was added to network.api and runs on
the API side now instead.  We can remove it from the rpc client code.
We can later remove it from the manager side when we do a major version
bump of this rpc API.

Change-Id: I8933bcc022558a9befed7478047422959fa47f1c
Merge "Fix docstring in libvirt.driver.LibvirtDriver.get_instance_disk_info()"
Merge "XenAPI: get_info was very expensive"
Merge "Move fake_network config option to linux_net"
Merge "disable debug in eventlet.wsgi server"
Merge "Remove unused method from network rpcapi"
Merge "Remove get_vif_by_mac_address from network rpcapi"
Merge "Add preserve_ephemeral option to rebuild"