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
Merge "Set a sane default for state_path"
Merge "Make image props filter handle old vm_modes"
Merge "Adds migrate server extension for V3 API"
Merge "VMware: fix bug for exceptions thrown in _wait_for_task"
Merge "Fix baremetal stats type"
Rename Openstack to OpenStack

Change-Id: Iacc51d8ad071c3b22b7bb6b21cff972599b59a7b
compute: removes unnecessary condition

An unnecessary condition is used in compute/manager.py

Change-Id: If1a27009079721198aebebbd8c1c773f10f51f1a
Merge "Change assertTrue(isinstance()) by optimal assert"
Merge "Correct host managers free disk calculation"
Don't allow compute_node free_disk_gb to be None

As part of commit 5668870, we now explicitly guard against the case
free_disk_gb is None or unset. However, this should never happen
since resource tracker always sets it and guarding against this case
isn't actually needed to fix the bug in question.

Also, simplify the code a little to make the intent more clear. We
assume that free_disk_gb is always set, but we want to use
disk_available_least where the driver has set it. The case where
disk_available_least is less than free_disk_gb is the exceptional
case we want to guard against.

Change-Id: I3973eab6b4ca016df546de8b57245fc0d0f03a80
Convert unrescue_instance to objects

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

Change-Id: Id1311064354ee055a3557ce6aafca148c76524ec
changed quantum to neutron in vif-openstack

Change-Id: I50c14066584527a6fbc25c59b0bf03a321a5f1f5
Count memory and disk slots once in cells state manager

If multiple instance types in a cell had the same memory_mb value or
root_gb + ephemeral_gb added to the same value, then capacity counts
would be inaccurate since slots would get counted multiple times.
Rather than counting based on instance type it is now based on the set
of memory or disk values pulled from instance types.

Change-Id: Iaded7fa69dadb4aa0335ef1569975bdfcb2767c6
Closes-bug: #1276728
Fixed check in image cache unit test

Before the fix assert checked nothing bacause .sort() sorts
provided list and has no return. Comparison of two None objects
is always true.

Change-Id: I3d453a29b5913cd24ce8d9e4a2324c7ad8d138b7
Merge "Don't allow compute_node free_disk_gb to be None"
Fix upper bound checking for flavor create parameters

Fix flavor-create upper bound checking so it uses platform-independent
32-bit max signed integer value instead of sys.maxint, which causes
problems on 64-bit platforms.  The DB int type is a 32-bit signed
integer, regardless of platform.

Change-Id: I82624121a45f6385d3ea9ae9c032109834584fac
Closes-bug: 1278939
Merge "Convert unrescue_instance to objects"
Update docstring for baremetal opportunistic tests

The db.test_migrations can test the migrations for Nova and nova
bare-metal. This patch updates the docstring on how to run those
tests opportunistically.

Change-Id: I327d688ec9af7dc0e8e0e58804bac8a3091cb727
Add V3 api for pci support

All pci passthrough code is merged into nova, but the APIs are not supported.
This patch provides a resource: endpoint to show PCI information. This is a
part of PCI APIs, for more information see the blueprint.

Partially implement blueprint pci-api-support

Change-Id: I05c502cb7564b8b71f12d8f06249124b3d2b370f