Remove deprecated Folsom code: bandwith_poll_interval

Remove bandwidth_poll_interval's deprecated name: bandwith_poll_interval

Change-Id: I7015b306994096610aaaffc03ae5246ae160cbc3
Compare lists in api samples against all matches

Lists of dictionaries don't always sort the same way, so rather
than attempting to sort them, just compare each item in the list
against all other copies looking for a match.

This change uncovered a bug in one of the api samples test where
an extra item in the template was being ignored.

Change-Id: I8750560a1760de7f1991563788680b2dac445aaa
Merge "Remove deprecated Folsom code: bandwith_poll_interval"
Remove dependency on python-ldap for tests

We have a fake ldap implementation for testing, but the tests still
fail if ldap isn't installed. This modifies the usage of ldap in
the LdapDNS tests to stub the module before attempting to import
it. This allows us to test without having python-ldap installed.

It removes the unneccessary FakeLdapDNS in favor of using the real
LdapDNS with the module stubbed out. It also removes the dependency
on python-ldap from test-requires.

Change-Id: Ifbe09e16436afa6999dcb7385763492b0026556c
Merge "Remove dependency on python-ldap for tests"
Create util for root device path retrieval

blueprint snapshots-for-everyone

Create libvirt.utils.find_disk(virt_dom) function.
This function will retrieve disk path from instance configuration.
Will return path both for file and device backed instance root devices.
Will throw error in case, when device can't be found.

Change-Id: I612a19221c6ff78079ab53a8d77295c555514c77
Merge "Compare lists in api samples against all matches"
Add the main Cells code.
add NoopQuotaDriver for child cells

Can be used to disable quota checking in child cells by specifying:

quota_driver=nova.quota.NoopQuotaDriver
For quotas and resize and cells: commit reservations immediately for now

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.

Also:

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).
Add cells support to instance_usage_audit_log api extension
Add cells support for hypervisors extension
Add cells support for reset_state to admin_actions extension
Reduce the create_image call depth for cells

This patch reduces the create image call depth by returning the
basic image details to the user before the cell associated
with the instance is identified. This decreases the time taken
to respond to the user, which in turn decreases the 500 errors.
Makes OS admin api list hosts in child cells
Added versioning to the cells API

This gives the cells service an interface consistent with how other
services in Nova work.

nova/cells/api.py is now an "rpcapi", wrapping all client-side RPC
operations.
Fix typo in nova-cells

Change-Id: Ib11904f960131c187b1c5173522423e4fd81c9df
Move cells configuration into a 'cells' group

The 'DEFAULT' group in nova.conf is huge. For big new chunks of
functionality, we should put the new config options into a group
to help better organize our config.

So, instead of e.g.

  [DEFAULT]
  enable_cells=True
  cell_name='blaa'
  cell_db_check_interval=30

we'd have:

  [cells]
  enable=True
  name='blaa'
  db_check_interval=30

Also, move some options from nova.flags into nova.cells and use
flags.DECLARE() to explicitly show which modules use those options.

Change-Id: I398387687fd6b086e105385b5c8ee0ef39f2a807
Use existing nova-manage helper infra for cells

Rather than have an explicit help sub-command - which none of the other
command classes have - just use the existing decorator for arguments
and benefit from the existing optparse based infrastructure.

Change-Id: Idf06a9ea45736d3c7d4c7308a90f114614db3e7d
Remove get_{parent,child}_cells() from cells RPC API

Any Manager methods which aren't prefixed with underscore are considered
part of the RPC API. These methods shouldn't be part of the RPC API, but
they are public methods of the class. Prefixing them with underscore
isn't ideal, but it's better than allowing them to be part of the
versioned RPC API.

Change-Id: Iddeff5f035e5288e9558998fa6edab9f43ee25f1