Skip to content

Commit c6fb9fe

Browse files
authored
fix(vi,cvi): fix cleanup for CVI and VI when creating from vd (#996)
Signed-off-by: Dmitry Lopatin <dmitry.lopatin@flant.com>
1 parent e54f17e commit c6fb9fe

2 files changed

Lines changed: 28 additions & 22 deletions

File tree

images/virtualization-artifact/pkg/controller/cvi/internal/source/object_ref_vd.go

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -240,18 +240,21 @@ func (ds ObjectRefVirtualDisk) Validate(ctx context.Context, cvi *virtv2.Cluster
240240
if vd == nil || vd.Status.Phase != virtv2.DiskReady {
241241
return NewVirtualDiskNotReadyError(cvi.Spec.DataSource.ObjectRef.Name)
242242
}
243+
if cvi.Status.Phase != virtv2.ImageReady {
244+
inUseCondition, _ := conditions.GetCondition(vdcondition.InUseType, vd.Status.Conditions)
245+
if inUseCondition.Status != metav1.ConditionTrue || !conditions.IsLastUpdated(inUseCondition, vd) {
246+
return NewVirtualDiskNotReadyForUseError(vd.Name)
247+
}
243248

244-
inUseCondition, _ := conditions.GetCondition(vdcondition.InUseType, vd.Status.Conditions)
245-
if inUseCondition.Status != metav1.ConditionTrue || !conditions.IsLastUpdated(inUseCondition, vd) {
246-
return NewVirtualDiskNotReadyForUseError(vd.Name)
249+
switch inUseCondition.Reason {
250+
case vdcondition.UsedForImageCreation.String():
251+
return nil
252+
case vdcondition.AttachedToVirtualMachine.String():
253+
return NewVirtualDiskAttachedToVirtualMachineError(vd.Name)
254+
default:
255+
return NewVirtualDiskNotReadyForUseError(vd.Name)
256+
}
247257
}
248258

249-
switch inUseCondition.Reason {
250-
case vdcondition.UsedForImageCreation.String():
251-
return nil
252-
case vdcondition.AttachedToVirtualMachine.String():
253-
return NewVirtualDiskAttachedToVirtualMachineError(vd.Name)
254-
default:
255-
return NewVirtualDiskNotReadyForUseError(vd.Name)
256-
}
259+
return nil
257260
}

images/virtualization-artifact/pkg/controller/vi/internal/source/object_ref_vd.go

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -432,18 +432,21 @@ func (ds ObjectRefVirtualDisk) Validate(ctx context.Context, vi *virtv2.VirtualI
432432
if vd == nil || vd.Status.Phase != virtv2.DiskReady {
433433
return NewVirtualDiskNotReadyError(vi.Spec.DataSource.ObjectRef.Name)
434434
}
435+
if vi.Status.Phase != virtv2.ImageReady {
436+
inUseCondition, _ := conditions.GetCondition(vdcondition.InUseType, vd.Status.Conditions)
437+
if inUseCondition.Status != metav1.ConditionTrue || !conditions.IsLastUpdated(inUseCondition, vd) {
438+
return NewVirtualDiskNotReadyForUseError(vd.Name)
439+
}
435440

436-
inUseCondition, _ := conditions.GetCondition(vdcondition.InUseType, vd.Status.Conditions)
437-
if inUseCondition.Status != metav1.ConditionTrue || !conditions.IsLastUpdated(inUseCondition, vd) {
438-
return NewVirtualDiskNotReadyForUseError(vd.Name)
441+
switch inUseCondition.Reason {
442+
case vdcondition.UsedForImageCreation.String():
443+
return nil
444+
case vdcondition.AttachedToVirtualMachine.String():
445+
return NewVirtualDiskAttachedToVirtualMachineError(vd.Name)
446+
default:
447+
return NewVirtualDiskNotReadyForUseError(vd.Name)
448+
}
439449
}
440450

441-
switch inUseCondition.Reason {
442-
case vdcondition.UsedForImageCreation.String():
443-
return nil
444-
case vdcondition.AttachedToVirtualMachine.String():
445-
return NewVirtualDiskAttachedToVirtualMachineError(vd.Name)
446-
default:
447-
return NewVirtualDiskNotReadyForUseError(vd.Name)
448-
}
451+
return nil
449452
}

0 commit comments

Comments
 (0)