Add a "flat_volume" api to break dependency between a volume created from a snapshot and its parent snapshot

Registered by Xiaoxi Chen

For some backends such like ceph and nexenta , they use CoW/Layering mechanism for cloning, that introduce a dependency between child volume and its parent snapshot/volumes. I want to add a flat_volume api extenssion(include api extension and also a dummy implementation in volume/driver.py), that willing to allow user to flat the child volume , thus remove the dependency.
Currently ,with such dependency, user cannot delete the parent volume/snapshot unless they deleted all child volumes cloned from them.This may not make sense for some use cases such like a tenant admin want to delete a base volume image,but there are still some running VMs using the child volumes.
With the flat_volume api(and also its implementation in backend driver), it allow such use case.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Xiaoxi Chen
Direction:
Needs approval
Assignee:
Xiaoxi Chen
Definition:
Obsolete
Series goal:
None
Implementation:
Good progress
Milestone target:
None
Started by
Xiaoxi Chen
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.

Gerrit topic: https://review.openstack.org/#q,topic:bp/add-flat-volume-api,n,z

Addressed by: https://review.openstack.org/33579
    Draft code for bp add-flat-volume-api blueprint add-flat-volume-api Change-Id:Ic6c1fe19cd2ee777548a4e67fd75f0438f2760da

NetApp drivers have no need for dependencies between volumes and snapshots or volumes created from snapshots, so this would be a welcome addition.

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.