Merge pull request #3960 from Fabsolute/fix-disk-parameter-for-virtualization

This commit is contained in:
Avi Deitcher 2024-04-12 16:50:03 +02:00 committed by GitHub
commit de79880fff
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -182,18 +182,33 @@ func runVirtualizationFramework(cfg virtualizationFramwworkConfig, path string)
var storageDevices []vz.StorageDeviceConfiguration
for i, d := range cfg.disks {
var id, diskPath string
var id string
if i != 0 {
id = strconv.Itoa(i)
}
if d.Size != 0 && d.Format == "" {
d.Format = "raw"
}
if d.Format != "raw" && d.Path == "" {
log.Fatal("Virtualization Framework currently can only create raw disks")
}
if d.Size != 0 && d.Path == "" {
diskPath = filepath.Join(cfg.state, "disk"+id+".raw")
d.Path = filepath.Join(cfg.state, "disk"+id+".raw")
}
if d.Path == "" {
return fmt.Errorf("disk specified with no size or name")
}
if _, err := os.Stat(d.Path); err != nil {
if !os.IsNotExist(err) {
return err
}
err = vz.CreateDiskImage(d.Path, int64(d.Size)*1024*1024)
if err != nil {
return err
}
}
diskImageAttachment, err := vz.NewDiskImageStorageDeviceAttachment(
diskPath,
d.Path,
false,
)
if err != nil {