Cells rebuild regression fix

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

Closes-Bug: 1281858

Change-Id: Ic8446e8611a41691d12c5dd0c4e1285a586248da
Calculate default security group into quota usage

Create the related quota usage when creating the default
security group for user.

Change-Id: Ide1de160814a5937f71e07f3ab10ce2bba8886f1
Closes-bug: 1271381
Ensure that exception raised in neutron are handled correctly

We are now logging exceptions so we need to use save_and_reraise.

The patch set has also added log messages for exceptions that were
raised. This will be very helpful for debugging and troubleshooting.
This is done in the following cases:
 - unable to access a port when validating networks
 - unable to find a requested floating ip

Change-Id: I946126c2fb5aa229f917f8cb36ecb23aab528e14
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
Make libvirt use Flavor object instead of using VirtAPI

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

Related to blueprint compute-manager-objects

Change-Id: I484c98068a46c9780d82c886779eb58e783f9b6f
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
Group kvm image_meta tests for get_disk_bus

Refactoring test_get_disk_bus to eliminate duplicate code by
adding a loop to the image_meta tests.

Change-Id: Id8f342a0739db01635c2ca925788d7a258f8a478
Use six.moves.urllib.parse instead of urlparse

To keep Python 3.x compatibility, use six.moves.urllib.parse
to replace urlparse.

Change-Id: I23df3455d6293711572a48165964644cb18d175b
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
libvirt: Uses available method get_host_state

An available method should be used to get the host_state.

Change-Id: I24004c0ed4c167d8f54a60a440ee250bb3236c1b
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
libvirt: improve unit test time

A number of tests would invoke code that would sleep. This
patch adds a mocked function for the sleep.

Change-Id: Iecdc8488393cb118aa77bc5c33bcfde33ceb4733
Closes-bug: #1279820
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
Convert remove_fixed_ip_to_instance to objects

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

Change-Id: I443784d95cf0556dc4e6f9ac7f91466c766819b6
Convert post_live_migration_at_destination to objects

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

Change-Id: Icaf0346c852d2f6a804675c975e54a7df642c1ab