Add ability to signal and perform online volume size change

Allow Cinder to use external events to signal a volume extension.

1) Nova will then call os-brick to perform the volume extension
   so the host can detect its new size.
2) Compute driver will resize the device in QEMU so instance can detect
   the new disk size without rebooting.

This change:

* Adds the 'volume-extended' external event.
  The event tag needs to be the extended volume id.
* Bumps the latest microversion to 2.51.
* Exposes non-traceback instance action event details for
  non-admins on the microversion. This is needed for the
  non-admin API user that initiated the volume extend
  operation to be able to tell when the nova-compute side
  is complete.

Co-Authored-By: Matt Riedemann <mriedem.os@gmail.com>

Blueprint: nova-support-attached-volume-extend

Change-Id: If10cffd0dc4c9879f6754ce39bee5fae1d04f474
This commit is contained in:
Mathieu Gagné
2017-07-12 10:59:55 -04:00
committed by Matt Riedemann
parent d2d84eb102
commit bbe0f313bd
36 changed files with 759 additions and 34 deletions
+4 -1
View File
@@ -120,6 +120,9 @@ REST_API_VERSION_HISTORY = """REST API Version History:
GET & PUT ``os-quota-class-sets`` APIs response.
Also filter out Network related quotas from
``os-quota-class-sets`` API
* 2.51 - Adds new event name to external-events (volume-extended). Also,
non-admins can see instance action event details except for the
traceback field.
"""
# The minimum and maximum versions of the API supported
@@ -128,7 +131,7 @@ REST_API_VERSION_HISTORY = """REST API Version History:
# Note(cyeoh): This only applies for the v2.1 API once microversions
# support is fully merged. It does not affect the V2 API.
_MIN_API_VERSION = "2.1"
_MAX_API_VERSION = "2.50"
_MAX_API_VERSION = "2.51"
DEFAULT_API_VERSION = _MIN_API_VERSION
# Almost all proxy APIs which related to network, images and baremetal