From 11d12ca7dbe42f4b7d05d721790913cd50e640d3 Mon Sep 17 00:00:00 2001 From: TangBin Date: Thu, 3 Dec 2020 10:02:24 +0800 Subject: [PATCH 1/3] fix(region): elb cached acl sync --- pkg/compute/models/loadbalancercachedacls.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/compute/models/loadbalancercachedacls.go b/pkg/compute/models/loadbalancercachedacls.go index ec9b9fbdd6..d919a3e02d 100644 --- a/pkg/compute/models/loadbalancercachedacls.go +++ b/pkg/compute/models/loadbalancercachedacls.go @@ -514,6 +514,7 @@ func (man *SCachedLoadbalancerAclManager) newFromCloudLoadbalancerAcl(ctx contex f := aclEntites.Fingerprint() if LoadbalancerAclManager.CountByFingerPrint(provider.ProjectId, f) == 0 { localAcl := &SLoadbalancerAcl{} + localAcl.SetModelManager(man, localAcl) localAcl.Name = acl.Name localAcl.Description = acl.Description localAcl.AclEntries = &aclEntites From 51292967440d941cf13444e9c751d22bd8a5107f Mon Sep 17 00:00:00 2001 From: TangBin Date: Thu, 3 Dec 2020 16:00:55 +0800 Subject: [PATCH 2/3] feat(webconsole): add huawei vnc support --- pkg/apis/webconsole/consts.go | 1 + pkg/compute/models/loadbalancercachedacls.go | 2 +- pkg/webconsole/handlers.go | 2 +- pkg/webconsole/session/remote_console.go | 3 ++- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/apis/webconsole/consts.go b/pkg/apis/webconsole/consts.go index 1f13b11073..0f5c4038a2 100644 --- a/pkg/apis/webconsole/consts.go +++ b/pkg/apis/webconsole/consts.go @@ -29,4 +29,5 @@ const ( VMRC = "vmrc" ZSTACK = "zstack" CTYUN = "ctyun" + HUAWEI = "huawei" ) diff --git a/pkg/compute/models/loadbalancercachedacls.go b/pkg/compute/models/loadbalancercachedacls.go index d919a3e02d..9e500b3e8d 100644 --- a/pkg/compute/models/loadbalancercachedacls.go +++ b/pkg/compute/models/loadbalancercachedacls.go @@ -514,7 +514,7 @@ func (man *SCachedLoadbalancerAclManager) newFromCloudLoadbalancerAcl(ctx contex f := aclEntites.Fingerprint() if LoadbalancerAclManager.CountByFingerPrint(provider.ProjectId, f) == 0 { localAcl := &SLoadbalancerAcl{} - localAcl.SetModelManager(man, localAcl) + localAcl.SetModelManager(LoadbalancerAclManager, localAcl) localAcl.Name = acl.Name localAcl.Description = acl.Description localAcl.AclEntries = &aclEntites diff --git a/pkg/webconsole/handlers.go b/pkg/webconsole/handlers.go index 3cdf0d1380..de9ff40ded 100644 --- a/pkg/webconsole/handlers.go +++ b/pkg/webconsole/handlers.go @@ -204,7 +204,7 @@ func handleServerRemoteConsole(ctx context.Context, w http.ResponseWriter, r *ht return } switch info.Protocol { - case session.ALIYUN, session.QCLOUD, session.OPENSTACK, session.VMRC, session.ZSTACK, session.CTYUN: + case session.ALIYUN, session.QCLOUD, session.OPENSTACK, session.VMRC, session.ZSTACK, session.CTYUN, session.HUAWEI: responsePublicCloudConsole(ctx, info, w) case session.VNC, session.SPICE, session.WMKS: handleDataSession(ctx, info, w, url.Values{"password": {info.GetPassword()}}, true) diff --git a/pkg/webconsole/session/remote_console.go b/pkg/webconsole/session/remote_console.go index 12496b5bef..9a41038313 100644 --- a/pkg/webconsole/session/remote_console.go +++ b/pkg/webconsole/session/remote_console.go @@ -34,6 +34,7 @@ const ( VMRC = api.VMRC ZSTACK = api.ZSTACK CTYUN = api.CTYUN + HUAWEI = api.HUAWEI ) type RemoteConsoleInfo struct { @@ -121,7 +122,7 @@ func (info *RemoteConsoleInfo) GetConnectParams() (string, error) { return info.getAliyunURL() case QCLOUD: return info.getQcloudURL() - case OPENSTACK, VMRC, ZSTACK, CTYUN: + case OPENSTACK, VMRC, ZSTACK, CTYUN, HUAWEI: return info.Url, nil default: return "", fmt.Errorf("Can't convert protocol %s to connect params", info.Protocol) From 4b171e1630c61cb7baecfe8a341f7a725512e9f0 Mon Sep 17 00:00:00 2001 From: TangBin Date: Thu, 3 Dec 2020 16:17:30 +0800 Subject: [PATCH 3/3] fix(region): huawei vnc protocal fix --- pkg/compute/models/loadbalancercachedacls.go | 2 +- pkg/multicloud/huawei/instance.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/compute/models/loadbalancercachedacls.go b/pkg/compute/models/loadbalancercachedacls.go index 9e500b3e8d..d032a7366f 100644 --- a/pkg/compute/models/loadbalancercachedacls.go +++ b/pkg/compute/models/loadbalancercachedacls.go @@ -521,7 +521,7 @@ func (man *SCachedLoadbalancerAclManager) newFromCloudLoadbalancerAcl(ctx contex localAcl.Fingerprint = f localAcl.IsPublic = true localAcl.PublicScope = string(rbacutils.ScopeDomain) - err := LoadbalancerAclManager.TableSpec().Insert(ctx, &localAcl) + err := LoadbalancerAclManager.TableSpec().Insert(ctx, localAcl) if err != nil { return nil, errors.Wrap(err, "cachedLoadbalancerAclManager.new.InsertAcl") } diff --git a/pkg/multicloud/huawei/instance.go b/pkg/multicloud/huawei/instance.go index aa0ad21ea3..6e4fbbe6a0 100644 --- a/pkg/multicloud/huawei/instance.go +++ b/pkg/multicloud/huawei/instance.go @@ -1230,6 +1230,10 @@ func (self *SRegion) GetInstanceVNCUrl(instanceId string) (jsonutils.JSONObject, return nil, err } + if retDict, ok := ret.(*jsonutils.JSONDict); ok { + retDict.Set("protocol", jsonutils.NewString("huawei")) + } + return ret, nil }