Nova network needs to take care of existing alias

Nova network should take care of existing aliases on bridge
interfaces when it adds address on top of the list.

Change-Id: Ife54c9eba64906406f7c44a66b596f3162ad16b6
Fixes: bug #1077066
Rework instance actions to work with cells

In a cells setup an instance action is recorded at the global cell level
while events try to get recorded in a child cell compute node or
scheduler.  The event recording fails because it can't find an action to
link to.  This patch adds the recording of actions at the child cell
level, and changes the API extension to query the db in a child cell for
the record of actions and events.

This does not address the fact that an action is recorded at the global
cell level.

Bug 1132935
Change-Id: I5831f146397e7afa2d93d26c5d6f9abb9bc6670d
Fix ephemeral devices on LVM don't get mkfs'd

Fixes bug 1083424

Updated imagebackend to run the necessary callback conditionally
based on whether LVM is configured for use and ephemeral_size is
defined. The callback function was updated not to invoke qemu-img
for LVM, since the ephemeral disk is already present/created via
LVM. Lastly, the mkfs call had to be changed to be run as root,
since we are dealing with raw devices.

Change-Id: Ieb1febb0ea086f8e5063d92ca376d349fcd43a43
Fix Network object encoding issue when using qpid

When creating network via REST API will throw the exception
"CodecException: no encoding for
<nova.db.sqlalchemy.models.Network object at 0x4a8ea10>".
It only occurs when using qpid.
Fix this issue through using jsonutils.to_primitive method.

Fix bug 1143584.

Change-Id: I833aef451f8e3d5eaa246c19d67b2474a9d36910
delete deleted image 500 bug

Fixes bug 1138666

When you delete an image that you just deleted, you get a 500 Internal Server Error.
In this case, the problem isn't an internal server error but the "unauthorized" response
from the image service is not expected.

This can be recreated with devstack:
 1) delete an image
 2) delete the same image

Here's an example:

$ nova image-list
+--------------------------------------+---------------------------------+--------+--------+
| ID                                   | Name                            | Status | Server |
+--------------------------------------+---------------------------------+--------+--------+
| caa6c969-0f32-466b-8e8e-a7e0ac835470 | cirros-0.3.1-x86_64-uec         | ACTIVE |        |
| 8af603da-b69f-49c6-8e52-25632eccb31c | cirros-0.3.1-x86_64-uec-kernel  | ACTIVE |        |
| fe67d4e1-baca-4968-8638-2314373b620b | cirros-0.3.1-x86_64-uec-ramdisk | ACTIVE |        |
+--------------------------------------+---------------------------------+--------+--------+

$ nova image-delete caa6c969-0f32-466b-8e8e-a7e0ac835470

$ nova image-delete caa6c969-0f32-466b-8e8e-a7e0ac835470
ERROR: The server has either erred or is incapable of performing the requested operation. (HTTP 500) (Request-ID: req-1254f8a5-8dda-444a-a077-2072ab3baa6a)

If you delete a deleted image, the server should respond with '403 Forbidden'
because the image still exists and no user is allowed to delete a deleted image.

The fix is to catch the exception from the image service and
convert it to a wsgi exception for '403 Forbidden'.

Change-Id: I2f14687d5468b67389f5dd6ab338ceb54e8a29bb
Remove uses of instance['instance_type'] from powervm driver.

This is one change in a series aimed at removing the use of instance-linked
instance_type objects, in favor of the decoupled type data in
system_metadata. See bug 1140119 for more details.

Change-Id: I885a807d00f7f909665da6e7a3382295a43258c9
Remove uses of instance['instance_type'] from libvirt driver.

Note that this includes a few tweaks to the libvirt tests where the instance
type in use was expected to have no swap, but the actual id-matching fake
did. This integration makes it a little harder for the tests to be out
of whack like that, which is good.

This is one change in a series aimed at removing the use of instance-linked
instance_type objects, in favor of the decoupled type data in
system_metadata. See bug 1140119 for more details.

Change-Id: I190258bd0947944d9bcdf49956eed40d402606f5
Fix instance type cleanup when doing a same-id migration

Previously, we assumed that we were moving from one flavor to another during
a migration (i.e. a resize). That assumption failed when a regular migration
went to delete the old_ stashed instance types from system_metadata.

This unifies the cleanup logic, which only gets performed if we're actually
doing a resize.

Fixes bug 1136768

