Add a "remove_dep" api to allow user to remove all dependency to a given volume
willing to allow user to use something like
cinder volume remove_dep <vol_id>
This API all will remove all dependency to the given volume.Including CoW snapshot and CoW child volumes.
After this call, the volume with given vol_id is safe for delete.
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- Xiaoxi Chen
- Direction:
- Needs approval
- Assignee:
- Xiaoxi Chen
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
- Started
- Milestone target:
- None
- Started by
- Xiaoxi Chen
- Completed by
- Sean McGinnis
Related branches
Related bugs
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.
>What's the difference between remove_dep and flatten vol? I thought they were the same. >Actually, remove dependency sounds more generic than flatten volume.
If a Volume A has a snapshot S, and a child volume B is cloned from S.
Cinder volume remove_dep <id of volume A> will iterate across all snapshots and child volumes of A, that's B and S in this example, so it will flat both B and S. Suppose this api will only be used by superadmin of a tenant.
Use case: admin want to remove a volume template.
Cinder volume flat <id of volume B> will only flat volume B.This may be called the owner of volume B. Actually,remove_dep may depends on this.
Use case:
1.dependency of remove_dep
2.some user just do not want a CoW mechanism , because CoW will slow down the write requests.so they can use this API to make their volume flatten.
Work Items
Dependency tree
* Blueprints in grey have been implemented.