From d07dd8a9300c8a7adfbe5827aaf24beab34fae24 Mon Sep 17 00:00:00 2001 From: wanyaoqi <18528551+wanyaoqi@users.noreply.github.com> Date: Sun, 9 Jul 2023 17:10:16 +0800 Subject: [PATCH] fix(host): lvm disk create from template (#17462) --- pkg/hostman/storageman/disk_lvm.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/pkg/hostman/storageman/disk_lvm.go b/pkg/hostman/storageman/disk_lvm.go index 172677c4bf..2df7a20f7f 100644 --- a/pkg/hostman/storageman/disk_lvm.go +++ b/pkg/hostman/storageman/disk_lvm.go @@ -146,6 +146,11 @@ func (d *SLVMDisk) Probe() error { return nil } +func (d *SLVMDisk) OnRebuildRoot(ctx context.Context, params api.DiskAllocateInput) error { + _, err := d.Delete(ctx, api.DiskDeleteInput{}) + return err +} + func (d *SLVMDisk) Resize(ctx context.Context, params interface{}) (jsonutils.JSONObject, error) { diskInfo, ok := params.(*jsonutils.JSONDict) if !ok { @@ -306,14 +311,8 @@ func (d *SLVMDisk) createFromTemplate( return nil, errors.Wrapf(err, "NewQemuImage(%s)", cacheImagePath) } - if size > cacheImage.SizeBytes { - if err = lvmutils.LvCreateFromSnapshot(d.GetLvPath(), cacheImagePath, cacheImage.SizeBytes); err != nil { - return nil, errors.Wrap(err, "lv create from snapshot") - } - } else { - if err = lvmutils.LvCreate(d.Storage.GetPath(), d.Id, cacheImage.SizeBytes); err != nil { - return nil, errors.Wrap(err, "lv create") - } + if err = lvmutils.LvCreateFromSnapshot(d.GetLvPath(), cacheImagePath, cacheImage.SizeBytes); err != nil { + return nil, errors.Wrap(err, "lv create from snapshot") } return d.GetDiskDesc(), nil