Skip to content
Snippets Groups Projects
Select Git revision
  • b788907624a946172338aa89dd4f3e26ddaafda3
  • master default protected
  • radhwan.hassine-master-patch-03421
  • radhwan.hassine-master-patch-79254
4 results

intro.md

Blame
  • 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
    }