mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
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:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user