Cells rebuild regression fix

The introduction of 'preserve_ephemeral' in rebuilds created a
regression issue with cells.

Closes-Bug: 1281858

Change-Id: Ic8446e8611a41691d12c5dd0c4e1285a586248da
libvirt: making set_host_enabled to be a private methods

Currently _set_host_enabled() is being used only for internal libvirt
driver purposes, which doesn't correlate to set_host_enabled in the
compute API.

_set_host_enabled in the driver is disabling and re-enabling
the compute service automatically and shouldn't be exposed to the users.

Also, adding disable_reason as an optional variable and enabled variable
to be boolean only.

Change-Id: I5fd13ef352fcbb4a1c96764a9e473cdaf7b128da
Closes-Bug: #1251803
Removes os-instance-usage-audit-log from the V3 API

The extension pre-dates ceilometer and equivalent
functionality is now much better managed using
ceilometer. So we're removing this before the V3 API
is officially released.

Partially implements blueprint v3-api-remove-extensions

Change-Id: I9b7892346a4ad7c54a903cfcbcb97156dfc8c734
libvirt: configuration element for a random number generator device

This configuration exposes a paravirtual random number generator device,
with a default backend set to a hosts /dev/random

An optional rate element can be provided in order to limit the consumption
of host's entropy by the guest.

Partially implements blueprint libvirt-rng-device
Change-Id: Id1be32a307473aec2ff0b54b43b2ca3547d74b84
Support setting a machine type to enable ARMv7/AArch64 guests to boot

By default the libvirt driver does not specify a machine type. On ARM systems
that results in a default type which will fail. This change provides two ways
to have Nova specify a machine type in the libvirt configuration:

1) The image can be tagged with the property "hw_machine_type=<type>"
2) If Nova detects an armv7 or aarch64 processor it will use vexpress-a15 or
   virt machine types respectively (this can be overridden with an image
   property)

Change-Id: I8aadfcf50e35a1370783ea795f80b29c1a71abff
Closes-Bug: #1261978
DocImpact
Fix break in vm_vdi_cleaner after oslo changes.

Added missing imports along with adding a call to config.parser_args as needed
to allow vm_vdi_cleaner to work against current master.

Corrected spelling error in comment.

Change-Id: I4d30d0f7f9718cb29fb8c4c18e9e6fa23f3496ef
Closes-Bug: #1279942
Make floating_ips module use FloatingIP for all get queries

This makes the network.floating_ips module use the FloatingIP
object for all get_* queries instead of direct database access.

Related to blueprint nova-network-objects

Change-Id: I862f2f3abc078b477bea6bf86d0d622c4e78881f
Make floating_ips module use FloatingIP for (de-)allocations

This makes the network.floating_ips module use the FloatingIP
object for allocation and deallocation.

Related to blueprint nova-network-objects

Change-Id: I10d334d13b77be4bc8d491644fad6394798cd76b
Make floating_ips module use FloatingIP for updates

This makes the network.floating_ips module use the FloatingIP
object for saving updates instead of direct database calls.

Related to blueprint nova-network-objects

Change-Id: Ib34f4d5f24bcbd7aacd2fda3d793555fcc047dbc
Update the mailmap

Change-Id: Ifa5c765cabf38173d4a7442bdeac79dd15dbb79d
Make is_neutron() thread-safe

The utils method is_neutron() was not thread safe and could have returned the
wrong value if two greenthreads called it at the same time.  Specifically, a
greenthread switch could occur when the import is being done.  At that point, it
looks like the check has already been completed, but the result has not yet been
recorded.

Closes-bug: #1274992
Change-Id: I5a6eedaeb4c0deee4b31509946ae5daedf98389d
Replace assertEqual(None, *) with assertIsNone in tests

Replace assertEqual(None, *) with assertIsNone in tests to have
more clear messages in case of failure.

Change-Id: I0d38a82e78fbe94657ab9a71c08422007843d179
Convert add_fixed_ip_to_instance to objects

Related to blueprint icehouse-objects.
Related to blueprint compute-manager-objects.

Change-Id: I2c79b02e20347caaa2c0c67c46c22b818559aceb
Remove underscore for the STATE_MAP variable

The STATE_MAP will be used by the V3 diagnostics support. Removing the
underscore will indicate that the dictionary is no longer local.

Change-Id: Ife13e179abf0c1b31dafdf19fb0f3b29054199f2
Fix compute_node_update() compatibility with older clients

A recent change changed the format of the data passed to conductor's
compute_node_update() method. The 'stats' element of 'values' was
changed from a dict to a JSON-encoded string. When older clients
call this method with a dict, the newer conductor puts the actual
dict in the SQL instead of a string, which breaks.

Change-Id: Ida1ad76752b1944f33c1aa9436ce36790705d6a5
Closes-bug: 1280034
Merge "Remove underscore for the STATE_MAP variable"
Merge "Removes os-instance-usage-audit-log from the V3 API"
Merge "Fix compute_node_update() compatibility with older clients"
Merge "Make is_neutron() thread-safe"
VMware: remove unused class

The Failure class has not been used since it was added
to the code base. This was done in the commit below:-
https://code.launchpad.net/~citrix-openstack/nova/vmware-vsphere-support/+merge/53060

Change-Id: Ib4f0372f847bcbefde27c02b6ce01202482a46c0