Prevent nova services' coverage data from combining into nova-api's

Now if combining a coverage report once, nova services' coverage
data are combined into nova-api's.
This renames nova-api coverage datafile to .nova-coverage.api and
creates a new coverage instance to combine when reporting.

Fixes bug: 1152475

Change-Id: I90b6535d490cf0123a127f8752986edd782ef37e
Switch nova-baremetal-deploy-helper to use sfdisk.

This patch changes make_partitions function to use sfdisk instead
of fdisk. Also added logging of cmd, stdout, and stderr should
command fail.

Fixes Bug 1088652

Change-Id: Ia2711a5450900c95598253f2a7b02e7c3e83a3d8
Authored-by: Chris Krelle <nobodycam@gmail.com>
Show quota 'in_use' and 'reserved' info

We need show all the quotas related info, including 'in_use' and
'reserved'--not just the limit--when executing 'nova-manage project
quota'.

Fix bug 1160752

Change-Id: I25e10e58c6af705e2189550ad762e6f39bca342e
Fix migrating instance to the same host.

In current code logic, Migration to the same host is allowed which is
meaningless.

In the patch, a Conf flag 'allow_migrate_to_same_host' is added and set to
false as default. When 'allow_migrate_to_same_host' is false, the current
instance host will be added into filter property 'ignore_hosts' to avoid
migrating instance to the same host.

Fixes: bug #1160268

Change-Id: I5ac0391cf468310a89fb6d8a8f5120c5654cb4ff
Add CRUD methods for tags to the EC2 API.

This is an incomplete implementation of the EC2 tags API.  In EC2, most
resources are able to be tagged.  See
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html

In openstack, the only currently 'taggable' resource is an instance, as
it has an instance_metadata table associated.  So far, only instance
tagging has been implemented, but it is relatively simple to extend this
to other resource types by creating the associated model and api calls.

Additionally, in EC2 searches, shell-style globs are allowed, eg:
fo* will match fo, foo, foobar
fo? will match foo

This has been left to do at a later date.

DocImpact: Adds new API calls: CreateTags, DeleteTags, DescribeTags
See:
http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateTags.html
http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteTags.html
http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeTags.html

Fixes: bug #1096821
Implements: blueprint ec2-tags-api

Change-Id: Idf1108f6a3476cabdbdb32ff41c00aa4bc2d9ffe
Signed-off-by: Stephen Gran <stephen.gran@guardian.co.uk>
Convert host value from unicode to a string.

The memcached API expects string format, not unicode.
Convert the host value to a string before creating
the cache_key and passing it to memcached.

Fixes: bug #1158958
Change-Id: I26e86b7fb61b4b3380a14686bd2faa9f58017999
Ensure only pickle-able objects live in metadata

Conductor api has been added to InstanceMetadata object, but it cannot
be serialised. This breaks storing metadata in memcache, because the
information needs to be passed through pickle.

Since the field was not used outside of the constructor, it can be
removed to fix the problem.
Also add a test that pickles a sample InstanceMetadata to catch similar
failures in the future.

Fixes bug 1160900

Change-Id: I7e8cef5a131290eaa1402d48295026bcac6baff6
Use Cluster reference to reduce SDK calls

The vmware compute driver retrieves the cluster reference
for every spawn and volume operation. The solution is to
retrieve the reference once from the __init__() of
vmwareapi/driver.py and reuse the same in other methods.
This will reduce the number of VI SDK calls made.

Fix for bug 1130222

Change-Id: I2179733ee4ab1b2aea919de0ad4c10631cf005ea
Accepts aws-sdk-java timestamp format

The aws-sdk-java timestamp format is "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
which contains millisecond representation. However, the current
implementation does not accept this kind of format.

References:
https://github.com/aws/aws-sdk-java/blob/master/src/main/java/com/amazonaws/auth/QueryStringSigner.java#L173

Adds ability to parse this format in ec2utils.is_ec2_timestamp_expired.

Fixes bug 1156445.

Change-Id: I389ff8b9c6c91b699538b889add264d66dbb8131
Add missing unit tests for FlavorActionController

Fixes bug 1115575

Change-Id: I81740bd30d03fd3c5d9b1dcc7f73e1b7a2b757c7
improve handling of an empty dnsmasq --domain

Currently all domains passed through the dnsmasq --domain option,
are single quoted.  It's not fully understood how dnsmasq handles
single quotes in this situation, so it's safer to just avoid the
--domain option in this case.

Fixes bug: 1161506
Change-Id: I8ecd996676189f53908abd48fee81132091ee820
Query quantum once for instance's security groups

This patch adds the method get_instance_security_group_bindings()
which returns all the instance_id's and security groups for a given
tenant. This method is then used to avoid querying quantum for it's
security groups when using GET /v2/<project_id>/servers/detail.

Fixes bug 1161518

Change-Id: Ia28d5573c264f0316ab9fb257ca8e7ae35679883
Better iptables DROP removal.

With the introduction of configurable iptables DROP rules in
nova-network, we need to cleanup possibly more than one drop
rule, depending on what DROP action was in place when the rule
was created. This patch handles this for the simple case where
the drop action has just been configured. More complicated
scenarios will need to be handled manually.

Change-Id: I660607ff6e23ca545f96e536d1084d972bc7c7a2
Return proper error message when network conflicts

Fixes bug 1158075
When creating a network which is already existing, we got
an internal server error which can't show the error reason.
This patch returns conflict error(HTTP 409) instead of
internal server error(HTTP 500), so that users can know
the error reason from the error message.

Change-Id: I9e39a7152e37756b34b1c8d77de057012743f0f7
Delete tests.baremetal.util.new_bm_deployment()

The function is not used anymore. It creates an instance of
BareMetalDeployment, which was removed in c20110d1.

Change-Id: I40b634f8cf0d4369f09cb61aca6f95a059e85d6d
Return 409 on creating/importing same name keypair

* Removed the DB look up on creating and importing a keypair.
* Added unique constraint on user_id and name columns of key_pairs
table.

Fixes LP: #1086333.

Change-Id: I2fd4697f9269d2be13bd977e65ba4ca4a27b9ac6
Sync latest gettextutils from oslo-incubator

Fixes bug #1076285

Ensure translations for strings under nova.openstack.common are
translated using the 'nova' translation domain rather than the
non-existent 'openstack-common' translation domain.

Change-Id: I6aee3061cbffd3bf940f1881e8540cd996d0b12a
Merge "improve handling of an empty dnsmasq --domain"
Merge "Delete tests.baremetal.util.new_bm_deployment()"
Merge "Query quantum once for instance's security groups"