mirror of https://github.com/docker/docs.git
42 lines
630 B
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
|
|
}
|