Skip to content
Snippets Groups Projects
Select Git revision
  • c79ee8185ff9d5f374ebf14bfb590a494bfbaa45
  • main default protected
  • jw_sonar
  • v6.0.0 protected
  • update-dependencies
  • v5.0.0 protected
  • jw_sonar_backup
  • move-to-esm-only
  • 6.0.0-dev
  • 5.0.0
  • 4.2.0
  • 4.1.1
  • 4.1.0
  • 4.0.0
  • 3.5.0
  • 3.4.0
  • 3.3.0
  • 3.2.0
  • 3.1.0
  • 3.0.1
  • 3.0.0
  • 2.2.0
  • 2.1.0
  • 2.0.0
  • v1.0.1
25 results

app.ts

Blame
  • vmStop.go 1.42 KiB
    package cmdVM
    
    import (
        u "nexus-client/utils"
        g "nexus-client/globals"
    )
    
    type Stop struct {
        Name string
    }
    
    func (cmd *Stop)GetName() string {
        return cmd.Name
    }
    
    func (cmd *Stop)GetDesc() []string {
        return []string{
            "Kills one or more VMs.",
            "Requires VM_STOP VM access capability or VM_STOP_ANY user capability."}
    }
    
    func (cmd *Stop)PrintUsage() {
        printRegexUsage(cmd)
        printRegexUsageDetails()
    }
    
    func (cmd *Stop)Run(args []string) int {
        client := g.GetInstance().Client
        host := g.GetInstance().Host
    
        argc := len(args)
        if argc < 1 {
            cmd.PrintUsage()
            return 1
        }
    
        vms, err := getFilteredVMs("/vms/stop", args)
        if err != nil {
            u.PrintlnErr(err.Error())
            return 1
        }
    
        if len(vms) == 0 {
            u.PrintlnErr("Error: VM(s) not found.")
            return 1
        }
    
        statusCode := 0
    
        for _, vm := range(vms) {
            uuid := vm.ID.String()
            resp, err := client.R().Put(host+"/vms/"+uuid+"/stop")
            if err != nil {
                u.PrintlnErr("Failed stopping VM \""+vm.Name+"\": "+err.Error())
                statusCode = 1
            } else {
                if resp.IsSuccess() {
                    u.Println("Stopped VM \""+vm.Name+"\"")
                } else {
                    u.PrintlnErr("Failed stopping VM \""+vm.Name+"\": "+resp.Status()+": "+resp.String())
                    statusCode = 1
                }
            }
    
        }
    
        return statusCode
    }