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 var storageDevices []vz.StorageDeviceConfiguration
for i, d := range cfg.disks { for i, d := range cfg.disks {
var id, diskPath string var id string
if i != 0 { if i != 0 {
id = strconv.Itoa(i) 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 == "" { 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 == "" { if d.Path == "" {
return fmt.Errorf("disk specified with no size or name") 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( diskImageAttachment, err := vz.NewDiskImageStorageDeviceAttachment(
diskPath, d.Path,
false, false,
) )
if err != nil { if err != nil {