From 5e2760ef13e12f222459ae808048de36f6bad120 Mon Sep 17 00:00:00 2001 From: Zexi Li Date: Thu, 21 Mar 2019 17:26:02 +0800 Subject: [PATCH] webconsole: append protocol params for each connParams --- cmd/climc/shell/webconsole.go | 1 - pkg/webconsole/session/remote_console.go | 18 +++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/cmd/climc/shell/webconsole.go b/cmd/climc/shell/webconsole.go index 41696c5301..ce9c9f853b 100644 --- a/cmd/climc/shell/webconsole.go +++ b/cmd/climc/shell/webconsole.go @@ -25,7 +25,6 @@ func init() { if err != nil { return err } - u.Path = "index.html" u.RawQuery = connParams fmt.Println(u.String()) return nil diff --git a/pkg/webconsole/session/remote_console.go b/pkg/webconsole/session/remote_console.go index 20febea98f..3afe3b3d56 100644 --- a/pkg/webconsole/session/remote_console.go +++ b/pkg/webconsole/session/remote_console.go @@ -104,11 +104,21 @@ func (info *RemoteConsoleInfo) GetPassword() string { } func (info *RemoteConsoleInfo) getOpenStackURL() (string, error) { - return info.Url, nil + return info.getConnParamsURL(info.Url, nil), nil +} + +func (info *RemoteConsoleInfo) getConnParamsURL(baseURL string, params url.Values) string { + if params == nil { + params = url.Values{} + } + params.Set("protocol", info.Protocol) + queryURL := params.Encode() + return fmt.Sprintf("%s?%s", baseURL, queryURL) } func (info *RemoteConsoleInfo) getQcloudURL() (string, error) { - return "https://img.qcloud.com/qcloud/app/active_vnc/index.html?InstanceVncUrl=" + info.Url, nil + base := "https://img.qcloud.com/qcloud/app/active_vnc/index.html?InstanceVncUrl=" + info.Url + return info.getConnParamsURL(base, nil), nil } func (info *RemoteConsoleInfo) getAliyunURL() (string, error) { @@ -122,8 +132,6 @@ func (info *RemoteConsoleInfo) getAliyunURL() (string, error) { "instanceId": {info.InstanceId}, "isWindows": {isWindows}, "password": {info.Password}, - "protocol": {info.Protocol}, } - queryURL := params.Encode() - return fmt.Sprintf("%s?%s", base, queryURL), nil + return info.getConnParamsURL(base, params), nil }