Refine HTTP error code for os-interface

When attaching interface to an instance, Neutron may return several types of
errors. Nova need to translate those errors into appropriate HTTP error codes,
so that end user will be able to know the exact failure reason. Propose to
change the following mappings:

PortNotFound - 400 --> 404
PortInUse  - 400 --> 409
NetworkNotFound - 400 --> 404
FixedIpAlreadyInUse - 400 --> 409

In order to keep V2 api backward-compatibility, only propose to adjust the
error code of V2.1/V3 api.

Change-Id: Icc80c1f847bb9c5737e7282ce8543be52cde8f89
Closes-Bug: 1380901
VMware: refactor cpu allocations

There are a number of patches that make use of the flavors to access
data regarding certain guest properties. This refactor will
populate a object called ExtraSpecs that will be used by the
get_vm_create_spec method. The object will include the
allocations and all additional information, for example, hardware
version etc.

Change-Id: Id54d5f40eb61b2ff7c0e761b6bfdc6fa67de5ca3
Nova devref: Fix the rpc documentation typos

The rpc doumentation under nova developer reference contained typos. These typos have been fixed

Closes-Bug: #1393135

Change-Id: Ib8e76625b874737489c7618102309da16835deba
Support instance_extra fields in expected_attrs on Instance object

This makes the fields that are stored in instance_extra specifyable
in expected_attrs for efficient queries.

Related to blueprint flavor-from-sysmeta-to-blob

Change-Id: I73567280dc1d35a3eb3badfafbe7271943e8ed57
Fix rule not found error in sec grp default rule API

In V2.1 "os-security-group-default-rules", when default rule is not
found then, DB raise exception - 'SecurityGroupDefaultRuleNotFound'.

Further SecurityGroupAPI->get_all_default_rules() try to catch
'NotFound' exception where it would not be able to catch DB raised
exception because that is derived from 'Invalid' exception.

So during not found situation, SecurityGroupDefaultRulesController
should try to catch 'SecurityGroupDefaultRuleNotFound' instead of
'SecurityGroupNotFound'.

Currently 500 error is thrown in not found case.

This patch also catch those exception in V2 API.

Partially implements blueprint v2-on-v3-api

Change-Id: Ib1c5a02ae19c872afb90e79ad13be8d39394ba97
Fixes differencing VHDX images issue on Hyper-V

When using differencing vhdx images, one will be created pointing
to the base image when a VM is spawned. This image will be created
having the according flavor size.

In this case, due to a Win32 API issue, the image is not generated
properly.

Simply creating the root image with no size specified and resizing
it afterwards fixes the issue.

Change-Id: I7bb46a63d4c2a06ed6f63c839461cbbc1abffa65
Closes-Bug: #1370531
Add custom is_backend_avail() method

Fast-and-dirty attempt to fix bug 1393633

Closes-Bug: #1393633

Change-Id: I2cc33ff4c6245e3e541222df60c0ca0a44b3d75a
Updated from global requirements

Change-Id: Ia0f0031936a93220b1eead193078d61e75080055
Merge "Fix rule not found error in sec grp default rule API"
Merge "Nova devref: Fix the rpc documentation typos"
Merge "Add custom is_backend_avail() method"
Merge "Fixes differencing VHDX images issue on Hyper-V"
Merge "Support instance_extra fields in expected_attrs on Instance object"
Merge "VMware: refactor cpu allocations"
Merge "Updated from global requirements"
Merge "Refine HTTP error code for os-interface"