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

Updated vmEdit.go code to be cleaner

parent 4d906f18
No related branches found
No related tags found
No related merge requests found
...@@ -3,12 +3,20 @@ package main ...@@ -3,12 +3,20 @@ package main
import ( import (
"strconv" "strconv"
"strings" "strings"
"errors"
) )
type CmdVMEdit struct{ type CmdVMEdit struct{
name string name string
} }
type vmArgsParameters struct {
Name string
Cpus int
Ram int
Nic string
}
func (cmd *CmdVMEdit)Name() string { func (cmd *CmdVMEdit)Name() string {
return cmd.name return cmd.name
} }
...@@ -25,7 +33,7 @@ func (cmd *CmdVMEdit)PrintUsage() { ...@@ -25,7 +33,7 @@ func (cmd *CmdVMEdit)PrintUsage() {
printlnErr("nic must be either \"none\" or \"user\"") printlnErr("nic must be either \"none\" or \"user\"")
} }
func getStringVal(s string, prefix string) string { func (cmd *CmdVMEdit)getStringVal(s string, prefix string) string {
if strings.HasPrefix(s, prefix) { if strings.HasPrefix(s, prefix) {
parts := strings.Split(s, prefix) parts := strings.Split(s, prefix)
return parts[1] return parts[1]
...@@ -33,58 +41,63 @@ func getStringVal(s string, prefix string) string { ...@@ -33,58 +41,63 @@ func getStringVal(s string, prefix string) string {
return "" return ""
} }
func (cmd *CmdVMEdit)Run(args []string) int { func (cmd *CmdVMEdit)parseArgs(args []string) (*vmArgsParameters, error) {
argc := len(args) vmArgs := &vmArgsParameters {}
if argc < 2 || argc > 5 { atLeastOneArg := false
cmd.PrintUsage()
return 1
}
type VMArgs struct {
Name string
Cpus int
Ram int
Nic string
}
vmArgs := &VMArgs {}
argsValid := false
id := args[0]
for _, arg := range args { for _, arg := range args {
s := getStringVal(arg, "name=") s := cmd.getStringVal(arg, "name=")
if s != "" { if s != "" {
vmArgs.Name = s vmArgs.Name = s
argsValid = true atLeastOneArg = true
} }
s = getStringVal(arg, "cpus=") s = cmd.getStringVal(arg, "cpus=")
if s != "" { if s != "" {
cpus, err := strconv.Atoi(s) cpus, err := strconv.Atoi(s)
if err != nil { if err != nil {
printlnErr("Invalid number of CPU(s)") return nil, errors.New("Invalid number of CPU(s)")
return 1
} }
vmArgs.Cpus = cpus vmArgs.Cpus = cpus
argsValid = true atLeastOneArg = true
} }
s = getStringVal(arg, "ram=") s = cmd.getStringVal(arg, "ram=")
if s != "" { if s != "" {
ram, err := strconv.Atoi(s) ram, err := strconv.Atoi(s)
if err != nil { if err != nil {
printlnErr("Invalid amount of RAM") return nil, errors.New("Invalid amount of RAM")
return 1
} }
vmArgs.Ram = ram vmArgs.Ram = ram
argsValid = true atLeastOneArg = true
} }
s = getStringVal(arg, "nic=") s = cmd.getStringVal(arg, "nic=")
if s != "" { if s != "" {
vmArgs.Nic = s vmArgs.Nic = s
argsValid = true atLeastOneArg = true
}
}
if atLeastOneArg {
return vmArgs, nil
} else {
return nil, nil
}
} }
func (cmd *CmdVMEdit)Run(args []string) int {
argc := len(args)
if argc < 2 || argc > 5 {
cmd.PrintUsage()
return 1
}
id := args[0]
vmArgs, err := cmd.parseArgs(args[1:])
if err != nil {
printlnErr(err.Error())
return 1
} }
if !argsValid { if vmArgs == nil {
cmd.PrintUsage() cmd.PrintUsage()
return 1 return 1
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment