From: Jay S. Bryant Date: Wed, 4 Dec 2013 03:31:17 +0000 (-0600) Subject: delete.start/delete.end notification for hostless X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=a347b99c261dc1c761a8bc51c2aee99d20161ca6;p=openstack-build%2Fcinder-build.git delete.start/delete.end notification for hostless Third party GUIs may rely on notifications to track the progress of volume creation and deletion. In the case that a volume is being deleted after a failed attempt to create (the volume is listed in the database but is not actually resident in a backing store) the path that is taken in volume.api.delete() makes no notifications of deletion occurring. This patch adds a volume_utils.notify_about_volume_usage call to the beginning and end of the delete with a delete.start and delete.end respectively. The notifications serve as triggers for GUIs to refresh the state of the volume. This change makes the hostless delete path's functionality more consistent with the other paths through the delete code. Change-Id: I091b9d277834b341105569d41a48ef5c1fc105ce Closes-Bug: 1257053 --- diff --git a/cinder/volume/api.py b/cinder/volume/api.py index 7b4dd70da..7958fbe45 100644 --- a/cinder/volume/api.py +++ b/cinder/volume/api.py @@ -41,6 +41,7 @@ from cinder import units from cinder import utils from cinder.volume.flows import create_volume from cinder.volume import rpcapi as volume_rpcapi +from cinder.volume import utils as volume_utils from cinder.volume import volume_types from cinder.taskflow import states @@ -193,6 +194,8 @@ class API(base.Base): volume_id = volume['id'] if not volume['host']: + volume_utils.notify_about_volume_usage(context, + volume, "delete.start") # NOTE(vish): scheduling failed, so delete it # Note(zhiteng): update volume quota reservation try: @@ -210,6 +213,9 @@ class API(base.Base): if reservations: QUOTAS.commit(context, reservations, project_id=project_id) + + volume_utils.notify_about_volume_usage(context, + volume, "delete.end") return if not force and volume['status'] not in ["available", "error", "error_restoring",