Remove kombu as a dependency for Nova

It was required before oslo.messaging.

Change-Id: I3159b8509ac5b4020cd584c894eb131bb16df97c
Faster get_attrname in nova/objects/base.py

get_attrname function is called very very often,
and it's string concatenation method is not fast.

* Changing the string concatenation to a 2 times
  faster + operator instead of the % operator.

Change-Id: I326fd6dda8dd41a90757c69867afd62063231362
Improve error return code of floating_ips in v2/v2.1 api

1.change exception.InvalidID from 404 to 400 when passing a invalid
id.

2.handle exceptions when calling get_instance_id_by_floating_address()
  FloatingIpNotFoundForAddress -> HTTPNotFound
  FloatingIpMultipleFoundForAddress ->HTTPConflict

3.change HTTPUnprocessableEntity to HTTPConflict when remove a floating
ip which is not associated the instance

Change-Id: I0c9cd5b50a2d3cf024e5c4c3506ae2d0e6394c88
Add delete not found unit testcase for floating_ip api

This patch adds unit test case for the delete api of
floating_ip extension.
V2 and V21 have difference return code when delete
a invalid when given a invalid id of floating ip.

This patch addes both nova-network api and neutronv2 api
test cases.

Partially implements blueprint v2-on-v3-api
Change-Id: I40a5b133c98e01e8f5c613b765b8d821beec03a6
Error code for creating secgroup default rule

Trying to create secgroup group default rules
that already exists gives HttpBadRequest error,
but it should raise HttpConflict.

So updated the code to HttpConflict error.
Closes-Bug: #1374320

Change-Id: I93c6eb7fb96e7109404206367ed81495a4724296
Clear libvirt test on LibvirtDriverTestCase

We already create a class variable for connection,
no need to create each one for every test cases.

Change-Id: I635f5993888b21dc9b497e588057af5f794f55b3
Doc: Update i18n devref

The internationalization devref was out of date (and wrongly named). This
patch documents the current advice for internationalization.

Change-Id: If91b3b11c4050cb231b7d9c38b6beca8ba6ce236
Stop neutron.api relying on base neutron package

There is a weird namespacing issue happening here where the
nova.network.neutronv2.api package is relying on nova.network.neutronv2.
This is backwards from standard design and results in strange sharing
patterns when trying to do clean up.

Change-Id: I5e890c7b72c398e9625e590994d8c2afb9ce8897
libvirt: have _get_guest_numa_config return a named tuple

Have the method return an object. This makes the code a lot cleaner.

Change-Id: I209325ff587f6bca366a377475b03772daf519ba
objects: fix version changelog in numa

The version info needs to be incremented as well as
the object version.

Change-Id: Ie186e474aa41b5cb89c804aa426b20cec8d4c9e0
Use model_query from oslo.db

This change makes nova.db.sqlalchemy.api.model_query() a wrapper round
oslo.db.sqlalchemy.utils.model_query().

Arguments to model_query are brought in line with the version in
oslo.db, which removes the need for heuristic introspection of the
model argument. This creates some noise in the patch, as all callers
which previously used the base_model argument have had to be updated.

model_query from oslo.db returns a TypeError rather than a ValueError for an
invalid model, so the invalid arguments test is updated accordingly.

This requires N309 to have been disabled for sqlalchemy/api.py, as it
will complain about the session argument to model_query.

Change-Id: I3dc48c4ebb7ea4576429cf836bae995ede21ce30
use more specific error messages in ec2 keystone auth

Currently in the ec2 keystone auth, when status code != 200 the
response.reason is used for the error message only if
status code == 401. This change uses response.reason for the error
message for any status code != 200.

It also changes a message "failure communicating with keystone"
to "failure parsing response from keystone."

Change-Id: Ifdfc30ff260298637c437e5758983db53a86c0dc
Add API schema for v2.1 block_device_mapping extension

By defining the API schema, it is possible to separate the validation
code from the API method. The API method can be more simple.
In addition, a response of API validation error can be consistent for
the whole Nova API.

Partially implements blueprint v2-on-v3-api

Change-Id: I6d53ef2e3dad5a4ac9b67a5838f6e07606a8372b
objects: allow creation of objects without dict item compat

The dict compat support in NovaObject is useful for incrementally
converting existing code over to use objects. Any brand new objects
though have no reason to support dictionary access, so there should
be a way to disable this compat mode.

This moves all the dict compat support methods out of NovaObject,
to a new class NovaObjectDictCompat. All existing objects are
updated to add this new class as a mix-in parent.

In future any completely new objects (ie ones which aren't being
used to converted existing code from dict instances) should avoid
inheriting from NovaObjectDictCompat. Existing objects should
also have this parent class removed once all callers are audited
and/or updated to ensure they do not require dict compat.

Change-Id: I03f93f0c40df6f5f7df9cefe28dff900c22294c9
objects: stop conductor manager using dict field access on objects

The conductor manager 'object_action' method was accessing object
fields using dict syntax instead of attribute syntax. This meant
that every single object would always have to support dict compat
mode.

Change-Id: I7431b5d8e889eebacfef9179c9dceab54ac286ca
objects: remove dict compat support from all XXXList() objects

The XXXList() classes only ever have a single 'objects' attribute
and this is never directly accessed as a dict key, instead all
callers use it in list context. Thus the dict compat support can
be removed from all these objects

Change-Id: I3f8d49d25b99dd0a498dfaad705c6332908cb72f
Update devref with link to kilo priorities

Devref contains a document discussing project priorities.  Include a
link to the list of specific Kilo priorities that lives over in the
nova-specs repo.

Change-Id: I1770447b03df1cc1ab029780fada96fab8ccaa0f
Updated from global requirements

Change-Id: Ib2765006d59122b409915dfb8c77af90abf04d59
objects: fix changed fields for instance numa cell

Commit 139529a90e6dfc60639887af77bbfab18b2638ab introduces
default fields. At this step of the construction we dont want
to consider fields has changed.

Change-Id: I34051813849c90d25a9c2377fb413b49935553b4
Make cells send Instance objects in build_instance()

This makes the cells rpcapi pass real objects through in the build_instances()
call.

Related to blueprint kilo-objects

Change-Id: I4a08274c34acedc58a2010a5f3093865bd1055d4