From 238d11db14b4d5949afd163bc4dc05bfb652e477 Mon Sep 17 00:00:00 2001
From: Florent Gluck <florent.gluck@hesge.ch>
Date: Tue, 30 Aug 2022 16:28:27 +0200
Subject: [PATCH] - archive exported with vmexportdir is now prefixed with
 "exportdir_" - for better readability, each command's USAGE is surrounded by
 horizontal lines

---
 src/cmdLogin/login.go             |  2 ++
 src/cmdTemplate/helper.go         |  2 ++
 src/cmdTemplate/templateCreate.go |  2 ++
 src/cmdTemplate/templateDel.go    |  6 +++---
 src/cmdToken/tokenRefresh.go      |  2 ++
 src/cmdUser/helper.go             |  2 ++
 src/cmdUser/userAdd.go            |  2 ++
 src/cmdUser/userDel.go            |  2 ++
 src/cmdUser/userList.go           |  2 ++
 src/cmdUser/userSetCaps.go        |  2 ++
 src/cmdUser/userUpdatePwd.go      |  2 ++
 src/cmdUser/userWhoami.go         |  2 ++
 src/cmdVM/helper.go               |  2 ++
 src/cmdVM/vmCreate.go             |  2 ++
 src/cmdVM/vmCred2pdf.go           |  2 ++
 src/cmdVM/vmDel.go                |  6 +++---
 src/cmdVM/vmDelAccess.go          |  8 +++++---
 src/cmdVM/vmEdit.go               |  8 +++++---
 src/cmdVM/vmExportDir.go          | 10 ++++++----
 src/cmdVM/vmList.go               |  2 ++
 src/cmdVM/vmSetAccess.go          |  8 +++++---
 src/cmdVM/vmShutdown.go           |  6 +++---
 src/cmdVM/vmStart.go              |  6 +++---
 src/cmdVM/vmStop.go               |  6 +++---
 24 files changed, 66 insertions(+), 28 deletions(-)

diff --git a/src/cmdLogin/login.go b/src/cmdLogin/login.go
index 769472a..793c3ed 100644
--- a/src/cmdLogin/login.go
+++ b/src/cmdLogin/login.go
@@ -27,7 +27,9 @@ func (cmd *Login)PrintUsage() {
 	for _, desc := range cmd.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: "+cmd.Name+" email password")
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 }
 
 func (cmd *Login)Run(args []string) int {
diff --git a/src/cmdTemplate/helper.go b/src/cmdTemplate/helper.go
index 2a66de5..2415313 100644
--- a/src/cmdTemplate/helper.go
+++ b/src/cmdTemplate/helper.go
@@ -35,7 +35,9 @@ func printUsage(c cmd.Command, action string) {
 	for _, desc := range c.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: ",c.GetName()," [ID ...] [regex ...]")
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("Only templates matching the specified IDs or regexes will be "+action+".")
 	const usage string = `Any number of IDs or regexes can be specified.
 The regex only matches the templates's name and is case-insensitive.
diff --git a/src/cmdTemplate/templateCreate.go b/src/cmdTemplate/templateCreate.go
index b6b88e0..8866a5f 100644
--- a/src/cmdTemplate/templateCreate.go
+++ b/src/cmdTemplate/templateCreate.go
@@ -24,7 +24,9 @@ func (cmd *Create)PrintUsage() {
 	for _, desc := range cmd.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: "+cmd.Name+" vmID name access")
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("Notes: access is either \"public\" or \"private\"")
 }
 
diff --git a/src/cmdTemplate/templateDel.go b/src/cmdTemplate/templateDel.go
index f7872a6..04aab2a 100644
--- a/src/cmdTemplate/templateDel.go
+++ b/src/cmdTemplate/templateDel.go
@@ -50,13 +50,13 @@ func (cmd *Del)Run(args []string) int {
 		uuid := template.ID.String()
 		resp, err := client.R().Delete(host+"/templates/"+uuid)
 		if err != nil {
-			u.PrintlnErr("Failed deleting template \""+template.Name+"\" | "+uuid+" : "+err.Error())
+			u.PrintlnErr("Failed deleting template \""+template.Name+"\" : "+err.Error())
 			statusCode = 1
 		} else {
 			if resp.IsSuccess() {
-				u.Println("Deleted template \""+template.Name+"\" | "+uuid)
+				u.Println("Deleted template \""+template.Name+"\"")
 			} else {
-				u.PrintlnErr("Failed deleting template \""+template.Name+"\" | "+uuid+" : "+resp.Status()+": "+resp.String())
+				u.PrintlnErr("Failed deleting template \""+template.Name+"\" : "+resp.Status()+": "+resp.String())
 				statusCode = 1
 			}
 		}
diff --git a/src/cmdToken/tokenRefresh.go b/src/cmdToken/tokenRefresh.go
index 090a6d6..9ce1b30 100644
--- a/src/cmdToken/tokenRefresh.go
+++ b/src/cmdToken/tokenRefresh.go
@@ -24,7 +24,9 @@ func (cmd *Refresh)PrintUsage() {
 	for _, desc := range cmd.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: "+cmd.Name)
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 }
 
 func (cmd *Refresh)Run(args []string) int {
diff --git a/src/cmdUser/helper.go b/src/cmdUser/helper.go
index 4db03d4..7a4db41 100644
--- a/src/cmdUser/helper.go
+++ b/src/cmdUser/helper.go
@@ -37,7 +37,9 @@ func printRegexUsage(c cmd.Command) {
 	for _, desc := range c.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: ",c.GetName()," [regex ...]")
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 }
 
 func printRegexUsageDetails() {
diff --git a/src/cmdUser/userAdd.go b/src/cmdUser/userAdd.go
index 028f9a4..5ee73b6 100644
--- a/src/cmdUser/userAdd.go
+++ b/src/cmdUser/userAdd.go
@@ -23,7 +23,9 @@ func (cmd *Add)PrintUsage() {
 	for _, desc := range cmd.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: "+cmd.Name+" email firstname lastname password [capability ...]")
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 }
 
 func (cmd *Add)Run(args []string) int {
diff --git a/src/cmdUser/userDel.go b/src/cmdUser/userDel.go
index 00a80a1..6306b21 100644
--- a/src/cmdUser/userDel.go
+++ b/src/cmdUser/userDel.go
@@ -23,7 +23,9 @@ func (cmd *Del)PrintUsage() {
 	for _, desc := range cmd.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: "+cmd.Name+" email [email ...]")
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 }
 
 func (cmd *Del)Run(args []string) int {
diff --git a/src/cmdUser/userList.go b/src/cmdUser/userList.go
index 6b25ac6..1acd210 100644
--- a/src/cmdUser/userList.go
+++ b/src/cmdUser/userList.go
@@ -22,7 +22,9 @@ func (cmd *List)PrintUsage() {
 	for _, desc := range cmd.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: ",cmd.GetName(), " [-l] [regex ...]")
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("Use \"-l\" to specify detailed user output.")
 	printRegexUsageDetails()
 }
diff --git a/src/cmdUser/userSetCaps.go b/src/cmdUser/userSetCaps.go
index e40fe80..447998b 100644
--- a/src/cmdUser/userSetCaps.go
+++ b/src/cmdUser/userSetCaps.go
@@ -23,7 +23,9 @@ func (cmd *SetCaps)PrintUsage() {
 	for _, desc := range cmd.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: "+cmd.Name+" email [capability ...]")
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 }
 
 func (cmd *SetCaps)Run(args []string) int {
diff --git a/src/cmdUser/userUpdatePwd.go b/src/cmdUser/userUpdatePwd.go
index 4d5f4db..dfd1c77 100644
--- a/src/cmdUser/userUpdatePwd.go
+++ b/src/cmdUser/userUpdatePwd.go
@@ -27,7 +27,9 @@ func (cmd *UpdatePwd)PrintUsage() {
 	for _, desc := range cmd.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: "+cmd.Name)
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 }
 
 func (cmd *UpdatePwd)Run(args []string) int {
diff --git a/src/cmdUser/userWhoami.go b/src/cmdUser/userWhoami.go
index dd83c48..16143ed 100644
--- a/src/cmdUser/userWhoami.go
+++ b/src/cmdUser/userWhoami.go
@@ -22,7 +22,9 @@ func (cmd *Whoami)PrintUsage() {
 	for _, desc := range cmd.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: "+cmd.Name)
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 }
 
 func (cmd *Whoami)Run(args []string) int {
diff --git a/src/cmdVM/helper.go b/src/cmdVM/helper.go
index d8018c6..46c0557 100644
--- a/src/cmdVM/helper.go
+++ b/src/cmdVM/helper.go
@@ -56,7 +56,9 @@ func printRegexUsage(c cmd.Command) {
 	for _, desc := range c.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: ",c.GetName()," [ID ...] [regex ...]")
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 }
 
 func printRegexUsageDetails() {
diff --git a/src/cmdVM/vmCreate.go b/src/cmdVM/vmCreate.go
index e2f446e..a8ab374 100644
--- a/src/cmdVM/vmCreate.go
+++ b/src/cmdVM/vmCreate.go
@@ -27,7 +27,9 @@ func (cmd *Create)PrintUsage() {
 	for _, desc := range cmd.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: "+cmd.Name+" name cpus ram nic template [count|file.csv]")
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	const usage string = `name        name of the VM
 cpus        Number of CPUs, between 1 and 16.
 ram         Amount of RAM in MB,  between 512 and 32768.
diff --git a/src/cmdVM/vmCred2pdf.go b/src/cmdVM/vmCred2pdf.go
index a2f53cd..eee31f6 100644
--- a/src/cmdVM/vmCred2pdf.go
+++ b/src/cmdVM/vmCred2pdf.go
@@ -24,7 +24,9 @@ func (cmd *Cred2pdf)PrintUsage() {
 	for _, desc := range cmd.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: ",cmd.GetName()," [ID ...] [regex ...] pdfile")
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	printRegexUsageDetails()
 }
 
diff --git a/src/cmdVM/vmDel.go b/src/cmdVM/vmDel.go
index 5e26cd4..362395a 100644
--- a/src/cmdVM/vmDel.go
+++ b/src/cmdVM/vmDel.go
@@ -51,13 +51,13 @@ func (cmd *Del)Run(args []string) int {
 		uuid := vm.ID.String()
 		resp, err := client.R().Delete(host+"/vms/"+uuid)
 		if err != nil {
-			u.PrintlnErr("Failed deleting VM \""+vm.Name+"\" | "+uuid+" : "+err.Error())
+			u.PrintlnErr("Failed deleting VM \""+vm.Name+"\" : "+err.Error())
 			statusCode = 1
 		} else {
 			if resp.IsSuccess() {
-				u.Println("Deleted VM \""+vm.Name+"\" | "+uuid)
+				u.Println("Deleted VM \""+vm.Name+"\"")
 			} else {
-				u.PrintlnErr("Failed deleting VM \""+vm.Name+"\" | "+uuid+" : "+resp.Status()+": "+resp.String())
+				u.PrintlnErr("Failed deleting VM \""+vm.Name+"\" : "+resp.Status()+": "+resp.String())
 				statusCode = 1
 			}
 		}
diff --git a/src/cmdVM/vmDelAccess.go b/src/cmdVM/vmDelAccess.go
index ecb44e5..ecbbdab 100644
--- a/src/cmdVM/vmDelAccess.go
+++ b/src/cmdVM/vmDelAccess.go
@@ -29,7 +29,9 @@ func (cmd *DelAccess)PrintUsage() {
 	for _, desc := range cmd.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: "+cmd.GetName()+" [ID ...] [regex ...] email")
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	const usage string = `Only VMs matching the specified IDs or regexes will have their VM access deleted.
 Any number of IDs or regexes can be specified.
 The regex only matches the VM's name and is case-insensitive.
@@ -72,13 +74,13 @@ func (cmd *DelAccess)Run(args []string) int {
 		uuid := vm.ID.String()
 		resp, err := client.R().Delete(host+"/vms/"+uuid+"/access/"+email)
 		if err != nil {
-			u.PrintlnErr("Failed removing VM access for "+email+" in VM \""+vm.Name+"\" | "+uuid+" : "+err.Error())
+			u.PrintlnErr("Failed removing VM access for "+email+" in VM \""+vm.Name+"\" : "+err.Error())
 			statusCode = 1
 		} else {
 			if resp.IsSuccess() {
-				u.Println("Removed VM access for "+email+" in VM \""+vm.Name+"\" | "+uuid)
+				u.Println("Removed VM access for "+email+" in VM \""+vm.Name+"\"")
 			} else {
-				u.PrintlnErr("Failed removing VM access for "+email+" in VM \""+vm.Name+"\" | "+uuid+" : "+resp.Status()+": "+resp.String())
+				u.PrintlnErr("Failed removing VM access for "+email+" in VM \""+vm.Name+"\" : "+resp.Status()+": "+resp.String())
 				statusCode = 1
 			}
 		}
diff --git a/src/cmdVM/vmEdit.go b/src/cmdVM/vmEdit.go
index 0cfa98b..4631f2d 100644
--- a/src/cmdVM/vmEdit.go
+++ b/src/cmdVM/vmEdit.go
@@ -33,7 +33,9 @@ func (cmd *Edit)PrintUsage() {
 	for _, desc := range cmd.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: "+cmd.GetName()+" [ID ...] [regex ...] [name=\"new name\"] [cpus=n] [ram=n] [nic=none/user]")
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	const usage string = `Only VMs matching the specified IDs or regexes will be edited.
 Any number of IDs or regexes can be specified.
 The regex only matches the VM's name and is case-insensitive.
@@ -85,13 +87,13 @@ func (cmd *Edit)Run(args []string) int {
 		uuid := vm.ID.String()
 		resp, err := client.R().SetBody(vmParams).Put(host+"/vms/"+uuid)
 		if err != nil {
-			u.PrintlnErr("Failed editing VM \""+vm.Name+"\" | "+uuid+" : "+err.Error())
+			u.PrintlnErr("Failed editing VM \""+vm.Name+"\" : "+err.Error())
 			statusCode = 1
 		} else {
 			if resp.IsSuccess() {
-				u.Println("Edited VM \""+vm.Name+"\" | "+uuid)
+				u.Println("Edited VM \""+vm.Name+"\"")
 			} else {
-				u.PrintlnErr("Failed editing VM \""+vm.Name+"\" | "+uuid+" : "+resp.Status()+": "+resp.String())
+				u.PrintlnErr("Failed editing VM \""+vm.Name+"\" : "+resp.Status()+": "+resp.String())
 				statusCode = 1
 			}
 		}
diff --git a/src/cmdVM/vmExportDir.go b/src/cmdVM/vmExportDir.go
index 8c27f62..29138b0 100644
--- a/src/cmdVM/vmExportDir.go
+++ b/src/cmdVM/vmExportDir.go
@@ -28,7 +28,9 @@ func (cmd *ExportDir)PrintUsage() {
 	for _, desc := range cmd.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: ",cmd.GetName()," [ID ...] [regex ...] dir")
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("\"dir\" is the directory in the VM to export into a tar archive named after the VM ID.")
 	printRegexUsageDetails()
 }
@@ -64,16 +66,16 @@ func (cmd *ExportDir)Run(args []string) int {
 
 	for _, vm := range(vms) {
 		uuid := vm.ID.String()
-		outputFile := uuid+".tar"
+		outputFile := "exportdir_"+uuid+".tar"
 		resp, err := client.R().SetOutput(outputFile).SetBody(params).Get(host+"/vms/"+uuid+"/exportdir")
 		if err != nil {
-			u.PrintlnErr("Failed exporting "+dir+" from VM \""+vm.Name+"\" | "+uuid+" : "+err.Error())
+			u.PrintlnErr("Failed exporting "+dir+" from VM \""+vm.Name+"\" : "+err.Error())
 			statusCode = 1
 		} else {
 			if resp.IsSuccess() {
-				u.Println("Successfully exported "+dir+" from VM \""+vm.Name+"\" ("+uuid+") into "+outputFile)
+				u.Println("Successfully exported "+dir+" from VM \""+vm.Name+"\" into "+outputFile)
 			} else {
-				u.PrintlnErr("Failed exporting "+dir+" from VM \""+vm.Name+"\" | "+uuid+" : "+resp.Status()+": "+resp.String())
+				u.PrintlnErr("Failed exporting "+dir+" from VM \""+vm.Name+"\" : "+resp.Status()+": "+resp.String())
 				statusCode = 1
 			}
 		}
diff --git a/src/cmdVM/vmList.go b/src/cmdVM/vmList.go
index f418f8a..dc3967b 100644
--- a/src/cmdVM/vmList.go
+++ b/src/cmdVM/vmList.go
@@ -22,7 +22,9 @@ func (cmd *List)PrintUsage() {
 	for _, desc := range cmd.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: ",cmd.GetName(), " [-l] [ID ...] [regex ...]")
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("Use \"-l\" to specify detailed VMs output.")
 	printRegexUsageDetails()
 }
diff --git a/src/cmdVM/vmSetAccess.go b/src/cmdVM/vmSetAccess.go
index 7596912..4d07051 100644
--- a/src/cmdVM/vmSetAccess.go
+++ b/src/cmdVM/vmSetAccess.go
@@ -25,7 +25,9 @@ func (cmd *SetAccess)PrintUsage() {
 	for _, desc := range cmd.GetDesc() {
 		u.PrintlnErr(desc)
 	}
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	u.PrintlnErr("USAGE: "+cmd.GetName()+" [ID ...] [regex ...] email [capability ...]")
+	u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
 	const usage string = `Capabilities must be specified after the email.
 Only VMs matching the specified IDs or regexes will have their VM access set.
 Any number of IDs or regexes can be specified.
@@ -78,13 +80,13 @@ func (cmd *SetAccess)Run(args []string) int {
 		uuid := vm.ID.String()
 		resp, err := client.R().SetBody(userUpdatedAccessArgs).Put(host+"/vms/"+uuid+"/access/"+email)
 		if err != nil {
-			u.PrintlnErr("Failed removing VM access for "+email+" in VM \""+vm.Name+"\" | "+uuid+" : "+err.Error())
+			u.PrintlnErr("Failed removing VM access for "+email+" in VM \""+vm.Name+"\" : "+err.Error())
 			statusCode = 1
 		} else {
 			if resp.IsSuccess() {
-				u.Println("Removed VM access for "+email+" in VM \""+vm.Name+"\" | "+uuid)
+				u.Println("Removed VM access for "+email+" in VM \""+vm.Name+"\"")
 			} else {
-				u.PrintlnErr("Failed removing VM access for "+email+" in VM \""+vm.Name+"\" | "+uuid+" : "+resp.Status()+": "+resp.String())
+				u.PrintlnErr("Failed removing VM access for "+email+" in VM \""+vm.Name+"\" : "+resp.Status()+": "+resp.String())
 				statusCode = 1
 			}
 		}
diff --git a/src/cmdVM/vmShutdown.go b/src/cmdVM/vmShutdown.go
index b646738..f7d69ca 100644
--- a/src/cmdVM/vmShutdown.go
+++ b/src/cmdVM/vmShutdown.go
@@ -51,13 +51,13 @@ func (cmd *Shutdown)Run(args []string) int {
 		uuid := vm.ID.String()
 		resp, err := client.R().Put(host+"/vms/"+uuid+"/shutdown")
 		if err != nil {
-			u.PrintlnErr("Shutdown failed for VM \""+vm.Name+"\" | "+uuid+" : "+err.Error())
+			u.PrintlnErr("Shutdown failed for VM \""+vm.Name+"\" : "+err.Error())
 			statusCode = 1
 		} else {
 			if resp.IsSuccess() {
-				u.Println("Successfully sent shutdown message to VM \""+vm.Name+"\" | "+uuid)
+				u.Println("Successfully sent shutdown message to VM \""+vm.Name+"\"")
 			} else {
-				u.PrintlnErr("Shutdown failed for VM \""+vm.Name+"\" | "+uuid+" : "+resp.Status()+": "+resp.String())
+				u.PrintlnErr("Shutdown failed for VM \""+vm.Name+"\" : "+resp.Status()+": "+resp.String())
 				statusCode = 1
 			}
 		}
diff --git a/src/cmdVM/vmStart.go b/src/cmdVM/vmStart.go
index 7c9262b..5a57ed0 100644
--- a/src/cmdVM/vmStart.go
+++ b/src/cmdVM/vmStart.go
@@ -51,13 +51,13 @@ func (cmd *Start)Run(args []string) int {
 		uuid := vm.ID.String()
 		resp, err := client.R().Put(host+"/vms/"+uuid+"/start")
 		if err != nil {
-			u.PrintlnErr("Failed starting VM \""+vm.Name+"\" | "+uuid+" : "+err.Error())
+			u.PrintlnErr("Failed starting VM \""+vm.Name+"\" : "+err.Error())
 			statusCode = 1
 		} else {
 			if resp.IsSuccess() {
-				u.Println("Started VM \""+vm.Name+"\" | "+uuid)
+				u.Println("Started VM \""+vm.Name+"\"")
 			} else {
-				u.PrintlnErr("Failed starting VM \""+vm.Name+"\" | "+uuid+" : "+resp.Status()+": "+resp.String())
+				u.PrintlnErr("Failed starting VM \""+vm.Name+"\" : "+resp.Status()+": "+resp.String())
 				statusCode = 1
 			}
 		}
diff --git a/src/cmdVM/vmStop.go b/src/cmdVM/vmStop.go
index be2c902..ec6665a 100644
--- a/src/cmdVM/vmStop.go
+++ b/src/cmdVM/vmStop.go
@@ -51,13 +51,13 @@ func (cmd *Stop)Run(args []string) int {
 		uuid := vm.ID.String()
 		resp, err := client.R().Put(host+"/vms/"+uuid+"/stop")
 		if err != nil {
-			u.PrintlnErr("Failed stopping VM \""+vm.Name+"\" | "+uuid+" : "+err.Error())
+			u.PrintlnErr("Failed stopping VM \""+vm.Name+"\" : "+err.Error())
 			statusCode = 1
 		} else {
 			if resp.IsSuccess() {
-				u.Println("Stopped VM \""+vm.Name+"\" | "+uuid)
+				u.Println("Stopped VM \""+vm.Name+"\"")
 			} else {
-				u.PrintlnErr("Failed stopping VM \""+vm.Name+"\" | "+uuid+" : "+resp.Status()+": "+resp.String())
+				u.PrintlnErr("Failed stopping VM \""+vm.Name+"\" : "+resp.Status()+": "+resp.String())
 				statusCode = 1
 			}
 		}
-- 
GitLab