Ensure that FORWARD rule also supports DHCP

The previous fix only addressed the INPUT rules and not the
FORWARD rule.

Adds FORWARD rule to ensure that DHCP traffic is forwarded correctly.

Fixes bug 1131223

Change-Id: Ie0d365ba1ba1014bdd2bfc944123c17c4e415d6e
Updating powervm driver snapshot with update_task_state flow

Fixes bug 1136359

Without this change snapshot still works but instance task state
does not get updated correctly and nova logs will show expected
task state erros from compute manager.

Also added a snapshot test.

Change-Id: I0f4ed24aa82a66fafc4b6813d017618ae07b4751
Fixes disk size issue during image boot on Hyper-V

Fixes bug: 1135155

The local root disk size provided in the instance flavor was not properly
taken into account in the Hyper-V driver, this patches provides a
fix for this feature.

In order to resize VHD images with differencing disks (CoW), the cached
base disk is copied to a new file, which is resized to the size
specified in the flavor and cached. This is necessary due to the fact that
differencing VHD disks cannot be resized.

The procedure described above is applied during image spawn, resize and
live migration as needed.

Trying to spawn an instance with a local root disk size smaller than the
image VHD max. internal size will result in an error.

Change-Id: I04f18f0e25c92ed1e1f9f6f18750329a3f9f1711
Imporove db.sqlalchemy.api._validate_unique_server_name method

This method is called by instance_create and instance_update.
If parameter CONF.osapi_compute_unqiue_server_name_scope is set to
'global' or 'project' then it has terrible performance.

Algorithm was next:
1) Get all instances and all connected data (5 joinloads..) in global
   (or project).
2) Compare hostname with hostnames in instances (locally)

Now:
1) Get only count of instances with same hostname in global (or project).
2) If count > 0 raise Exception.

Change-Id: I35ea121c3f906b4fff11c38bafa2ab33200bd6b2
Rename source_(group_id/ip_prefix) to remote_(group_id/ip_prefix)

Fixes bug 1144426

Change-Id: I28735aea05738487861e477aaa3b0a3cec081821
Baremetal deploy helper sets ODIRECT.

Baremetal deploy helper should set oflag=direct when dd'ing images onto
iSCSI targets, so that it doesn't waste the local page cache.

Fixes bug 1114633.

Change-Id: Ia674afb34aff7b842cfcd520ecb7b75dc21944fa
Rename VMWare to VMware

DocImpact

VMware compute drivers include VMwareESXDriver and VMwareVCDriver

Change-Id: I2e02560831fbac254d6daf2cb8fbe2c80568ba3a
Adjusts reclaim instance interval of deferred delete tests

All deferred delete tests set reclaim_instance_interval to 1. This is
fine for the test_deferred_delete test that depends on the periodic
task _reclaim_queued_deletes to run.

For the other tests however, in the unlikely event that the periodic
task do run before the tests are done, it will interfere with the tests
by terminating the instance in the middle of it.

By setting the interval longer than the actual test run, this can be
avoided.

Resolves bug 1146510.

Change-Id: I606cd9f3277cc86cf4f9811da2a10efc7433b9d0
Standarize ip validation along the code

Details:
 - Use the nova/utils.py validations along the code
 - refactor ipv4 validator to looks like ipv6 validator
 - interprets ip validations exceptions as Invalid IP values

Change-Id: Ia506c00510a066e167d3dcd9dd371a371129a9dd
Fix 'to integer' conversion of max and min count values

Until now when you used values non-integer to max_count and/or min_count the
coercion worked like: min_count = int(2.5) so min_count received 2 instead of
raise bad request.

Convert to string before coerce to int solves the problem since int coercion
cannot convert from a string which is not a perfect int.

Change-Id: Ifaa9910e13614554d1769e71e8eba9587ec5a13b
Merge "Standarize ip validation along the code"
Merge "Rename VMWare to VMware"
Merge "Baremetal deploy helper sets ODIRECT."
Merge "Ensure that FORWARD rule also supports DHCP"
Merge "Fix 'to integer' conversion of max and min count values"
Moves Hyper-V options to the hyperv section

Fixes Bug: 1140778

Due to the large number of options available in Nova, in order to
achieve better option organization and naming (e.g. avoid the hyperv_*
prefix) and to avoid option name clashes, options specific to the
Hyper-V driver are moved to a section named "hyperv".

Backwards compatibility is mantained by providing the "deprecated_group"
argument in option definitions.

For case consistency the group name as been changed to "hyperv" for options
introduced in Grizzly belonging to the group "HYPERV"

Change-Id: If2710822cdf6e4ae108a6d1e7977735ac8104a2e
Don't traceback in the API on invalid keypair.

When trying to get a keypair that did not exist, a traceback would end
up in the nova-api log.  Handle this exception in the API extension so
that it doesn't make a mess of the log.

Also add a unit test for this particular scenario.

Fix bug 1145545.

Change-Id: Id1647d4ac56629c2931099320d271e34fc2f99b9
Fix issues with re-raising exceptions.

There is complication with re-raising exceptions and our usage of
eventlet.  If the code in the exception handler accesses the db or rpc
in the exception handler, it will no longer be able to re-raise the
exception.  Using excutils.save_and_reraise_exception() works aorund
this issue.

The most common error is calling LOG.error() or LOG.exception(), as it
is possible for these to go access rpc.  There is an option to turn on
notifications for these errors.

Fix bug 845866.

Change-Id: Icfca2af63805711229249aa7abe60a938edd1b35
Merge "Imporove db.sqlalchemy.api._validate_unique_server_name method"
Remove parameters containing passwords from Notifications.

compute.manager methods often takes password parameters in methods
that are wrapped with exception handlers and notifiers. What can
happen is these passwords will get bundled up and sent outside of
the system.

This patch will strip out any parameter with *_pass* in the name.

The side effect of this is that all notification will have the
error parameters in the 'args' part of the notification payload.
Previously only the positional args were in the 'args' part and
keyword args were placed in the payload directly.

This may affect consumers of the error notifications.

Change-Id: I2e7822eb5416d315ceb690f739e4dba9d52a7954