Verify the disk file exists before running qemu-img on it.

Should resolve bug 955788, although it is a little hard to tell
because the bug is so old.

Change-Id: Ic0c47f4b6181f56a98cf58d4ebe2cc926d06d524
Add two tests for resize action in ServerActionsControllerTest.

Add test_resize_not_found for NotFound;
and test_resize_with_too_many_instances for TooManyInstances.

Fix bug #1089417

Change-Id: I18dda1129e1bb3d411bb8a5dab9474d67fcb18fd
Sync rpc and notifier from oslo-incubator.

This patch syncs the latest changes to rpc and notifier from
oslo-incubator.  The most significant changes are for adding support for
a message envelope for all messages, including notifications, sent via
rpc.

Related oslo-incubator reviews:

    https://review.openstack.org/#/c/17554/
    https://review.openstack.org/#/c/18057/

Note that a new notifier module was added: rpc_notifier2, which when
used, sends notifications out with a message envelope.

DocImpact.

Implements bp version-rpc-messages.

Change-Id: I495c224d0c502086ce3db6c078d48829b8d913a6
Support cinderclient http retries.

HTTP retries were recently added to cinderclient. This adds the
config option required to use it. The default (unchanged) behavior
is 0 retries.

Change-Id: Ia7ad831045e8df9ad9c22f0119ae3485d91ad949
Conductor instance_get_all replaces _by_filters

Updates the Nova conductor so that it uses instance_get_all()
and instance_get_all_by_host() from the Nova DB API to
implement its own like named functions.

This fixes a regression that occured in d22b0ca where we switched
from using the DB API's instance_get_all_by_host and instance_get_all
methods over to the DB APIs instance_get_all_by_filters.

This caused some subtle regressions due to the fact that
instance_get_all_by_filters has different defaults for
deleted records.

The previously used (prior to d22b0ca) instance_get_all() and
instance_get_all_by_host() functions rely on the context.read_deleted
and also handle the display of deleted and soft deleted records differently.

Fixes LP Bug #1096972.

Change-Id: Icb587ef169d1d7dd86cf6ee682e74bd4e84c37e2
Add exception handler for previous deleted flavor.

An exception happens if a previous flavor is deleted and
'nova resize-revert' run, because 'nova resize-revert' does
not handle the deleted flavor.
And also we have the same problem in _update_usage_from_migration().
This patch fixes the problems.

How to reproduce the problem on DevStack:
  $ nova flavor-create sample 10 512 0 2
  $ nova boot --image cirros-0.3.0-x86_64-uec --flavor sample test01
  $ nova resize test01 m1.tiny
  $ nova flavor-delete 10
  $ nova resize-revert test01

Before applying this patch:
  $ nova resize-revert test01
  ERROR: The server could not comply with the request since it is
  either malformed or otherwise incorrect. (HTTP 400) (Request-ID:
  req-b0d3e016-9608-4a87-a0cc-44dfe00b25a1)
  $

After applying this patch:
  $ nova resize-revert test01
  ERROR: Flavor used by the instance could not be found. (HTTP 400)
  (Request-ID: req-ed4ce174-33f2-4258-b522-674a1023ea74)
  $

Fixes bug 1091490

Change-Id: I39dd23a7565ae66544e8bc2aa7ad3299eb61bfcc
powervm: Implement snapshot for local volumes

Snapshot local volumes by copying the logical volume on VIOS,
gzip the file, transfer to compute service node, and
finally upload to glance. PEP8 and string concatenation fixes.
Added utility to powervm.common for constructing UNIX file paths.
Added unit tests for new utility.

bp powervm-compute-enhancements

Change-Id: Ie6bafbeef75a9464457d78d2997be78346d3ab24
Add api extension to get and reset password

Password is stored in system_instance_metadata as four items with the
keys 'password_0' through 'password_3'. The extension adds a resource
endpoint with two methods:

GET v2/servers/<uuid>/os-server-password  # get_password
DELETE v2/servers/<uuid>/os-server-password # reset_password

get_password retuns:

JSON: {"password": "xxx"}
XML: <?xml version='1.0' encoding='UTF-8'?><password>xxx</password>

Note that this is intended to be an encrypted password set by the
guest. Includes api tests for json and xml. Also includes api samples.

Part of blueprint get-password

Change-Id: I6c03f9c3bc8a2c70403bbb3e57917ab9522d75bd
fix N401 errors, stop ignoring all N4* errors

We had previously been ignoring all our custom N4xx hacking.py
errors. This fixes all the N401 errors "doc strings
should not start with a space" and reduces the ignore set down
to N402 only "single line docstrings should end with period".

It also fixes the N401 parser to catch only docstrings, and
not tripple quoted string blocks used later on in a function.

Clean up a few of the more crazy uses of """ in our code

Clean up additional funky comments to make indents a bit more
consistent, and pull in lines when possible.

Change-Id: I9040a1d2ca7efda83bd5e425b95d1408b5b63577
attach/detach_volume() take instance as a parameter

Previously the methods take instance['name'] as a parameter.
With this change, ComputeDriver can lookup informations about
the instance from hypervisor (in bare-metal driver, it is a local DB)
by any other attributes of the instance.

blueprint general-bare-metal-provisioning-framework

Change-Id: Ibd0567f34ed5053909ce1a408f9cbf87516ba597
Remove unused osapi_path option

This has been unused since deprecated auth was removed. It looks like
we intended to remove this in commit ea06eff7.

Change-Id: I7a5868c42300ba92d5c8f528a447cfe3fbace297
Move global glance opts into nova.image.glance

Move the glance_host, glance_port and glance_protocol options into the
nova.image.glance module.

Also move the generate_glance_url() and generate_image_url() utility
methods there since they're the only uses of the options outside of the
module.

blueprint: scope-config-opts
Change-Id: I3beca1a65cdd902a94ddc1c512d79a4de635ef38
Move global s3 opts into nova.image.s3

s3_host and s3_port are only used in nova.image.s3.

blueprint: scope-config-opts
Change-Id: Ia841406ebe7c03b2a58392e2453118e2646ad7ce
Move cert_topic into nova.cert.rpcapi

The cert_topic opt is only used in nova.cert.rpcapi and it makes sense
for the RPC module to "own" the topic option.

blueprint: scope-config-opts
Change-Id: If3584b8e1984e0425d9f33133f9d291739b04d49
Move network_topic into nova.network.rpcapi

The network_topic opt is only used in nova.network.rpcapi and it makes
sense for the RPC module to "own" the topic option.

blueprint: scope-config-opts
Change-Id: Icd779f34df47ac6dd048b3e41995e872d8859872
Move console_topic into nova.console.rpcapi

Even though the console_topic opt is used outside nova.console.rpcapi,
it makes sense for the RPC module to "own" the topic option.

blueprint: scope-config-opts
Change-Id: I0f00927ca1c0bba7b21315240165e83e7075ebb7
Move scheduler_topic into nova.scheduler.rpcapi

The scheduler_topic opt is only used in nova.scheduler.rpcapi and it
makes sense for the RPC module to "own" the topic option.

blueprint: scope-config-opts
Change-Id: Iafb8705eb716b650b63e060fe1dd36666bcee812
CLI for bare-metal database sync.

Part 3 of 6: blueprint general-bare-metal-provisioning-framework.

Change-Id: Ia19ce00edb84aa924c2ab2c9c2217f6b49073d69
Co-authored-by: Mikyung Kang <mkkang@isi.edu>
Co-authored-by: David Kang <dkang@isi.edu>
Co-authored-by: Ken Igarashi <igarashik@nttdocomo.co.jp>
Co-authored-by: Arata Notsu <notsu@virtualtech.jp>
Merge "Sync rpc and notifier from oslo-incubator."
Merge "Add two tests for resize action in ServerActionsControllerTest."