From 6aee91f67b57e38e162e5621790dea7b126e0680 Mon Sep 17 00:00:00 2001 From: Daniil Antoshin Date: Thu, 23 Jan 2025 18:38:49 +0200 Subject: [PATCH 1/2] fix(vi): create from vd Signed-off-by: Daniil Antoshin --- .../vi/internal/source/object_ref_vd.go | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/images/virtualization-artifact/pkg/controller/vi/internal/source/object_ref_vd.go b/images/virtualization-artifact/pkg/controller/vi/internal/source/object_ref_vd.go index 4398ea0c35..084e0041ec 100644 --- a/images/virtualization-artifact/pkg/controller/vi/internal/source/object_ref_vd.go +++ b/images/virtualization-artifact/pkg/controller/vi/internal/source/object_ref_vd.go @@ -20,6 +20,7 @@ import ( "context" "errors" "fmt" + "strconv" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" @@ -87,10 +88,16 @@ func (ds ObjectRefVirtualDisk) StoreToDVCR(ctx context.Context, vi *virtv2.Virtu return reconcile.Result{}, err } + condition, _ := conditions.GetCondition(vicondition.ReadyType, vi.Status.Conditions) switch { - case isDiskProvisioningFinished(cb.Condition()): + case isDiskProvisioningFinished(condition): log.Info("Virtual image provisioning finished: clean up") + cb. + Status(metav1.ConditionTrue). + Reason(vicondition.Ready). + Message("") + vi.Status.Phase = virtv2.ImageReady err = ds.importerService.Unprotect(ctx, pod) @@ -232,8 +239,9 @@ func (ds ObjectRefVirtualDisk) StoreToPVC(ctx context.Context, vi *virtv2.Virtua quotaNotExceededCondition = service.GetDataVolumeCondition(DVQoutaNotExceededConditionType, dv.Status.Conditions) } + condition, _ := conditions.GetCondition(vicondition.ReadyType, vi.Status.Conditions) switch { - case isDiskProvisioningFinished(cb.Condition()): + case isDiskProvisioningFinished(condition): log.Info("Disk provisioning finished: clean up") setPhaseConditionForFinishedImage(pvc, cb, &vi.Status.Phase, supgen) @@ -316,10 +324,22 @@ func (ds ObjectRefVirtualDisk) StoreToPVC(ctx context.Context, vi *virtv2.Virtua Reason(vicondition.Ready). Message("") - var imageStatus virtv2.ImageStatusSize - imageStatus.Stored = vdRef.Status.Capacity - imageStatus.Unpacked = vdRef.Status.Capacity - vi.Status.Size = imageStatus + q, err := resource.ParseQuantity(vdRef.Status.Capacity) + if err != nil { + return reconcile.Result{}, err + } + + intQ, ok := q.AsInt64() + if !ok { + return reconcile.Result{}, errors.New("fail to convert quantity to int64") + } + + vi.Status.Size = virtv2.ImageStatusSize{ + Stored: vdRef.Status.Capacity, + StoredBytes: strconv.FormatInt(intQ, 10), + Unpacked: vdRef.Status.Capacity, + UnpackedBytes: strconv.FormatInt(intQ, 10), + } vi.Status.Format = imageformat.FormatRAW vi.Status.Progress = "100%" From 37aa1c2ffda369d229a12824d37a8eaa2ba5b8be Mon Sep 17 00:00:00 2001 From: Daniil Antoshin Date: Mon, 27 Jan 2025 15:53:44 +0200 Subject: [PATCH 2/2] cvi Signed-off-by: Daniil Antoshin --- .../pkg/controller/cvi/internal/source/object_ref_vd.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/images/virtualization-artifact/pkg/controller/cvi/internal/source/object_ref_vd.go b/images/virtualization-artifact/pkg/controller/cvi/internal/source/object_ref_vd.go index 64d454fb68..79e9364ed0 100644 --- a/images/virtualization-artifact/pkg/controller/cvi/internal/source/object_ref_vd.go +++ b/images/virtualization-artifact/pkg/controller/cvi/internal/source/object_ref_vd.go @@ -73,8 +73,9 @@ func (ds ObjectRefVirtualDisk) Sync(ctx context.Context, cvi *virtv2.ClusterVirt return reconcile.Result{}, err } + condition, _ := conditions.GetCondition(cvicondition.ReadyType, cvi.Status.Conditions) switch { - case isDiskProvisioningFinished(cb.Condition()): + case isDiskProvisioningFinished(condition): log.Info("Cluster virtual image provisioning finished: clean up") cb.