Delete capsule volumes properly

On capsule deletion, iterate all containers inside the container
and detach all volumes in each container.

Change-Id: Id710af2342279b754708e2583d8fe1c90cf2d9ee
Closes-Bug: #1817489
This commit is contained in:
Hongbin Lu 2019-02-24 23:06:22 +00:00
parent dd933447c0
commit d5faacb333
1 changed files with 10 additions and 0 deletions

View File

@ -396,7 +396,17 @@ class Manager(periodic_task.PeriodicTasks):
volmap.cinder_volume_id)
volmap.destroy()
def _detach_volumes_for_capsule(self, context, capsule, reraise):
for c in (capsule.init_containers or []):
self._detach_volumes(context, c, reraise)
for c in (capsule.containers or []):
self._detach_volumes(context, c, reraise)
def _detach_volumes(self, context, container, reraise=True):
if isinstance(container, objects.Capsule):
self._detach_volumes_for_capsule(context, container, reraise)
return
volmaps = objects.VolumeMapping.list_by_container(context,
container.uuid)
for volmap in volmaps: