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
(cherry picked from commit a347b99c26
)
This commit is contained in:
parent
67e4b38bae
commit
56ac7e2614
|
@ -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",
|
||||
|
|
Loading…
Reference in New Issue