From 3ce553542ec004336084a81a719c6430506ac080 Mon Sep 17 00:00:00 2001 From: Florent Gluck <florent.gluck@hesge.ch> Date: Tue, 10 Dec 2024 13:43:28 +0100 Subject: [PATCH] moved globals package from nexus-client to nexus-libclient --- src/client/cmdLogin/login.go | 2 +- src/client/cmdTemplate/templateCreate.go | 2 +- src/client/cmdTemplate/templateDel.go | 2 +- src/client/cmdTemplate/templateEdit.go | 2 +- src/client/cmdTemplate/templateExportDisk.go | 2 +- src/client/cmdUser/userAdd.go | 2 +- src/client/cmdUser/userDel.go | 2 +- src/client/cmdUser/userList.go | 2 +- src/client/cmdUser/userResetPwd.go | 2 +- src/client/cmdUser/userSetCaps.go | 2 +- src/client/cmdUser/userUnlock.go | 2 +- src/client/cmdUser/userUpdatePwd.go | 2 +- src/client/cmdUser/userWhoami.go | 2 +- src/client/cmdVM/attachHelper.go | 2 +- src/client/cmdVM/helper.go | 2 +- src/client/cmdVM/vmAddAccess.go | 2 +- src/client/cmdVM/vmAttachAsyncSingle.go | 2 +- src/client/cmdVM/vmAttachFromPwd.go | 2 +- src/client/cmdVM/vmCreate.go | 2 +- src/client/cmdVM/vmCreds2csv.go | 2 +- src/client/cmdVM/vmDel.go | 2 +- src/client/cmdVM/vmDelAccess.go | 2 +- src/client/cmdVM/vmEdit.go | 2 +- src/client/cmdVM/vmExportDir.go | 2 +- src/client/cmdVM/vmImportDir.go | 2 +- src/client/cmdVM/vmListSingle.go | 2 +- src/client/cmdVM/vmReboot.go | 2 +- src/client/cmdVM/vmShutdown.go | 2 +- src/client/cmdVM/vmStart.go | 92 +++++------ src/client/cmdVM/vmStartAttach.go | 154 +++++++++---------- src/client/cmdVM/vmStartWithCreds.go | 134 ++++++++-------- src/client/cmdVM/vmStop.go | 92 +++++------ src/client/cmdVersion/version.go | 2 +- src/client/nexus-cli/nexus-cli.go | 2 +- src/client/nexus-exam/nexus-exam.go | 2 +- src/client/nexush/nexush.go | 2 +- src/client/utils/csv.go | 2 +- src/{client => libclient}/globals/Globals.go | 0 src/libclient/template/templateList.go | 2 +- src/libclient/token/tokenRefresh.go | 2 +- 40 files changed, 271 insertions(+), 271 deletions(-) rename src/{client => libclient}/globals/Globals.go (100%) diff --git a/src/client/cmdLogin/login.go b/src/client/cmdLogin/login.go index d2960f7..382fb3b 100644 --- a/src/client/cmdLogin/login.go +++ b/src/client/cmdLogin/login.go @@ -3,9 +3,9 @@ package cmdLogin import ( "encoding/json" "errors" - g "nexus-client/globals" u "nexus-client/utils" "nexus-common/params" + g "nexus-libclient/globals" "syscall" "golang.org/x/term" diff --git a/src/client/cmdTemplate/templateCreate.go b/src/client/cmdTemplate/templateCreate.go index 44eda68..92eb109 100644 --- a/src/client/cmdTemplate/templateCreate.go +++ b/src/client/cmdTemplate/templateCreate.go @@ -1,9 +1,9 @@ package cmdTemplate import ( - g "nexus-client/globals" u "nexus-client/utils" "nexus-common/params" + g "nexus-libclient/globals" "github.com/go-resty/resty/v2" "github.com/google/uuid" diff --git a/src/client/cmdTemplate/templateDel.go b/src/client/cmdTemplate/templateDel.go index b1a7be6..e5bbd49 100644 --- a/src/client/cmdTemplate/templateDel.go +++ b/src/client/cmdTemplate/templateDel.go @@ -1,8 +1,8 @@ package cmdTemplate import ( - g "nexus-client/globals" u "nexus-client/utils" + g "nexus-libclient/globals" ) type Del struct { diff --git a/src/client/cmdTemplate/templateEdit.go b/src/client/cmdTemplate/templateEdit.go index a8b4f05..c770bb5 100644 --- a/src/client/cmdTemplate/templateEdit.go +++ b/src/client/cmdTemplate/templateEdit.go @@ -2,9 +2,9 @@ package cmdTemplate import ( "errors" - g "nexus-client/globals" u "nexus-client/utils" "nexus-common/params" + g "nexus-libclient/globals" "strings" ) diff --git a/src/client/cmdTemplate/templateExportDisk.go b/src/client/cmdTemplate/templateExportDisk.go index e8b9d4e..abea4af 100644 --- a/src/client/cmdTemplate/templateExportDisk.go +++ b/src/client/cmdTemplate/templateExportDisk.go @@ -1,8 +1,8 @@ package cmdTemplate import ( - g "nexus-client/globals" u "nexus-client/utils" + g "nexus-libclient/globals" ) type ExportDisk struct { diff --git a/src/client/cmdUser/userAdd.go b/src/client/cmdUser/userAdd.go index bb3973a..0dbdc6e 100644 --- a/src/client/cmdUser/userAdd.go +++ b/src/client/cmdUser/userAdd.go @@ -4,10 +4,10 @@ import ( "encoding/csv" "errors" "io" - g "nexus-client/globals" u "nexus-client/utils" "nexus-common/caps" "nexus-common/params" + g "nexus-libclient/globals" "os" "strings" ) diff --git a/src/client/cmdUser/userDel.go b/src/client/cmdUser/userDel.go index b32dd2f..6ea96fa 100644 --- a/src/client/cmdUser/userDel.go +++ b/src/client/cmdUser/userDel.go @@ -4,8 +4,8 @@ import ( "encoding/csv" "errors" "io" - g "nexus-client/globals" u "nexus-client/utils" + g "nexus-libclient/globals" "os" ) diff --git a/src/client/cmdUser/userList.go b/src/client/cmdUser/userList.go index e66f119..196d19e 100644 --- a/src/client/cmdUser/userList.go +++ b/src/client/cmdUser/userList.go @@ -2,9 +2,9 @@ package cmdUser import ( "fmt" - g "nexus-client/globals" u "nexus-client/utils" "nexus-common/params" + g "nexus-libclient/globals" "regexp" "strings" ) diff --git a/src/client/cmdUser/userResetPwd.go b/src/client/cmdUser/userResetPwd.go index 772dd77..2744134 100644 --- a/src/client/cmdUser/userResetPwd.go +++ b/src/client/cmdUser/userResetPwd.go @@ -2,8 +2,8 @@ package cmdUser import ( "errors" - g "nexus-client/globals" u "nexus-client/utils" + g "nexus-libclient/globals" ) type ResetPwd struct { diff --git a/src/client/cmdUser/userSetCaps.go b/src/client/cmdUser/userSetCaps.go index 61e76d2..1fde3d1 100644 --- a/src/client/cmdUser/userSetCaps.go +++ b/src/client/cmdUser/userSetCaps.go @@ -4,10 +4,10 @@ import ( "encoding/csv" "errors" "io" - g "nexus-client/globals" u "nexus-client/utils" "nexus-common/caps" "nexus-common/params" + g "nexus-libclient/globals" "os" "strings" ) diff --git a/src/client/cmdUser/userUnlock.go b/src/client/cmdUser/userUnlock.go index 5725307..219d307 100644 --- a/src/client/cmdUser/userUnlock.go +++ b/src/client/cmdUser/userUnlock.go @@ -2,8 +2,8 @@ package cmdUser import ( "errors" - g "nexus-client/globals" u "nexus-client/utils" + g "nexus-libclient/globals" ) type Unlock struct { diff --git a/src/client/cmdUser/userUpdatePwd.go b/src/client/cmdUser/userUpdatePwd.go index 3dc52be..4c6e38d 100644 --- a/src/client/cmdUser/userUpdatePwd.go +++ b/src/client/cmdUser/userUpdatePwd.go @@ -2,9 +2,9 @@ package cmdUser import ( "bytes" - g "nexus-client/globals" u "nexus-client/utils" "nexus-common/params" + g "nexus-libclient/globals" "golang.org/x/crypto/ssh/terminal" ) diff --git a/src/client/cmdUser/userWhoami.go b/src/client/cmdUser/userWhoami.go index 5b36fba..3af8624 100644 --- a/src/client/cmdUser/userWhoami.go +++ b/src/client/cmdUser/userWhoami.go @@ -1,8 +1,8 @@ package cmdUser import ( - g "nexus-client/globals" u "nexus-client/utils" + g "nexus-libclient/globals" ) type Whoami struct { diff --git a/src/client/cmdVM/attachHelper.go b/src/client/cmdVM/attachHelper.go index 6a99cf9..f607e0d 100644 --- a/src/client/cmdVM/attachHelper.go +++ b/src/client/cmdVM/attachHelper.go @@ -5,10 +5,10 @@ import ( "errors" "fmt" "nexus-client/exec" - g "nexus-client/globals" u "nexus-client/utils" "nexus-common/params" "nexus-common/vm" + g "nexus-libclient/globals" "sync" "github.com/go-playground/validator/v10" diff --git a/src/client/cmdVM/helper.go b/src/client/cmdVM/helper.go index 9aab884..5ffd553 100644 --- a/src/client/cmdVM/helper.go +++ b/src/client/cmdVM/helper.go @@ -4,9 +4,9 @@ import ( "encoding/json" "errors" "nexus-client/cmd" - g "nexus-client/globals" u "nexus-client/utils" "nexus-common/vm" + g "nexus-libclient/globals" "regexp" "strings" diff --git a/src/client/cmdVM/vmAddAccess.go b/src/client/cmdVM/vmAddAccess.go index 947eb7a..d53c59d 100644 --- a/src/client/cmdVM/vmAddAccess.go +++ b/src/client/cmdVM/vmAddAccess.go @@ -5,10 +5,10 @@ import ( "errors" "io" "net/mail" - g "nexus-client/globals" u "nexus-client/utils" "nexus-common/caps" "nexus-common/params" + g "nexus-libclient/globals" "os" "strings" ) diff --git a/src/client/cmdVM/vmAttachAsyncSingle.go b/src/client/cmdVM/vmAttachAsyncSingle.go index bc17e8f..f088d1e 100644 --- a/src/client/cmdVM/vmAttachAsyncSingle.go +++ b/src/client/cmdVM/vmAttachAsyncSingle.go @@ -2,9 +2,9 @@ package cmdVM import ( "nexus-client/exec" - g "nexus-client/globals" u "nexus-client/utils" "nexus-common/vm" + g "nexus-libclient/globals" ) type AttachAsyncSingle struct { diff --git a/src/client/cmdVM/vmAttachFromPwd.go b/src/client/cmdVM/vmAttachFromPwd.go index 9d1ed6b..d3e1fb8 100644 --- a/src/client/cmdVM/vmAttachFromPwd.go +++ b/src/client/cmdVM/vmAttachFromPwd.go @@ -4,10 +4,10 @@ import ( "encoding/json" "nexus-client/exec" e "nexus-client/exec" - g "nexus-client/globals" u "nexus-client/utils" "nexus-common/params" "nexus-common/vm" + g "nexus-libclient/globals" "github.com/go-playground/validator/v10" ) diff --git a/src/client/cmdVM/vmCreate.go b/src/client/cmdVM/vmCreate.go index bbfb415..38198dc 100644 --- a/src/client/cmdVM/vmCreate.go +++ b/src/client/cmdVM/vmCreate.go @@ -2,10 +2,10 @@ package cmdVM import ( "fmt" - g "nexus-client/globals" u "nexus-client/utils" "nexus-common/params" "nexus-common/vm" + g "nexus-libclient/globals" "strconv" "github.com/google/uuid" diff --git a/src/client/cmdVM/vmCreds2csv.go b/src/client/cmdVM/vmCreds2csv.go index a46719a..5474cd9 100644 --- a/src/client/cmdVM/vmCreds2csv.go +++ b/src/client/cmdVM/vmCreds2csv.go @@ -2,8 +2,8 @@ package cmdVM import ( "fmt" - g "nexus-client/globals" u "nexus-client/utils" + g "nexus-libclient/globals" "os" ) diff --git a/src/client/cmdVM/vmDel.go b/src/client/cmdVM/vmDel.go index c788dea..5251c0f 100644 --- a/src/client/cmdVM/vmDel.go +++ b/src/client/cmdVM/vmDel.go @@ -1,8 +1,8 @@ package cmdVM import ( - g "nexus-client/globals" u "nexus-client/utils" + g "nexus-libclient/globals" ) type Del struct { diff --git a/src/client/cmdVM/vmDelAccess.go b/src/client/cmdVM/vmDelAccess.go index cf14dc4..c830076 100644 --- a/src/client/cmdVM/vmDelAccess.go +++ b/src/client/cmdVM/vmDelAccess.go @@ -5,8 +5,8 @@ import ( "errors" "io" "net/mail" - g "nexus-client/globals" u "nexus-client/utils" + g "nexus-libclient/globals" "os" ) diff --git a/src/client/cmdVM/vmEdit.go b/src/client/cmdVM/vmEdit.go index 1beae87..0a1cf1a 100644 --- a/src/client/cmdVM/vmEdit.go +++ b/src/client/cmdVM/vmEdit.go @@ -2,10 +2,10 @@ package cmdVM import ( "errors" - g "nexus-client/globals" u "nexus-client/utils" "nexus-common/params" "nexus-common/vm" + g "nexus-libclient/globals" "strconv" "strings" ) diff --git a/src/client/cmdVM/vmExportDir.go b/src/client/cmdVM/vmExportDir.go index ccb30e2..61b5521 100644 --- a/src/client/cmdVM/vmExportDir.go +++ b/src/client/cmdVM/vmExportDir.go @@ -1,9 +1,9 @@ package cmdVM import ( - g "nexus-client/globals" u "nexus-client/utils" "nexus-common/params" + g "nexus-libclient/globals" ) type ExportDir struct { diff --git a/src/client/cmdVM/vmImportDir.go b/src/client/cmdVM/vmImportDir.go index 60db0a6..3e04a94 100644 --- a/src/client/cmdVM/vmImportDir.go +++ b/src/client/cmdVM/vmImportDir.go @@ -1,8 +1,8 @@ package cmdVM import ( - g "nexus-client/globals" u "nexus-client/utils" + g "nexus-libclient/globals" "os" ) diff --git a/src/client/cmdVM/vmListSingle.go b/src/client/cmdVM/vmListSingle.go index 3c08662..f8f35d5 100644 --- a/src/client/cmdVM/vmListSingle.go +++ b/src/client/cmdVM/vmListSingle.go @@ -1,8 +1,8 @@ package cmdVM import ( - g "nexus-client/globals" u "nexus-client/utils" + g "nexus-libclient/globals" ) type ListSingle struct { diff --git a/src/client/cmdVM/vmReboot.go b/src/client/cmdVM/vmReboot.go index ff7b1c4..6faee71 100644 --- a/src/client/cmdVM/vmReboot.go +++ b/src/client/cmdVM/vmReboot.go @@ -1,8 +1,8 @@ package cmdVM import ( - g "nexus-client/globals" u "nexus-client/utils" + g "nexus-libclient/globals" ) type Reboot struct { diff --git a/src/client/cmdVM/vmShutdown.go b/src/client/cmdVM/vmShutdown.go index 214fdb3..e7108cb 100644 --- a/src/client/cmdVM/vmShutdown.go +++ b/src/client/cmdVM/vmShutdown.go @@ -1,8 +1,8 @@ package cmdVM import ( - g "nexus-client/globals" u "nexus-client/utils" + g "nexus-libclient/globals" ) type Shutdown struct { diff --git a/src/client/cmdVM/vmStart.go b/src/client/cmdVM/vmStart.go index 5963e21..f556b3a 100644 --- a/src/client/cmdVM/vmStart.go +++ b/src/client/cmdVM/vmStart.go @@ -1,68 +1,68 @@ package cmdVM import ( - u "nexus-client/utils" - g "nexus-client/globals" + u "nexus-client/utils" + g "nexus-libclient/globals" ) type Start struct { - Name string + Name string } -func (cmd *Start)GetName() string { - return cmd.Name +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) 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) PrintUsage() { + printRegexUsage(cmd) + printRegexUsageDetails() } -func (cmd *Start)Run(args []string) int { - client := g.GetInstance().Client - host := g.GetInstance().Host +func (cmd *Start) Run(args []string) int { + client := g.GetInstance().Client + host := g.GetInstance().Host - argc := len(args) - if argc < 1 { - cmd.PrintUsage() - return 1 - } + argc := len(args) + if argc < 1 { + cmd.PrintUsage() + return 1 + } - vms, err := getFilteredVMs("/vms/start", args) - if err != nil { - u.PrintlnErr(err.Error()) - return 1 - } + vms, err := getFilteredVMs("/vms/start", args) + if err != nil { + u.PrintlnErr(err.Error()) + return 1 + } - if len(vms) == 0 { - u.PrintlnErr("Error: VM(s) not found.") - return 1 - } + if len(vms) == 0 { + u.PrintlnErr("Error: VM(s) not found.") + return 1 + } - statusCode := 0 + statusCode := 0 - for _, vm := range(vms) { - uuid := vm.ID.String() - resp, err := client.R().Put(host+"/vms/"+uuid+"/start") - if err != nil { - u.PrintlnErr("Failed starting VM \""+vm.Name+"\": "+err.Error()) - statusCode = 1 - } else { - if resp.IsSuccess() { - u.Println("Started VM \""+vm.Name+"\"") - } else { - u.PrintlnErr("Failed starting VM \""+vm.Name+"\": "+resp.Status()+": "+resp.String()) - statusCode = 1 - } - } + for _, vm := range vms { + uuid := vm.ID.String() + resp, err := client.R().Put(host + "/vms/" + uuid + "/start") + if err != nil { + u.PrintlnErr("Failed starting VM \"" + vm.Name + "\": " + err.Error()) + statusCode = 1 + } else { + if resp.IsSuccess() { + u.Println("Started VM \"" + vm.Name + "\"") + } else { + u.PrintlnErr("Failed starting VM \"" + vm.Name + "\": " + resp.Status() + ": " + resp.String()) + statusCode = 1 + } + } - } + } - return statusCode + return statusCode } diff --git a/src/client/cmdVM/vmStartAttach.go b/src/client/cmdVM/vmStartAttach.go index 619b153..b684f06 100644 --- a/src/client/cmdVM/vmStartAttach.go +++ b/src/client/cmdVM/vmStartAttach.go @@ -1,96 +1,96 @@ package cmdVM import ( - "nexus-client/exec" - g "nexus-client/globals" - u "nexus-client/utils" + "nexus-client/exec" + u "nexus-client/utils" + g "nexus-libclient/globals" ) type StartAttach struct { - Name string + Name string } func (cmd *StartAttach) GetName() string { - return cmd.Name + return cmd.Name } func (cmd *StartAttach) GetDesc() []string { - return []string{ - "Starts one or more VMs and attaches them in order to use their desktop environment.", - "If not the VM's owner: requires VM_START VM access capability or VM_START_ANY user capability", - "and VM_ATTACH VM access capability or VM_ATTACH_ANY user capability."} + return []string{ + "Starts one or more VMs and attaches them in order to use their desktop environment.", + "If not the VM's owner: requires VM_START VM access capability or VM_START_ANY user capability", + "and VM_ATTACH VM access capability or VM_ATTACH_ANY user capability."} } func (cmd *StartAttach) PrintUsage() { - printRegexUsage(cmd) - printRegexUsageDetails() + printRegexUsage(cmd) + printRegexUsageDetails() } func (cmd *StartAttach) Run(args []string) int { - client := g.GetInstance().Client - host := g.GetInstance().Host - - argc := len(args) - if argc < 1 { - cmd.PrintUsage() - return 1 - } - - if err := exec.CheckRemoteViewer(); err != nil { - u.PrintlnErr(err.Error()) - return 1 - } - - vms, err := getFilteredVMs("/vms/start", 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 + "/start") - if err != nil { - u.PrintlnErr("Failed starting VM \"" + vm.Name + "\": " + err.Error()) - statusCode = 1 - } else { - if resp.IsSuccess() { - u.Println("Started VM \"" + vm.Name + "\"") - } else { - u.PrintlnErr("Failed starting VM \"" + vm.Name + "\": " + resp.Status() + ": " + resp.String()) - statusCode = 1 - } - } - - } - - // at this point, the returned filtered credentials only works for VMs that started successfully - creds, err := getFilteredVMCredentials("/vms/attach", args) - if err != nil { - u.PrintlnErr(err.Error()) - return 1 - } - - if len(creds) == 0 { - u.PrintlnErr("Error: No VM(s) to attach.") - return 1 - } - - attachStatusCode, err := AttachToVMs(creds, false) - if err != nil { - u.PrintlnErr(err) - } - - returnCode := 0 - if statusCode != 0 || attachStatusCode != 0 { - returnCode = 1 - } - return returnCode + client := g.GetInstance().Client + host := g.GetInstance().Host + + argc := len(args) + if argc < 1 { + cmd.PrintUsage() + return 1 + } + + if err := exec.CheckRemoteViewer(); err != nil { + u.PrintlnErr(err.Error()) + return 1 + } + + vms, err := getFilteredVMs("/vms/start", 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 + "/start") + if err != nil { + u.PrintlnErr("Failed starting VM \"" + vm.Name + "\": " + err.Error()) + statusCode = 1 + } else { + if resp.IsSuccess() { + u.Println("Started VM \"" + vm.Name + "\"") + } else { + u.PrintlnErr("Failed starting VM \"" + vm.Name + "\": " + resp.Status() + ": " + resp.String()) + statusCode = 1 + } + } + + } + + // at this point, the returned filtered credentials only works for VMs that started successfully + creds, err := getFilteredVMCredentials("/vms/attach", args) + if err != nil { + u.PrintlnErr(err.Error()) + return 1 + } + + if len(creds) == 0 { + u.PrintlnErr("Error: No VM(s) to attach.") + return 1 + } + + attachStatusCode, err := AttachToVMs(creds, false) + if err != nil { + u.PrintlnErr(err) + } + + returnCode := 0 + if statusCode != 0 || attachStatusCode != 0 { + returnCode = 1 + } + return returnCode } diff --git a/src/client/cmdVM/vmStartWithCreds.go b/src/client/cmdVM/vmStartWithCreds.go index 91b1ab4..67569d8 100644 --- a/src/client/cmdVM/vmStartWithCreds.go +++ b/src/client/cmdVM/vmStartWithCreds.go @@ -1,91 +1,91 @@ package cmdVM import ( - "errors" - "nexus-common/params" - u "nexus-client/utils" - g "nexus-client/globals" + "errors" + u "nexus-client/utils" + "nexus-common/params" + g "nexus-libclient/globals" ) type StartWithCreds struct { - Name string + Name string } -func (cmd *StartWithCreds)GetName() string { - return cmd.Name +func (cmd *StartWithCreds) GetName() string { + return cmd.Name } -func (cmd *StartWithCreds)GetDesc() []string { - return []string{ - "Starts one or more VMs with user-defined credentials.", - "If not the VM's owner: requires VM_START VM access capability or VM_START_ANY user capability."} +func (cmd *StartWithCreds) GetDesc() []string { + return []string{ + "Starts one or more VMs with user-defined credentials.", + "If not the VM's owner: requires VM_START VM access capability or VM_START_ANY user capability."} } -func (cmd *StartWithCreds)PrintUsage() { - for _, desc := range cmd.GetDesc() { - u.PrintlnErr(desc) - } - u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――") - u.PrintlnErr("USAGE: "+cmd.GetName()+" file.csv") - u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――") - const usage string = `file.csv 3-column CSV file defining the VMs to start and their credentials. +func (cmd *StartWithCreds) PrintUsage() { + for _, desc := range cmd.GetDesc() { + u.PrintlnErr(desc) + } + u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――") + u.PrintlnErr("USAGE: " + cmd.GetName() + " file.csv") + u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――") + const usage string = `file.csv 3-column CSV file defining the VMs to start and their credentials. Content of the 3 columns: VM ID;VM name;password` - u.PrintlnErr(usage) + u.PrintlnErr(usage) } -func (cmd *StartWithCreds)parseCSVFile(csvFile string) ([]string, []string, error) { - // Column 0: VM IDs - vmIDs, err := u.ReadCSVColumn(csvFile, 0) - if err != nil { - return nil, nil, err - } - // Column 2: passwords - pwds, err := u.ReadCSVColumn(csvFile, 2) - if err != nil { - return nil, nil, err - } - count := len(vmIDs) - if (len(pwds) != count) { - return nil, nil, errors.New("Invalid CSV file: all columns must have the same number of entries!") - } - return vmIDs, pwds, nil +func (cmd *StartWithCreds) parseCSVFile(csvFile string) ([]string, []string, error) { + // Column 0: VM IDs + vmIDs, err := u.ReadCSVColumn(csvFile, 0) + if err != nil { + return nil, nil, err + } + // Column 2: passwords + pwds, err := u.ReadCSVColumn(csvFile, 2) + if err != nil { + return nil, nil, err + } + count := len(vmIDs) + if len(pwds) != count { + return nil, nil, errors.New("Invalid CSV file: all columns must have the same number of entries!") + } + return vmIDs, pwds, nil } -func (cmd *StartWithCreds)Run(args []string) int { - client := g.GetInstance().Client - host := g.GetInstance().Host +func (cmd *StartWithCreds) Run(args []string) int { + client := g.GetInstance().Client + host := g.GetInstance().Host - argc := len(args) - if argc != 1 { - cmd.PrintUsage() - return 1 - } + argc := len(args) + if argc != 1 { + cmd.PrintUsage() + return 1 + } - vmIDs, pwds, err := cmd.parseCSVFile(args[0]) - if err != nil { - u.PrintlnErr(err.Error()) - return 1 - } + vmIDs, pwds, err := cmd.parseCSVFile(args[0]) + if err != nil { + u.PrintlnErr(err.Error()) + return 1 + } - statusCode := 0 + statusCode := 0 - vmArgs := ¶ms.VMStartWithCreds {} + vmArgs := ¶ms.VMStartWithCreds{} - for i, vmID := range(vmIDs) { - vmArgs.Pwd = pwds[i] - resp, err := client.R().SetBody(vmArgs).Put(host+"/vms/"+vmID+"/startwithcreds") - if err != nil { - u.PrintlnErr("Failed starting VM \""+vmID+"\": "+err.Error()) - statusCode = 1 - } else { - if resp.IsSuccess() { - u.Println("Started VM \""+vmID+"\"") - } else { - u.PrintlnErr("Failed starting VM \""+vmID+"\": "+resp.Status()+": "+resp.String()) - statusCode = 1 - } - } - } + for i, vmID := range vmIDs { + vmArgs.Pwd = pwds[i] + resp, err := client.R().SetBody(vmArgs).Put(host + "/vms/" + vmID + "/startwithcreds") + if err != nil { + u.PrintlnErr("Failed starting VM \"" + vmID + "\": " + err.Error()) + statusCode = 1 + } else { + if resp.IsSuccess() { + u.Println("Started VM \"" + vmID + "\"") + } else { + u.PrintlnErr("Failed starting VM \"" + vmID + "\": " + resp.Status() + ": " + resp.String()) + statusCode = 1 + } + } + } - return statusCode + return statusCode } diff --git a/src/client/cmdVM/vmStop.go b/src/client/cmdVM/vmStop.go index 74939fa..01d441c 100644 --- a/src/client/cmdVM/vmStop.go +++ b/src/client/cmdVM/vmStop.go @@ -1,68 +1,68 @@ package cmdVM import ( - u "nexus-client/utils" - g "nexus-client/globals" + u "nexus-client/utils" + g "nexus-libclient/globals" ) type Stop struct { - Name string + Name string } -func (cmd *Stop)GetName() string { - return cmd.Name +func (cmd *Stop) GetName() string { + return cmd.Name } -func (cmd *Stop)GetDesc() []string { - return []string{ - "Kills one or more VMs.", - "If not the VM's owner: requires VM_STOP VM access capability or VM_STOP_ANY user capability."} +func (cmd *Stop) GetDesc() []string { + return []string{ + "Kills one or more VMs.", + "If not the VM's owner: requires VM_STOP VM access capability or VM_STOP_ANY user capability."} } -func (cmd *Stop)PrintUsage() { - printRegexUsage(cmd) - printRegexUsageDetails() +func (cmd *Stop) PrintUsage() { + printRegexUsage(cmd) + printRegexUsageDetails() } -func (cmd *Stop)Run(args []string) int { - client := g.GetInstance().Client - host := g.GetInstance().Host +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 - } + 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 - } + 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 - } + if len(vms) == 0 { + u.PrintlnErr("Error: VM(s) not found.") + return 1 + } - statusCode := 0 + 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 - } - } + 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 + return statusCode } diff --git a/src/client/cmdVersion/version.go b/src/client/cmdVersion/version.go index 342d605..dde61e0 100644 --- a/src/client/cmdVersion/version.go +++ b/src/client/cmdVersion/version.go @@ -3,10 +3,10 @@ package cmdVersion import ( "encoding/json" "errors" - g "nexus-client/globals" u "nexus-client/utils" "nexus-client/version" "nexus-common/params" + g "nexus-libclient/globals" ) type Version struct { diff --git a/src/client/nexus-cli/nexus-cli.go b/src/client/nexus-cli/nexus-cli.go index b53931d..8b4bca9 100644 --- a/src/client/nexus-cli/nexus-cli.go +++ b/src/client/nexus-cli/nexus-cli.go @@ -10,11 +10,11 @@ import ( "nexus-client/cmdVM" "nexus-client/cmdVersion" "nexus-client/defaults" - g "nexus-client/globals" u "nexus-client/utils" "nexus-client/version" "nexus-common/buildversion" "nexus-common/utils" + g "nexus-libclient/globals" "os" "path" "strings" diff --git a/src/client/nexus-exam/nexus-exam.go b/src/client/nexus-exam/nexus-exam.go index ba01a20..f73abf8 100644 --- a/src/client/nexus-exam/nexus-exam.go +++ b/src/client/nexus-exam/nexus-exam.go @@ -9,12 +9,12 @@ import ( "nexus-client/cmdToken" "nexus-client/defaults" e "nexus-client/exec" - g "nexus-client/globals" u "nexus-client/utils" "nexus-client/version" "nexus-common/buildversion" "nexus-common/params" "nexus-common/vm" + g "nexus-libclient/globals" "os" "os/exec" "path" diff --git a/src/client/nexush/nexush.go b/src/client/nexush/nexush.go index 7d88ea0..8f5fb48 100644 --- a/src/client/nexush/nexush.go +++ b/src/client/nexush/nexush.go @@ -13,8 +13,8 @@ import ( "nexus-client/cmdVM" "nexus-client/cmdVersion" "nexus-client/defaults" - g "nexus-client/globals" u "nexus-client/utils" + g "nexus-libclient/globals" "nexus-client/version" "nexus-common/buildversion" diff --git a/src/client/utils/csv.go b/src/client/utils/csv.go index 122eb0c..5140e25 100644 --- a/src/client/utils/csv.go +++ b/src/client/utils/csv.go @@ -4,7 +4,7 @@ import ( "encoding/csv" "errors" "io" - g "nexus-client/globals" + g "nexus-libclient/globals" "os" "strconv" ) diff --git a/src/client/globals/Globals.go b/src/libclient/globals/Globals.go similarity index 100% rename from src/client/globals/Globals.go rename to src/libclient/globals/Globals.go diff --git a/src/libclient/template/templateList.go b/src/libclient/template/templateList.go index bb0b504..6748afe 100644 --- a/src/libclient/template/templateList.go +++ b/src/libclient/template/templateList.go @@ -2,8 +2,8 @@ package template import ( "errors" - g "nexus-client/globals" t "nexus-common/template" + g "nexus-libclient/globals" ) func GetTemplates() ([]t.TemplateSerialized, error) { diff --git a/src/libclient/token/tokenRefresh.go b/src/libclient/token/tokenRefresh.go index 5fd19a1..02a7296 100644 --- a/src/libclient/token/tokenRefresh.go +++ b/src/libclient/token/tokenRefresh.go @@ -3,7 +3,7 @@ package token import ( "encoding/json" "errors" - g "nexus-client/globals" + g "nexus-libclient/globals" ) // Return a new token -- GitLab