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.
This commit is contained in:
rainzm
2020-10-23 16:39:53 +08:00
parent 13f179d0b3
commit 9daef7d97c
+10
View File
@@ -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
}