Add git commit message validation to hacking.py

Adds N801: git commit title should provide a description

Change-Id: Ic6334b20f5f06631b7a5579a4d1b2303685463eb
Adds non_inheritable_image_properties flag.

Some image-properties should not be inherited from the instance when
taking a snapshot because we want that functionality to only available
for the base-image, not subsequent snapshots.

As an example, we would like 'cache_in_nova' fast-cloning to be
available just for base-images and not customer snapshots created off a
base-image.

This patch adds a new configuration which allows operators to, at
runtime, select which image-properties should not be inherited by newly
created snapshots.

Change-Id: I8d7781b05ffd71a59ba69fb7c3df4616cba94cce
Updates migration 111 to work w/ Postgres.

Updates migration 111 so that we drop the aggregate_hosts_host_key
unique constrain by name.

Fixes LP Bug #1027453

Change-Id: Ibe36eace6a2d5d5a8d8d03d2cb170cbe0056320e
Avoid unrecognized content-type message

Fixes bug #904473

If the client does not include a Content-type header in its request
(which is normal for e.g. GET and DELETE) then eventlet will pass us
'text/plain'.

Because 'text/plain' isn't one of our supported request content types
we log:

  Unrecognized Content-Type provided in request

This can be an annoying red-herring for people debugging issues.

The reason that eventlet defaults to text/plain is because it uses
the mimetools.Message.gettype() method:

  Message.gettype()
    Return the message type [..] as specified in the Content-Type
    header. If no such header exists, return 'text/plain'.

The wsgiref web server has the same behavior, whereas mod_wsgi will
pass no content-type and twisted will pass an empty string.

Make our code more robust by treating the empty string or text/plain
as if no content-type header was supplied.

Change-Id: Ide117c807db0dc0f5cbe974788b604b5e236800a
Adding networking rules to vm's on compute service startup

Fixes bug 1027105

Restarting nova-compute resulted in a new empty iptables chain
"nova-compute-FORWARD" being create. This commit adds a single
call to plug_vifs which ensures the appropriate filters (and
bridge) are present on service startup.

Change-Id: I51cbb56acbb244ddddd951a26d3168cf5a9c0314
Remove unused add_network_to_project() method

This method was added here:

  https://code.launchpad.net/~tr3buchet/nova/multi_nic/+merge/64767

but appears never to have been used.

We can safely remove it and the 'force' parameter to network_associate()
which only it uses.

This removal from the network service RPC API would not warrant a
major version number bump since nothing ever used this part of the
API.

Change-Id: Iba3cf7b61b629ba513a58a38886c9322818accb5
Make it clear subnet_bits is unused in ipam case

In NetworkManager.create_networks(), the subnet_bits variable is unused
where 'ipam' is passed as a parameter - i.e. when the method is called
from QuantumNovaIPAMLib. This is because in the ipam case we never
carve up the IP range into multiple networks.

Move the variable around so that its usage scope is more obvious.

Change-Id: I2a1a2cb63f9864c15b33b30f1bf995a50a6ec067
Add image_name to create and rebuild notifications

Fixes bug 1027197

Without image_name in notifications, one has to use the image_ref
and hit glance again.
The create and rebuild functions already contain image_metadata, hence
adding the image_name in their notification can prevent additional
call to glance.

Change-Id: I3813eafa24b125575bcdceac8d30ab6bd909cfe4
use boto's HTTPResponse class for versions of boto >=2.5.2

Fixes bug: 1027984

Change-Id: I2101ddaa78ede90f39b55d28aab73e7f5a816af5
Merge "Avoid unrecognized content-type message"
Implements config_drive as extension

Adding config drive as an extension allows users to turn it off in case they
do not want to use it. Config drive was not intended to be a part of the core
functionality.

Fixes bug 833331

Change-Id: Icf4b5a21d8cc9df0f140a1a87908ff48c447004b
Return 404 when attempting to remove a non-existent floating ip

This fixes bug 993774 and returns 404 instead of 202 when trying to
delete a floating ip from an instance to which it is not allocated.

Change-Id: I9538a8a71cbbb9d19e9ebb76f93b180dbf619764
Merge "Adds non_inheritable_image_properties flag."
Update jsonutils from openstack-common.

commit 9e1bd9d9313a9f324c5b7b02232e8bd2fd12ea8a
Author: Russell Bryant <rbryant@redhat.com>
Date:   Wed Jul 18 16:47:34 2012 -0400

    Add missing convert_instances arg.

    When calling jsonutils.to_primitive() recursively, the convert_instances
    argument should be passed along.  This change fixes one place where it
    was not.

commit 2d6f84742a3e8ea51ebbfb82cbeacefe97e199d5
Author: Russell Bryant <rbryant@redhat.com>
Date:   Wed Jul 18 16:15:52 2012 -0400

    Track to_primitive() depth after iteritems().

    Change jsonutils.to_primitive() to increase the recursion depth counter
    when calling to_primitive() on the result of iteritems() from the
    current element.  Previously, the only time the counter was increased
    was when converting the __dict__ from an object.  The iteritems() case
    risks cycles, as well.

    I hit a problem with this when trying to call to_primitive on an
    instance of nova.db.sqlalchemy.models.Instance.  An Instance includes a
    reference to InstanceInfoCache, which has a reference back to the
    Instance.  Without this change, to_primitive() would raise an exception
    for an Instance due to excessive recursion.

    Related to nova blueprint no-db-messaging.

Change-Id: Iaa49ea08b406a38840e8a0b5466d48f2d3f7e840
Merge "Return 404 when attempting to remove a non-existent floating ip"
Merge "Remove unused add_network_to_project() method"
Merge "Make it clear subnet_bits is unused in ipam case"
Fix wrong regex in cleanup_file_locks.

The sentinel filename actually has form hostname-threadid.pid,
not hostname.threadid-pid.
Launchpad bug 1018586.
Change-Id: I09c01e0e63ee704b1485c196dc0b396ee03b2e5c
Merge "use boto's HTTPResponse class for versions of boto >=2.5.2"
Merge "Adding networking rules to vm's on compute service startup"