Select Git revision
vmStart.go 977 B
package cmdVM
import (
u "nexus-client/utils"
libclient "nexus-libclient/vm"
)
type Start struct {
Name string
}
func (cmd *Start) GetName() string {
return cmd.Name
}
func (cmd *Start) GetDesc() []string {
return []string{
"Starts one or more VMs.",
"If not the VM's owner: requires VM_START VM access capability or VM_START_ANY user capability."}
}
func (cmd *Start) PrintUsage() {
printRegexUsage(cmd)
printRegexUsageDetails()
}
func (cmd *Start) Run(args []string) int {
argc := len(args)
if argc < 1 {
cmd.PrintUsage()
return 1
}
vms, err := getFilteredVMs(libclient.GetStartVMs, args)
if err != nil {
u.PrintlnErr(err)
return 1
}
if len(vms) == 0 {
u.PrintlnErr("Error: VM(s) not found.")
return 1
}
statusCode := 0
for _, vm := range vms {
err := libclient.VMStart(vm.ID.String())
if err != nil {
u.PrintlnErr(err)
statusCode = 1
} else {
u.Println("Started VM \"" + vm.Name + "\"")
}
}
return statusCode
}