Skip to content
Snippets Groups Projects
Commit 2740cdf3 authored by Florent Gluck's avatar Florent Gluck
Browse files

Ooops forgot to add vmEdit.go

parent c6765b36
No related branches found
No related tags found
No related merge requests found
package main
import (
"strconv"
"strings"
)
type CmdVMEdit struct{
name string
}
func (cmd *CmdVMEdit)Name() string {
return cmd.name
}
func (cmd *CmdVMEdit)Desc() string {
return "Create a VM"
}
func (cmd *CmdVMEdit)PrintUsage() {
printlnErr("Usage: "+cmd.name+" vmID [name=\"new name\"] [cpus=n] [ram=n] [nic=none/user]")
printlnErr("Parameters between [] are optional, but at least one must be defined.")
}
func getStringVal(s string, prefix string) string {
if strings.HasPrefix(s, prefix) {
parts := strings.Split(s, prefix)
return parts[1]
}
return ""
}
func (cmd *CmdVMEdit)Run(args []string) int {
argc := len(args)
if argc < 2 || argc > 5 {
cmd.PrintUsage()
return 1
}
type VMArgs struct {
Name string
Cpus int
Ram int
Nic string
}
vmArgs := &VMArgs {}
id := args[0]
for _, arg := range args {
s := getStringVal(arg, "name=")
if s != "" {
vmArgs.Name = s
}
s = getStringVal(arg, "cpus=")
if s != "" {
cpus, err := strconv.Atoi(s)
if err != nil {
printlnErr("Invalid number of CPU(s)")
return 1
}
vmArgs.Cpus = cpus
}
s = getStringVal(arg, "ram=")
if s != "" {
ram, err := strconv.Atoi(s)
if err != nil {
printlnErr("Invalid amount of RAM")
return 1
}
vmArgs.Ram = ram
}
s = getStringVal(arg, "nic=")
if s != "" {
vmArgs.Nic = s
}
}
resp, err := client.R().SetBody(vmArgs).Put(host+"/vms/"+id)
if err != nil {
printlnErr("Error: "+err.Error())
return 1
}
if resp.IsSuccess() {
println(resp)
return 0
} else {
printlnErr("Error: "+resp.Status()+": "+resp.String())
return 1
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment