From 5a8ee9d91cb12601afa8103f77337a140aa5baa2 Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Fri, 18 Sep 2020 14:34:36 +0800 Subject: [PATCH] fix: add esxicli vmrc/webmks command --- pkg/multicloud/esxi/shell/virtualmachine.go | 26 +++++++++++++++++++++ pkg/multicloud/esxi/virtualmachine.go | 8 +++++++ 2 files changed, 34 insertions(+) diff --git a/pkg/multicloud/esxi/shell/virtualmachine.go b/pkg/multicloud/esxi/shell/virtualmachine.go index ae3ed47b35..f771fd4691 100644 --- a/pkg/multicloud/esxi/shell/virtualmachine.go +++ b/pkg/multicloud/esxi/shell/virtualmachine.go @@ -223,6 +223,32 @@ func init() { return nil }) + shellutils.R(&VirtualMachineShowOptions{}, "vm-vmrc", "Show vm VMRC connection", func(cli *esxi.SESXiClient, args *VirtualMachineShowOptions) error { + vm, err := getVM(cli, args) + if err != nil { + return err + } + info, err := vm.GetVmrcInfo() + if err != nil { + return err + } + printutils.PrintJSONObject(info) + return nil + }) + + shellutils.R(&VirtualMachineShowOptions{}, "vm-webmks", "Show vm webmks connection", func(cli *esxi.SESXiClient, args *VirtualMachineShowOptions) error { + vm, err := getVM(cli, args) + if err != nil { + return err + } + info, err := vm.GetWebmksInfo() + if err != nil { + return err + } + printutils.PrintJSONObject(info) + return nil + }) + shellutils.R(&VirtualMachineShowOptions{}, "vm-file-status", "Show vm files details", func(cli *esxi.SESXiClient, args *VirtualMachineShowOptions) error { vm, err := getVM(cli, args) if err != nil { diff --git a/pkg/multicloud/esxi/virtualmachine.go b/pkg/multicloud/esxi/virtualmachine.go index 0746f960d8..28c783a710 100644 --- a/pkg/multicloud/esxi/virtualmachine.go +++ b/pkg/multicloud/esxi/virtualmachine.go @@ -584,6 +584,14 @@ func (self *SVirtualMachine) GetVNCInfo() (jsonutils.JSONObject, error) { return self.acquireVmrcUrl() } +func (self *SVirtualMachine) GetVmrcInfo() (jsonutils.JSONObject, error) { + return self.acquireVmrcUrl() +} + +func (self *SVirtualMachine) GetWebmksInfo() (jsonutils.JSONObject, error) { + return self.acquireWebmksTicket("webmks") +} + func (self *SVirtualMachine) acquireWebmksTicket(ticketType string) (jsonutils.JSONObject, error) { vm := object.NewVirtualMachine(self.manager.client.Client, self.getVirtualMachine().Self) ticket, err := vm.AcquireTicket(self.manager.context, ticketType)