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
Remove race condition (in InstanceTypes)

Soft delete all duplicate rows with the same name except one with
the biggest value in `id` column.

Soft delete all duplicate rows with the same flavorid except one with
the biggest value in `id` column.

Create UC on columns (name, deleted) and (flavorid, deleted)

Replace Select then Insert -> Try to Insert.

blueprint db-enforce-unique-keys

Change-Id: If66d2f1387c2b2748784bf7ac9746b8d755b70a9
Add missing tests for db.instance_type_access_* methods

There was no tests in test_db_api for instance_type_access_* methods.

Add tests to ensure that all works.
Also these tests allow us to refactor these methods.
For example add missing unique constraint on columns
(instance_type_id, project_id)

blueprint db-api-tests

Change-Id: Idfeda1685ef8c812c1211783aede15795b0d7caf
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>
Fix typo in the XML serialization os-services API.

Partially implements blueprint nova-api-samples
fixes bug 1130609

The XML serializer for the update method in the os-services API extensions was
not serializing the "updated_at" field because of a typo in the code.
In this change we added api_samples for the XML output.

Change-Id: I9fff0677e9bad650b19e559b3ed6e9bc0ffe8c3c
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
sync oslo db/sqlalchemy module

sync oslo db/sqlalchemy module to grab "Mark sql_connection with secret
flag" change.

fixes bug 1160680

Change-Id: Id48419624c41eea5a0f2e130d7cdbe8a8f0a9118
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
xenapi: fix support for iso boot

Fixes bug 1154731 that stated the iso support was broken.

There were several issues around a vdis list without a 'root' disk.

Because the ISO boot was HVM, only 0-3 devices will work, so, the
devices used have been re-ordered to ensure ISOs can be read
by a HVM guest without PV tools. Once PV tools are present, a
HVM guest will be able to access an ephemeral or swap disk.

Change-Id: I4b57f70301a4256fa975323d7964fde19e8d4508
Merge "Remove race condition (in InstanceTypes)"
Merge "Add missing tests for db.instance_type_access_* methods"
Fix missing punctuation in docstring

This adds a period to the end of a docstring that was recently added and
swiftly merged to fix a bug in -rc2.

Change-Id: I399a72868911e03c6d69d9591ddcf7ee2d132fea
Merge "Fix typo in the XML serialization os-services API."
Merge "xenapi: fix support for iso boot"
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
get context from req rather than getting a new admin context

This patch removes the call to context.get_admin_context() and instead
obtains the context from the req object. Allowing the context.auth_token
to be reused.

Fixes bug 1161081

Change-Id: I3b104edc2966fc3263fad824b1c4c99df832672e
Imported Translations from Transifex

Change-Id: I737b11916a85c9694b1f47ec89e66947cd188bb1