From 9daef7d97ca5f0344ee25762c7d163de87cfeb30 Mon Sep 17 00:00:00 2001 From: rainzm Date: Fri, 23 Oct 2020 16:36:10 +0800 Subject: [PATCH] fix(esxi): resize root disk after creating vm The root disk size set when the machine is created does not take effect, so set the root disk size after the machine is created. --- pkg/multicloud/esxi/host.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkg/multicloud/esxi/host.go b/pkg/multicloud/esxi/host.go index 5e61f7c8d3..1c2dc416c9 100644 --- a/pkg/multicloud/esxi/host.go +++ b/pkg/multicloud/esxi/host.go @@ -865,6 +865,7 @@ func (self *SHost) DoCreateVM(ctx context.Context, ds *SDatastore, params SCreat deviceChange = make([]types.BaseVirtualDeviceConfigSpec, 0, 1) // add disks + var rootDiskSizeMb int64 for _, disk := range disks { imagePath := disk.ImagePath var size = disk.Size @@ -884,6 +885,7 @@ func (self *SHost) DoCreateVM(ctx context.Context, ds *SDatastore, params SCreat return nil, errors.Wrap(err, "unable to copy system disk") } imagePath = newImagePath + rootDiskSizeMb = size } uuid, driver := disk.DiskId, "scsi" if len(disk.Driver) > 0 { @@ -942,6 +944,14 @@ func (self *SHost) DoCreateVM(ctx context.Context, ds *SDatastore, params SCreat if evm == nil { return nil, errors.Error("create successfully but unable to NewVirtualMachine") } + + // resize root disk + if rootDiskSizeMb > 0 && int64(evm.vdisks[0].GetDiskSizeMB()) != rootDiskSizeMb { + err = evm.vdisks[0].Resize(ctx, rootDiskSizeMb) + if err != nil { + return evm, errors.Wrap(err, "resize for root disk") + } + } return evm, nil }