Change-Id: I0796864b044fc746583164e4a684f79dc431c137
Add MultipleCreate template and fix conflict with other templates

This patch creates a dedicated xml template to the os-multiple-create extension
when using return_reservation_id=True in the request. The previous code, with
all extensions loaded, conflicted with security_groups extension.

There is also a change in the response due to the new Template, but the only
information removed is an empty metadata field (which made the previous xml
output even more inconsisten with json). The consistency between json and xml
will be treated in the next api version.

DocImpact

Fixes bug 1149526

Change-Id: I3ca0129086ff1df3a8faa2b3b8bd959c9b74103c
Make 'os-hosts/node1' case sensitivity defer to DB

RPC is case sensitive, but URL is not, and DB can be. So pull host_name from DB
in HostAPI RPC layer instead of from passed in from URL.  This means RPC will
always get the proper capitalization, and case sensitivity is defined in DB layer.

Fix bug 996879

Change-Id: I448dd4ec3aec4af1adf4487f26ea996db572fa3d
add .idea folder to .gitignore pycharm creates this folder

Change-Id: Icbeabe1d3e102d9e447f46be96280e61aa364b74
Fix for delete error in Hyper-V - missing CONF imports

Looks like we need to import the options explicitly

Fix for LP# 1140759

Change-Id: I21c09330c209f4e2178b6c0a6300944cd58d4423
Make nova-manage db archive_deleted_rows more explicit

* max_rows must be positive
    Provide a better error message of 'nova-manage db archive_deleted_rows
    --max_rows=' is negative.
* Requires a max_rows
* No hidden default of 5000

Fix bug 1145609
Fix bug 1151064

Change-Id: I9078ff2700a0329ac4aff68bb434be5f16a5a3f1
Check CONF values *after* command line args are parsed

CONF.ssl_only will contain the default value till
parse_args is called.

Fix for LP# 1123540

Change-Id: Ib80d39b883c8ce2d6b813ca2b76051dd95ffb2b6
Fix instance evacuate with shared storage

Fixes instance evacuation problem when --on-shared-storage flag
specified. The problem occurs as the password variable ends up being
accessed before it is assigned. Also adds missing test case.

Fixes bug 1152492

Change-Id: I461c0f7fcf8835028f7529a7860fb330d1759d68
Fix Wrong syntax for set:tag in dnsmasq startup option

Looks like the introduction of quotes in fix for previous
bug 1012443 was erroneous.

Fixes LP# 1152504

Change-Id: Ic84739e38e3b3567f1617302a33623de03196f85
Correct substring matching of baremetal VPD node names

This path corrects a issue where is_power_on function can incorrectly match a
node if its name is a substring of another node.

I have also added a test for this.

fixes bug 1152676
Change-Id: Ic3b0b952d53dcd4464098f98879a84684efe22b2
Authored-by: Chris Krelle <nobodycam@gmail.com>
Remove uses of instance['instance_type'] from nova/compute

Note that some tests were verifying things that can no longer fail, namely
rebuilding instances who use flavors that have since been disabled. These
tests are removed here.

Also, this changes the order of a piece of logic in the resize/migrate
path where before we would have ended up checking the instance type that
we fetched from sys_meta to see if it was disabled (which makes no sense
now). Reversing the check (to see if we're doing a resize or a migrate
before checking the new flavor) eliminates the problem of the stashed
type not having the 'disabled' attribute.

This is one change in a series aimed at removing the use of instance-linked
instance_type objects, in favor of the decoupled type data in
system_metadata. See bug 1140119 for more details.

Change-Id: I214a693e3bb16c0a365eb9b3afe73601beba4a22
Remove uses of instance['instance_type'] from nova/network

This is one change in a series aimed at removing the use of instance-linked
instance_type objects, in favor of the decoupled type data in
system_metadata. See bug 1140119 for more details.

Change-Id: I43c9e9b7d560d8803899360bd7142e393b793f3d
Remove uses of instance['instance_type'] from nova/api

This removes a test that attempted to delete the data from the
instance['instance_type'] structure and confirm that the flavor can
still be fetched. Since this data is no longer consulted in that
action (and will be removed altogether soon), this test is removed.

This is one change in a series aimed at removing the use of instance-linked
instance_type objects, in favor of the decoupled type data in
system_metadata. See bug 1140119 for more details.

Change-Id: I3ba56f9419aece5b9269a181264d09b117ecdb81