From a347b99c261dc1c761a8bc51c2aee99d20161ca6 Mon Sep 17 00:00:00 2001 From: "Jay S. Bryant" Date: Tue, 3 Dec 2013 21:31:17 -0600 Subject: [PATCH] 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 --- cinder/volume/api.py | 6 ++++++ 1 file changed, 6 insertions(+) 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", -- 2.45.2