mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Merge pull request #8454 from rainzm/esix/disksizecreate
fix(esxi): resize root disk after creating vm
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