From c6aaac45084170b40d92e1bdb1428787b14f6e3d Mon Sep 17 00:00:00 2001 From: Anton Sergunov Date: Wed, 26 Feb 2025 13:10:02 +0600 Subject: [PATCH] thin id is optional Signed-off-by: Anton Sergunov --- .../agent/src/internal/controller/llv/reconciler.go | 11 +++++++---- images/agent/src/internal/type.go | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/images/agent/src/internal/controller/llv/reconciler.go b/images/agent/src/internal/controller/llv/reconciler.go index 7bf49853..c736fb1e 100644 --- a/images/agent/src/internal/controller/llv/reconciler.go +++ b/images/agent/src/internal/controller/llv/reconciler.go @@ -608,13 +608,16 @@ func (r *Reconciler) deleteLVIfNeeded(ctx context.Context, vgName string, llv *v if err != nil { err = fmt.Errorf("dumping thin pool map: %w", err) r.log.Error(err, fmt.Sprintf("[deleteLVIfNeeded] can't find pool map for LV %s in VG %s", llv.Spec.ActualLVNameOnTheNode, vgName)) - return false, err + return true, err } - - ranges, err := utils.ThinVolumeUsedRanges(ctx, r.log, superblock, utils.LVMThinDeviceID(lv.Data.ThinID)) + if lv.Data.ThinID == nil { + err = fmt.Errorf("missing deviceId for thin volume %s", llv.Spec.ActualLVNameOnTheNode) + return true, err + } + ranges, err := utils.ThinVolumeUsedRanges(ctx, r.log, superblock, utils.LVMThinDeviceID(*lv.Data.ThinID)) if err != nil { err = fmt.Errorf("finding used ranges for deviceId %d in thin pool %s", lv.Data.ThinID, lv.Data.PoolName) - return false, err + return true, err } usedRanges = &ranges } diff --git a/images/agent/src/internal/type.go b/images/agent/src/internal/type.go index d456d5b5..cb7b42ba 100644 --- a/images/agent/src/internal/type.go +++ b/images/agent/src/internal/type.go @@ -157,7 +157,7 @@ type LVData struct { CopyPercent string `json:"copy_percent"` ConvertLv string `json:"convert_lv"` LvTags string `json:"lv_tags"` - ThinID uint64 `json:"thin_id"` + ThinID *uint64 `json:"thin_id,omitempty"` MetadataLv string `json:"metadata_lv"` LVDmPath string `json:"lv_dm_path"` }