Refactor delete snapshot api using taskflow

Registered by Rohan

Refactor the delete_snapshot api/manager code to use Taskflow (https://wiki.openstack.org/wiki/TaskFlow).
Split delete_snapshot api/manager code into tasks that rollback/recover from failures during DB operations of delete_snapshot and during Quota operations of delete_snapshot.

Delete snapshot using taskflow pseudo code

Cinder-api tasks:

class api_delete_snapshot:
def execute:
check_volume_status
update db status
def revert:
revert updated DB

class api_rpc_request:
def execute:
rpc cast to delete_snapshot

Cinder-manger tasks:

class volume_delete_snapshot:
def execute:
driver.delete_snapshot
def revert:
update db in case of failure

class volume_update_metadata:
def execute:
update_volume_glance_metadata
def revert:
quota revert

class volume_update_quota:
def execute:
reserve_quota for delete_snapshot

class volume_commit_quota:
def execute:
commit quota for delete_snapshot

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Rohan
Direction:
Needs approval
Assignee:
Shrirang Phadke
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Sean McGinnis

Related branches

Sprints

Whiteboard

(smcginnis): Marking obsolete as this has been sitting out there for a long time. If this is still needed, please submit a new bp.

None

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.