Cells: Add the main code.

Implements blueprint nova-compute-cells

DocImpact

Change-Id: I1b52788ea9d7753365d175abf39bdbc22ba822fe
Cells: Add periodic instance healing

Adds a periodic task that'll sync instance information to API cells
periodically.  Does a handful of instances per periodic task run based
on config values.

instance_update_interval      -- Number of seconds between syncing
instance_updated_at_threshold -- Number of seconds after an instance was
                                 updated or deleted to continue to sync
                                 (Ie, don't sync instances updated more
                                 than 'x' seconds ago.)
instance_update_num_instances -- Number of instances to update per periodic
                                 task run

Implements blueprint nova-compute-cells

DocImpact

Change-Id: I3103c3a69ab9cf0ec3e399abe046ed0d216234ab
Cells: Add cells commands to nova-manage

Add commands to nova-manage for configuring cells in the DB.

Implements blueprint nova-compute-cells

DocImpact

Change-Id: Ic1a950181d5ce191780647838c5d06e5410676f7
Cells: Add cells API extension

Implements blueprint nova-compute-cells

Change-Id: Iacc1e68721a7867aeaf233903cbe6d18f09ad96e
Cells: Add sync_instances to API extension

Adds an option to sync_instances to API cell..

One can POST to cells/sync_instances and pass a body with the following
options:

'project_id'    -- specify a project_id to sync (all projects by default)
'deleted'       -- specify whether to sync deleted instances (False by
                   default)
'updated_since' -- Only sync instances that have been updated since a
                   certain time

Implements blueprint nova-compute-cells

DocImpact

Change-Id: Ie156fb4803d4bedf7cb2d5578d5949096a0cf773
Cells: Add filtering and weight support

This adds filtering and weighing support to the cells scheduler.

Adds the following config options to the 'cells' group:

scheduler_filter_classes -- list of filter classes
scheduler_weight_classes -- list of weight classes

Implements blueprint nova-compute-cells

DocImpact

Change-Id: I027c5734e3d6134127fcd4dd28b8ff39047416dc
Cells: Commit resize quota reservations immediately

There's not an immediate good solution for quotas on resize with cells
due to how it's implemented.  Will have to revisit this with a better
patch later.  This can lead to some out-of-sync issues when deleting
things in certain resize states... or if there are resize errors.

Store migration information on API cell to correctly handle quotas

Revert and confirm of migrations require access to migration information
so they can calculate the reservation correctly. For new resizes, store
a migration record locally so it can be used later on. For old resizes,
keep the previous behavior (for now).

Implements blueprint nova-compute-cells

Change-Id: I356600d1d0d9408b019a9422f795b4244c252052
Cells: Reduce the create_image call depth for cells

This patch reduces the create image call depth (for snapshot/backup) by
returning the basic image details to the user before we call down to
the child cell.  The image entry is created in glance immediately, and
the child cell will finish up the rest.

Implements blueprint nova-compute-cells

Change-Id: I048cc532614c602f3aa6b539fb51e951174e4598
Cells: Add cells support to instance_usage_audit_log api extension

Implements blueprint nova-compute-cells

Change-Id: I9e78c17fcf70f98903d0a26c1de3e2581b8977ad
Cells: Add cells support to hypervisors extension

Implements blueprint nova-compute-cells

Change-Id: I17ff10e62d2f10b85a557edcc1509ca3b0d15a29
Cells: Add cells support to hosts api extension

Implements blueprint nova-compute-cells

Change-Id: I8137fa64d2578acfc3d2457c231de2b0d69b96d8
Cells: Add some cells support to admin_actions extension

Implements blueprint nova-compute-cells

Change-Id: I1cc1560bceb842c3bc82c6e9510eaef8a4931293