Skip to content

Commit fc56eaf

Browse files
author
Roman Sysoev
committed
feat(vd): remove finalizer from unmounted vd
`vd-protection` will be removed from the virtual disk if the virtual machine is stopped. Signed-off-by: Roman Sysoev <roman.sysoev@flant.com>
1 parent d6d0828 commit fc56eaf

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

  • images/virtualization-artifact/pkg/controller/vd/internal

images/virtualization-artifact/pkg/controller/vd/internal/protection.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,17 @@ func (h ProtectionHandler) Handle(ctx context.Context, vd *virtv2.VirtualDisk) (
4343
case len(vd.Status.AttachedToVirtualMachines) == 0:
4444
log.Debug("Allow virtual disk deletion")
4545
controllerutil.RemoveFinalizer(vd, virtv2.FinalizerVDProtection)
46+
case len(vd.Status.AttachedToVirtualMachines) != 0:
47+
unmounted := true
48+
for _, vm := range vd.Status.AttachedToVirtualMachines {
49+
if vm.Mounted {
50+
unmounted = false
51+
}
52+
}
53+
if unmounted {
54+
log.Debug("Allow virtual disk deletion")
55+
controllerutil.RemoveFinalizer(vd, virtv2.FinalizerVDProtection)
56+
}
4657
case vd.DeletionTimestamp == nil:
4758
log.Debug("Protect virtual disk from deletion")
4859
controllerutil.AddFinalizer(vd, virtv2.FinalizerVDProtection)

0 commit comments

Comments
 (0)