Adds support for the Indigo Virtual Switch (IVS)

Implements: blueprint ivs-vif-driver

Adds line to rootwrap config to allow call to ivs-ctl to control the Indigo switch.
Adds a new 'ivs' VIF type in network/model.py.
Adds support to the LibvirtGenericVIFDriver class for the IVS switch.
Adds functions to linux_net.py to create and delete IVS vif ports.
Adds unit tests to test the new IVS methods.

Change-Id: I65436b82f65374103644af8aba9dba14ba73f94c
Cells: Add support for global cinder

Implements cinder support for compute cells when cinder is a global
installation.  Adds syncing of the block device mapping table between
child cells and API cells.

Implements blueprint cells-cinder-support

Change-Id: Ife5be9922db0742c8ee4f970517396be86597cce
Change resource links when url has no project id

This patch allow response body to be look like the request url. So if a
project_id is passed the resource links on the response will also have a
project_id, and in the case of api-v3 where project_id are no longer present in
the url the response will not have it either.

Complements bp v3-api-remove-project-id.

Also fix two minor issues on the unit tests, which were breaking with this
change:
 - When doing ServersViewBuilderTest there was no api version specified.
 - ServersControllerTest was duplicating api version on the application url.

Change-Id: I872332ef56b4b6e99fedb43833ad45e8e654f44f
Port flavors core API to v3 tree

Port flavors core API (which does *not* include all extensions, like flavor
create) to the V3 API, adapting the way it's loaded to fit with the new
extension framework and, of course, its tests.

This also change the flavors requests and responses links on unit tests since
project_id  is no longer present on v3 url

Partially implements blueprint v3-api-core-as-extensions

Change-Id: Ide2eb22a89be3bd9adcf5e09cbef23e824a83fc1
Accept is_public=None when listing all flavors

nova-client uses a None (with capital N) when listing all the flavors.
Right now this is interpreted as a wrong query by n-api preventing us
from listing the private flavors using the nova-client.

Fixes bug #1190239

Change-Id: I2a9b1c24cd744c8819c1d41e0ad103d05398401c
Retry quota_reserve on DBDeadlock

quota_reserve() can raise DBDeadlock... so this adds the decorator that
retries the transaction.

Fixes bug 1193199

Change-Id: Id632360372b21f3e75a2af50153eb18cc2025390
Cells: Pass object for start/stop

The compute_api start/stop methods expect an Instance object, but cells
is still passing the dict or sqlalchemy form.

Fixes bug 1191040

Change-Id: I21e0f0b5d7e3160e23c7a84f59ae3899538c7327
Refactor db.security_group_get() instance join behavior

Currently, security_group['instances'] is always joined when we
do a db.security_group_get(). This patch adds the growingly-
conventional columns_to_join argument to the call, allowing
us to selectively choose when we want to make this expensive
join operation.

Related to unified-object-model

Change-Id: I1945365c8cf03c027fd143f677cbd6d63a7f8122
Port quota classes extension to v3 API Part 1

This changeset only copies the v2 files (implementation and test)
into the appropriate v3 directories unchanged. The copy as-is
will not be loaded by either the v2 or v3 extension loaders. The
second changeset will then make the changes required for it to
work as a v3 extension.

This is being done in order to make reviewing of extension porting
easier as gerrit will display only what is actually changed for v3
rather than entirely new files

Partially implements blueprint nova-v3-api

Change-Id: I328b32aee29021bae42cba5d97e0735e7b691ac9
Add basic InstanceFault model

This adds a basic InstanceFault model, list, and tests.

Related to blueprint unified-objet-model

Change-Id: I9226bc1f6e21d298b6d5d8694d336d38e471846d
Add Instance.fault

This makes Instance load fault as an optional attribute, if
requested. I didn't implement save for this, as I'm not sure
we will (want to) support setting instance faults via that
interface.

Related to unified-object-model
Fixes bug 1192004

Change-Id: I581e1f49c4c593ece97cf32dc7cea3f7a7cbd953
Make NovaObject support the 'in' operator

This is needed for dict emulation.

Related to unified-object-model

Change-Id: I6e024dc284a353181d3ffc84329f234e16b79118
Fix instance object's use of a db query method parameter

The limit and marker arguments are kwargs, which need to be
correct to pass some mock tests in the unit tests for api.

Related to unified-object-model

Change-Id: I16b45ff73a6d79313fdd4a1124309f558497ab72
Make info_cache handle when network_info is None

The info_cache['network_info'] data can be None, so don't string-
convert it to 'None'.

Related to blueprint unified-object-model

Change-Id: I7a18f9189ab31beca0f8df764531387b4dd41b50
Prepare fake instance stubs for objects

This fixes a couple of calling convention tolerances on fake
instance_get methods, as well as makes stub_instance() return
a more accurate instance dict.

Related to blueprint unified-object-model

Change-Id: I9772be52c3f8bbd8cab0ec2dd93821f3e4287b6a
Make fake_network tolerant of objects

This makes fake_network not break if passed an instance object or
list of instance objects.

Related to blueprint unified-object-model

Change-Id: Ic484e850966d514c758baedb46571b5296e89580
Merge "Refactor db.security_group_get() instance join behavior"
Merge "Add basic InstanceFault model"
Merge "Add Instance.fault"
Merge "Make NovaObject support the 'in' operator"