maint: remove an unused import in libvirt.driver

This import was recently reintroduced, due to
confusing pylint output. Therefore remove it again
and adjust things so pylint won't warn in future.

Change-Id: I25f293f171c651c25d27e8d55c9240fd808590ba
Flavor extra specs extension use instance_type id

bug 1031263

The nova database API use instance_type id as parameter to access flavor
extra spec. However, the flavor extra_specs API extension use flavor_id as
parameter wrongly.

As the instance_type ID is a purely nova internal ID, the database should
not expose it and instead use flavor_id as the parameter

Change-Id: I5f509cb7c4457d8c399df32f559a874d498be762
Signed-off-by: Yunhong, Jiang <yunhong.jiang@intel.com>
Move results filtering to  db.

This patch moves exact filter and regex filter matching on the listing of
instances to the database query. This is important so that we can eventually do
all pagination through the database.

If the db backend does not support regex matching then the SQL 'LIKE' operator
will be used instead.

Change-Id: If9dd644066787f0f3667992f23e5c33b1dc90286
General host aggregates part 2

Partially implements blueprint general-host-aggregates: Scheduler Filter
* Add AggregateInstanceExtraSpecsFilter
* change db.aggregate_get_by_host to return a list of aggregates
  instead of the first aggregate
* Add optional key filter to db.aggregate_get_by_host along with test
* Add db.aggregate_metadata_get_by_host to get host aggregate metadata
* add optional key filter to db.aggregate_metadata_get_by_host
* Add AggregateTypeAffinityFilter

Change-Id: I4a3061276cc3b0c5c695eaf973b773183b3c4f4b
Key block_device_mapping off of volume extension

partially implements blueprint disable-server-extensions

Instead of creating a child controller for boot from volume,
key the post parameter of of the os-volumes extension.

Change-Id: I0dd233c2ae12a09d6fc59c49042c2f8b83f3fdba
Key user_data in create server off of extension

Implements part of blueprint disable-server-extensions

Adds a new extension descriptor for user_data and makes sure that
user_data is only accepted in the create server request if the
extension is enabled.

Change-Id: I7aef0ebe569da841adbf380d5695c9029fb3b002
Key availability_zone in create server off of ext.

Implements part of blueprint disable-server-extensions

Adds a new extension descriptor for availability_zone and makes sure
that availability_zone is only accepted in the create server request
if the extension is enabled.

Change-Id: I326b26c4741ffa6a8b594be26d0cd22d032a6162
Key min_count, max_count, ret_res_id off of ext.

Implements part of blueprint disable-server-extensions

Adds a new extension descriptor callsed os-multiple-create. Modifies
the min_count, max_count, and return_reservation_id parameters to
server create to only be allowed if the extension is enabled.

Change-Id: Iaca009588d6c824e0852a060787d2a4cb9614278
xenapi: ensure all calls to agent get logged

In some cases, a call to an agent wouldn't get logged since the caller
was expected to log and not all did this. Move this to the callee so
the caller doesn't need to do anything extra.

Change-Id: Ie16a372187c9215028475522eef53bca9a5cf4d8
Don't accept scheduler_hints if not enabled

partially implements blueprint disable-server-extensions

moves the filling out of the code behind a conditional to
ensure this data is only passed if the extension is actually
enabled

Change-Id: If866eb87c9e6189b6948cb37f0cb8f5e26c8cced
Revert "Remove unused add_network_to_project() method"

This reverts commit d8e39cb775a872c46d067bee8febc40dee799369.

Change-Id: I22f0692814ff029b4960ab32cbee63bbf4922106
Compute restart causes period of network 'blackout'

Fixes bug 1034401

When a compute service is restarted each instance running on the
host has its iptables rules built and applied sequentially during
the host init stage. The impact of this, especially on a host
running many instances, can be observed as a period where some
instances are not accessible as the existing iptables rules have
been torn down and not yet re-applied.

The presented work-around for this is a configurable/flagged deferred
mode that prevents the application of the iptables rules until all
instances on the host had been initialised then the rules for all
instances are applied all at once preventing a 'blackout' period.

Change-Id: I0da90d07e54225fb63f3884897fb00a6027cd537
Sync some cleanups from openstack.common

Changes to openstack.common.notifier:

 - fix bug lp:1019348,update openstack-common to support pep8 1.3.

Changes to openstack.common.setup:

 - Fix errors reported by pyflakes

Changes to openstack.common.timeutils:

 - Remove unused imports

Change-Id: Iac46d11a996857c84e06a8dbd3ecfcd774142ef8
Sync with latest version of openstack.common.cfg

Changes since last sync:

 - Modifies _is_opt_registered fcn to check for duplicate opts
 - allow empty config values

Change-Id: I5150404a0ff97f37d1d1f1b778736fa385d33860
Make sure ec2 mapping raises proper exceptions

The get commands in the db layer were constructing InstanceNotFound,
VolumeNotFound, and SnapshotNotFound with imporoper kwargs. This
fixes them to raise properly and adds a test to verify that the
exception formatting succeeded.

Fixes bug 1035375

Change-Id: I05a5bb57c047ca2b2f086c70ad12a640f51b2d3a
remove nova code related to Quantum v1 API

bug 1034692

Quantum team is removing all v1 support in Folsom, so this code
will not be used or supported with Quantum Folsom release.

Change-Id: I4c397d5238fcc3a15320e052bdc4735dfec1f176
Default behavior should restrict admins to tenant for volumes.

  * NOTE: This is a port from cinder to nova volumes
  * Now to view all volumes or volume snapshots across
    all tenants you need to include the all_tenants=1
    GET param in your api request.
  * Fixes remaining issues blocking bug #967882

Change-Id: I7fe15e792b62e59973c7faa2cf1c52929ae5864f
Fix HTTP 500 on bad server create

Fix scheduler hint extension to check for missing 'server' attribute
in the body.  Return a HTTP 400. (not 500)

bug 1035356

Change-Id: Ifdf8b85e255fd199f15781c8b6c25d421eee7878
Don't accept key_name if not enabled

partially implements blueprint disable-server-extensions

moves filling out key_name variable behind conditional only
used when os-keypairs is enabled.

Adds unit tests to ensure this behaves as expected

(Remove debugging that was left in)

Change-Id: I87ce041c2093c93a1a2456ef51357593e9de0681
Config drive v2

This is the first cut of config drive v2. Some points to note:

 - implements a helper to create new-style config drives. These
   config drives can be VFAT or ISO9660, this is controlled by
   a flag. The current default is ISO9660.

 - the config drives contain all the injected files, as well as
   everything returned from the ec2 style metadata service. Only
   the most recent version of the ec2 metadata is used, but future
   versions will appear as well.

 - the v1 functionality of specifying an image from glance to have
   the files injected into is dropped.

 - the location for file injection is now a directory named
   openstack/files, not the root level of the filesystem. Filename
   mapping is in the openstack metadata files.

 - the default format for the config drive is iso9660, although
   the previous vfat is available with a flag change.

 - includes the first version of an openstack metadata format.

 - there are some simple unit tests which probably need more done
   to them.

Partially implements bp config-drive-v2.

Change-Id: I210fa4dd7d8d6be398a46b30a0d46b960e22d6b0