docs/drivers/virtualbox/vm.go

42 lines
630 B
Go

package virtualbox
import "strconv"
type VM struct {
CPUs int
Memory int
}
func getVMInfo(name string, vbox VBoxManager) (*VM, error) {
out, err := vbox.vbmOut("showvminfo", name, "--machinereadable")
if err != nil {
return nil, err
}
vm := &VM{}
err = parseKeyValues(out, reEqualLine, func(key, val string) error {
switch key {
case "cpus":
v, err := strconv.Atoi(val)
if err != nil {
return err
}
vm.CPUs = v
case "memory":
v, err := strconv.Atoi(val)
if err != nil {
return err
}
vm.Memory = v
}
return nil
})
if err != nil {
return nil, err
}
return vm, nil
}