Skip to content
Snippets Groups Projects
Commit 3a3ae598 authored by gabriel.dasilvam's avatar gabriel.dasilvam Committed by Florent Gluck
Browse files

Added vmStartAttach command and modified Makefile to rename the certificate

parent 09d95de4
No related branches found
No related tags found
No related merge requests found
......@@ -270,7 +270,7 @@ copy_resources_client:
@mkdir -p $(RESOURCES_DIR_CLIENT)
@echo -n "$(SERVER)" > $(RESOURCES_DIR_CLIENT)/server
ifdef CERT
@cp $(CERT) $(RESOURCES_DIR_CLIENT)/
@cp $(CERT) $(RESOURCES_DIR_CLIENT)/$(CA_CERT_FILE)
else
@echo -n "" > $(RESOURCES_DIR_CLIENT)/$(CA_CERT_FILE)
endif
......
package cmdVM
import (
"nexus-client/exec"
g "nexus-client/globals"
u "nexus-client/utils"
)
type StartAttach struct {
Name string
}
func (cmd *StartAttach) GetName() string {
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."}
}
func (cmd *StartAttach) PrintUsage() {
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
}
package main
import (
"os"
"path"
"strings"
"nexus-common/utils"
"nexus-common/buildversion"
u "nexus-client/utils"
g "nexus-client/globals"
"nexus-client/defaults"
"nexus-client/version"
"nexus-client/cmd"
"nexus-client/cmdMisc"
"nexus-client/cmdLogin"
"nexus-client/cmdMisc"
"nexus-client/cmdTemplate"
"nexus-client/cmdToken"
"nexus-client/cmdUser"
"nexus-client/cmdVM"
"nexus-client/cmdVersion"
"nexus-client/cmdTemplate"
"nexus-client/defaults"
g "nexus-client/globals"
u "nexus-client/utils"
"nexus-client/version"
"nexus-common/buildversion"
"nexus-common/utils"
"os"
"path"
"strings"
"github.com/go-resty/resty/v2"
)
......@@ -67,6 +67,7 @@ var cmdList = []cmd.Command {
&cmdVM.Reboot{"vmreboot"},
&cmdVM.Shutdown{"vmshutdown"},
&cmdVM.Start{"vmstart"},
&cmdVM.StartAttach{"vmstartattach"},
&cmdVM.StartWithCreds{"vmstartwithcreds"},
}
......
package main
import (
"os"
"io"
"fmt"
"path"
"errors"
"strings"
"syscall"
"golang.org/x/term"
u "nexus-client/utils"
"nexus-common/utils"
"nexus-common/buildversion"
g "nexus-client/globals"
"nexus-client/defaults"
"nexus-client/version"
"fmt"
"io"
"nexus-client/cmd"
"nexus-client/cmdVM"
"nexus-client/cmdMisc"
"nexus-client/cmdUser"
"nexus-client/cmdLogin"
"nexus-client/cmdMisc"
"nexus-client/cmdTemplate"
"nexus-client/cmdToken"
"nexus-client/cmdUser"
"nexus-client/cmdVM"
"nexus-client/cmdVersion"
"nexus-client/cmdTemplate"
"github.com/peterh/liner"
"nexus-client/defaults"
g "nexus-client/globals"
u "nexus-client/utils"
"nexus-client/version"
"nexus-common/buildversion"
"nexus-common/utils"
"os"
"path"
"strings"
"syscall"
"github.com/go-resty/resty/v2"
"github.com/peterh/liner"
"golang.org/x/term"
)
var cmdList = []cmd.Command {
......@@ -73,6 +73,7 @@ var cmdList = []cmd.Command {
&cmdVM.Reboot{"vmreboot"},
&cmdVM.Shutdown{"vmshutdown"},
&cmdVM.Start{"vmstart"},
&cmdVM.StartAttach{"vmstartattach"},
&cmdVM.StartWithCreds{"vmstartwithcreds"},
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment