Select Git revision
Forked from
algorithmique / cours
Source project has a limited visibility.
vmReboot.go 1014 B
package cmdVM
import (
libclient "nexus-libclient/vm"
u "nexus-client/utils"
)
type Reboot struct {
Name string
}
func (cmd *Reboot) GetName() string {
return cmd.Name
}
func (cmd *Reboot) GetDesc() []string {
return []string{
"Gracefully reboots one or more VMs.",
"If not the VM's owner: requires VM_REBOOT VM access capability or VM_REBOOT_ANY user capability."}
}
func (cmd *Reboot) PrintUsage() {
printRegexUsage(cmd)
printRegexUsageDetails()
}
func (cmd *Reboot) Run(args []string) int {
argc := len(args)
if argc < 1 {
cmd.PrintUsage()
return 1
}
vms, err := getFilteredVMs(libclient.GetRebootVMs, 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.VMReboot(vm.ID.String())
if err != nil {
u.PrintlnErr(err)
statusCode = 1
} else {
u.Println("Sent reboot message to VM \"" + vm.Name + "\"")
}
}
return statusCode
}