Skip to content
Snippets Groups Projects
Select Git revision
  • bfbd575ff1b936083d2ec920da415e02d3558d2e
  • live_exam_os_ubuntu default protected
2 results

vmStart.go

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