Merge pull request #618 in YUNIONIO/onecloud from ~QUXUAN/onecloud:hotfix/qx-qcloud-webconsole to release/2.3.0

* commit 'd15aa96f861fd6f388c6a26f9b94c1d2f90feaf8':
  修复同步规则缺失问题
  磁盘名称为未命名时使用磁盘ID
  补充腾讯云webconsole
This commit is contained in:
邱剑
2018-11-30 20:06:10 +08:00
5 changed files with 28 additions and 8 deletions
+1 -1
View File
@@ -178,7 +178,7 @@ func (self *SDisk) Resize(size int64) error {
}
func (self *SDisk) GetName() string {
if len(self.DiskName) > 0 {
if len(self.DiskName) > 0 && self.DiskName != "未命名" {
return self.DiskName
}
return self.DiskId
+5 -2
View File
@@ -162,7 +162,10 @@ func (self *SInstance) GetId() string {
}
func (self *SInstance) GetName() string {
return self.InstanceName
if len(self.InstanceName) > 0 && self.InstanceName != "未命名" {
return self.InstanceName
}
return self.InstanceId
}
func (self *SInstance) GetGlobalId() string {
@@ -364,7 +367,7 @@ func (self *SInstance) GetVNCInfo() (jsonutils.JSONObject, error) {
return nil, err
}
ret := jsonutils.NewDict()
ret.Add(jsonutils.NewString("https://img.qcloud.com/qcloud/app/active_vnc/index.html?InstanceVncUrl="+url), "url")
ret.Add(jsonutils.NewString(url), "url")
ret.Add(jsonutils.NewString("qcloud"), "protocol")
ret.Add(jsonutils.NewString(self.InstanceId), "instance_id")
return ret, nil
+2 -2
View File
@@ -264,8 +264,8 @@ func (self *SSecurityGroup) GetRules() ([]secrules.SecurityRule, error) {
secgroup.SecurityGroupPolicySet.Ingress[i].direction = "in"
}
originRules := []SecurityGroupPolicy{}
originRules = append(secgroup.SecurityGroupPolicySet.Egress)
originRules = append(secgroup.SecurityGroupPolicySet.Ingress)
originRules = append(originRules, secgroup.SecurityGroupPolicySet.Egress...)
originRules = append(originRules, secgroup.SecurityGroupPolicySet.Ingress...)
sort.Sort(SecurityGroupRuleSet(originRules))
rules := []secrules.SecurityRule{}
priority := 100
+1 -1
View File
@@ -194,7 +194,7 @@ func handleServerRemoteConsole(ctx context.Context, w http.ResponseWriter, r *ht
return
}
switch info.Protocol {
case session.ALIYUN:
case session.ALIYUN, session.QCLOUD:
responsePublicCloudConsole(info, w)
case session.VNC, session.SPICE, session.WMKS:
handleDataSession(info, w)
+19 -2
View File
@@ -12,6 +12,7 @@ import (
const (
VNC = "vnc"
ALIYUN = "aliyun"
QCLOUD = "qcloud"
SPICE = "spice"
WMKS = "wmks"
)
@@ -74,10 +75,26 @@ func (info *RemoteConsoleInfo) ShowInfo() string {
}
func (info *RemoteConsoleInfo) GetConnectParams() (string, error) {
if info.Protocol != ALIYUN {
return "", fmt.Errorf("Can't convert protocol %s to connect params", info.Protocol)
if info.Protocol == ALIYUN {
return info.getAliyunUrl()
}
if info.Protocol == QCLOUD {
return info.getQcloudUrl()
}
return "", fmt.Errorf("Can't convert protocol %s to connect params", info.Protocol)
}
func (info *RemoteConsoleInfo) getQcloudUrl() (string, error) {
base := "https://img.qcloud.com/qcloud/app/active_vnc/index.html"
params := url.Values{
"InstanceVncUrl": {info.Url},
}
return fmt.Sprintf("%s?%s", base, params.Encode()), nil
}
func (info *RemoteConsoleInfo) getAliyunUrl() (string, error) {
isWindows := "False"
if info.OsName == "Windows" {
isWindows = "True"