From 0a16227ef2e845b885ca5eddafbd108c25296b78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Fri, 20 Jun 2025 18:12:39 +0800 Subject: [PATCH] fix(region): vendor update (#22749) --- go.mod | 2 +- go.sum | 4 +-- vendor/modules.txt | 2 +- .../cloudmux/pkg/multicloud/aliyun/aliyun.go | 2 ++ .../multicloud/aliyun/provider/provider.go | 13 +++++--- .../pkg/multicloud/qcloud/loadbalancer.go | 20 ++++++++--- .../multicloud/qcloud/loadbalancer_backend.go | 23 ++++++++----- .../qcloud/loadbalancer_backendgroup.go | 33 ++++++++++++------- .../qcloud/loadbalancer_listenerrule.go | 20 ++++------- 9 files changed, 71 insertions(+), 48 deletions(-) diff --git a/go.mod b/go.mod index 49fb05ccdd..496d450843 100644 --- a/go.mod +++ b/go.mod @@ -96,7 +96,7 @@ require ( k8s.io/cri-api v0.22.17 k8s.io/klog/v2 v2.20.0 moul.io/http2curl/v2 v2.3.0 - yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20250618092159-24a4b21d2439 + yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20250620092920-5cf87c1f27fd yunion.io/x/executor v0.0.0-20250518005516-5402e9e0bed0 yunion.io/x/jsonutils v1.0.1-0.20250507052344-1abcf4f443b1 yunion.io/x/log v1.0.1-0.20240305175729-7cf2d6cd5a91 diff --git a/go.sum b/go.sum index 2c002c47ac..33d01a74f1 100644 --- a/go.sum +++ b/go.sum @@ -1412,8 +1412,8 @@ sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20250618092159-24a4b21d2439 h1:LpoTE3tGWCh7r9IcEhI82wpXgIGj+lU2skW2GWwUTM4= -yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20250618092159-24a4b21d2439/go.mod h1:FXxAEbdNfWXX9gjME3K2nJhkydHY5EKEUZb+RLEzVwQ= +yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20250620092920-5cf87c1f27fd h1:FvsOvo2KpO8eSrz/amhKV6WZBgvOFOWZrtxrqIm+Z4s= +yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20250620092920-5cf87c1f27fd/go.mod h1:FXxAEbdNfWXX9gjME3K2nJhkydHY5EKEUZb+RLEzVwQ= yunion.io/x/executor v0.0.0-20250518005516-5402e9e0bed0 h1:msG4SiDSVU7CrXH06WuHlNEZXIooTcmNbfrIGHuIHBU= yunion.io/x/executor v0.0.0-20250518005516-5402e9e0bed0/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws= yunion.io/x/jsonutils v0.0.0-20190625054549-a964e1e8a051/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634= diff --git a/vendor/modules.txt b/vendor/modules.txt index b5bbb3c7dc..9a24888ddc 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1852,7 +1852,7 @@ sigs.k8s.io/structured-merge-diff/v4/value # sigs.k8s.io/yaml v1.2.0 ## explicit; go 1.12 sigs.k8s.io/yaml -# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20250618092159-24a4b21d2439 +# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20250620092920-5cf87c1f27fd ## explicit; go 1.21 yunion.io/x/cloudmux/pkg/apis yunion.io/x/cloudmux/pkg/apis/billing diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/aliyun.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/aliyun.go index 5894606d0d..7962cc6f9a 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/aliyun.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/aliyun.go @@ -218,6 +218,8 @@ func doRequest(client *sdk.Client, domain, apiVersion, apiName string, params ma "Forbidden.AccessKeyDisabled", "Forbidden.AccessKey": return nil, errors.Wrapf(cloudprovider.ErrInvalidAccessKey, err.Error()) + case "Forbidden.RAM": + return nil, errors.Wrapf(cloudprovider.ErrForbidden, err.Error()) case "404 Not Found", "InstanceNotFound": return nil, errors.Wrap(cloudprovider.ErrNotFound, err.Error()) case "OperationDenied.NoStock": diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/provider/provider.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/provider/provider.go index e71c9ed2e7..aada456b73 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/provider/provider.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/provider/provider.go @@ -372,15 +372,18 @@ func (self *SAliyunProvider) GetSamlEntityId() string { func (self *SAliyunProvider) GetICloudDnsZones() ([]cloudprovider.ICloudDnsZone, error) { izones := []cloudprovider.ICloudDnsZone{} - privateZone, err := self.client.GetPrivateICloudDnsZones() - if err != nil { - return nil, errors.Wrap(err, "self.client.GetPrivateICloudDnsZones()") + { + privateZone, err := self.client.GetPrivateICloudDnsZones() + if err != nil && errors.Cause(err) != cloudprovider.ErrForbidden { + return nil, errors.Wrap(err, "self.client.GetPrivateICloudDnsZones()") + } else { + izones = append(izones, privateZone...) + } } publicZone, err := self.client.GetPublicICloudDnsZones() if err != nil { return nil, errors.Wrap(err, "self.client.GetPrivateICloudDnsZones()") } - izones = append(izones, privateZone...) izones = append(izones, publicZone...) return izones, nil } @@ -389,7 +392,7 @@ func (self *SAliyunProvider) GetICloudDnsZoneById(id string) (cloudprovider.IClo if err == nil { return privateIzone, nil } else { - if errors.Cause(err) != cloudprovider.ErrNotFound { + if errors.Cause(err) != cloudprovider.ErrNotFound && errors.Cause(err) != cloudprovider.ErrForbidden { return nil, err } } diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer.go index 73ab5b1f3e..6a4e724f66 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer.go @@ -295,10 +295,22 @@ func (self *SLoadbalancer) GetILoadBalancerBackendGroups() ([]cloudprovider.IClo } lbbgs := []SLBBackendGroup{} for i := range listeners { - lbbgs = append(lbbgs, SLBBackendGroup{ - lb: self, - listener: &listeners[i], - }) + if listeners[i].GetListenerType() == "http" || listeners[i].GetListenerType() == "https" { + for j := range listeners[i].Rules { + lbbgs = append(lbbgs, SLBBackendGroup{ + lb: self, + listener: &listeners[i], + domain: listeners[i].Rules[j].Domain, + path: listeners[i].Rules[j].URL, + }) + } + + } else { + lbbgs = append(lbbgs, SLBBackendGroup{ + lb: self, + listener: &listeners[i], + }) + } } ret := []cloudprovider.ICloudLoadbalancerBackendGroup{} diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_backend.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_backend.go index 7fc4877174..83594ac882 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_backend.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_backend.go @@ -38,6 +38,8 @@ type SLBBackend struct { RegisteredTime string `json:"RegisteredTime"` Type string `json:"Type"` Port int `json:"Port"` + Domain string + Url string } // ========================================================== @@ -60,7 +62,10 @@ type Rule struct { // backend InstanceId + protocol +Port + ip + rip全局唯一 func (self *SLBBackend) GetId() string { - return fmt.Sprintf("%s/%s-%d", self.group.GetId(), self.InstanceId, self.Port) + if len(self.Domain) == 0 { + return fmt.Sprintf("%s/%s-%d", self.group.GetId(), self.InstanceId, self.Port) + } + return fmt.Sprintf("%s/%s-%d:%s%s", self.group.GetId(), self.InstanceId, self.Port, self.Domain, self.Url) } func (self *SLBBackend) GetName() string { @@ -138,21 +143,21 @@ func (self *SRegion) GetBackends(lbId, listenerId string) ([]SLBBackend, error) return nil, err } backends := []SLBBackend{} - for _, entry := range lbackends { + for k := range lbackends { + entry := lbackends[k] backends = append(backends, entry.Targets...) - for _, r := range entry.Rules { - backends = append(backends, r.Targets...) + for i := range entry.Rules { + for j := range entry.Rules[i].Targets { + entry.Rules[i].Targets[j].Domain = entry.Rules[i].Domain + entry.Rules[i].Targets[j].Url = entry.Rules[i].URL + backends = append(backends, entry.Rules[i].Targets[j]) + } } } return backends, nil } func (self *SLBBackend) SyncConf(ctx context.Context, port, weight int) error { - //err := self.group.UpdateBackendServer(self.InstanceId, self.Weight, self.Port, weight, port) - //if err != nil { - // return err - //} - self.Port = port self.Weight = weight return nil diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_backendgroup.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_backendgroup.go index 596d11b304..9b6aaec538 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_backendgroup.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_backendgroup.go @@ -31,10 +31,12 @@ type SLBBackendGroup struct { QcloudTags lb *SLoadbalancer // 必须不能为nil listener *SLBListener // 可能为nil + domain string + path string } // 返回requestid -func (self *SLBBackendGroup) appLBBackendServer(action string, serverId string, weight int, port int) (string, error) { +func (self *SLBBackendGroup) appLBBackendServer(action string, serverId string, weight int, port int, domain, url string) (string, error) { params := map[string]string{ "LoadBalancerId": self.lb.LoadBalancerId, "ListenerId": self.listener.ListenerId, @@ -42,6 +44,10 @@ func (self *SLBBackendGroup) appLBBackendServer(action string, serverId string, "Targets.0.Port": strconv.Itoa(port), "Targets.0.Weight": strconv.Itoa(weight), } + if len(domain) > 0 { + params["Domain"] = domain + params["Url"] = url + } resp, err := self.lb.region.clbRequest(action, params) if err != nil { @@ -94,7 +100,7 @@ func (self *SLBBackendGroup) updateBackendServerPort(action string, serverId str // https://cloud.tencent.com/document/product/214/30676 // https://cloud.tencent.com/document/product/214/31789 func (self *SLBBackendGroup) AddBackendServer(serverId string, weight int, port int) (cloudprovider.ICloudLoadbalancerBackend, error) { - requestId, err := self.appLBBackendServer("RegisterTargets", serverId, weight, port) + requestId, err := self.appLBBackendServer("RegisterTargets", serverId, weight, port, self.domain, self.path) if err != nil { return nil, err } @@ -117,7 +123,7 @@ func (self *SLBBackendGroup) AddBackendServer(serverId string, weight int, port // https://cloud.tencent.com/document/product/214/30687 // https://cloud.tencent.com/document/product/214/31794 func (self *SLBBackendGroup) RemoveBackendServer(serverId string, weight int, port int) error { - requestId, err := self.appLBBackendServer("DeregisterTargets", serverId, weight, port) + requestId, err := self.appLBBackendServer("DeregisterTargets", serverId, weight, port, self.domain, self.path) if err != nil { if strings.Contains(err.Error(), "not registered") { return nil @@ -146,7 +152,10 @@ func backendGroupIdGen(lbid string, secondId string) string { } func (self *SLBBackendGroup) GetId() string { - return self.listener.GetId() + if len(self.domain) == 0 { + return self.listener.GetGlobalId() + } + return fmt.Sprintf("%s:%s%s", self.listener.GetGlobalId(), self.domain, self.path) } func (self *SLBBackendGroup) GetName() string { @@ -154,7 +163,7 @@ func (self *SLBBackendGroup) GetName() string { } func (self *SLBBackendGroup) GetGlobalId() string { - return self.listener.GetGlobalId() + return self.GetId() } func (self *SLBBackendGroup) GetStatus() string { @@ -180,13 +189,9 @@ func (self *SLBBackendGroup) GetILoadbalancerBackends() ([]cloudprovider.ICloudL } ret := []cloudprovider.ICloudLoadbalancerBackend{} - globalIds := map[string]bool{} for i := range backends { backends[i].group = self - if _, ok := globalIds[backends[i].GetGlobalId()]; !ok { - globalIds[backends[i].GetGlobalId()] = true - ret = append(ret, &backends[i]) - } + ret = append(ret, &backends[i]) } return ret, nil @@ -210,8 +215,12 @@ func (self *SLBBackendGroup) GetBackends() ([]SLBBackend, error) { if err != nil { return nil, err } + ret := []SLBBackend{} for i := range backends { - backends[i].group = self + if backends[i].Domain == self.domain && backends[i].Url == self.path { + backends[i].group = self + ret = append(ret, backends[i]) + } } - return backends, nil + return ret, nil } diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_listenerrule.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_listenerrule.go index e9849212b2..e433651cad 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_listenerrule.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_listenerrule.go @@ -104,25 +104,17 @@ func (self *SLBListenerRule) GetPath() string { } func (self *SLBListenerRule) GetBackendGroup() *SLBBackendGroup { - t := self.listener.GetListenerType() - if t == api.LB_LISTENER_TYPE_HTTP || t == api.LB_LISTENER_TYPE_HTTPS { - return &SLBBackendGroup{ - lb: self.listener.lb, - listener: self.listener, - } + return &SLBBackendGroup{ + lb: self.listener.lb, + listener: self.listener, + domain: self.Domain, + path: self.URL, } - - return nil } // 只有http、https协议监听规则有backendgroupid func (self *SLBListenerRule) GetBackendGroupId() string { - bg := self.GetBackendGroup() - if bg == nil { - return "" - } - - return bg.GetId() + return self.GetBackendGroup().GetGlobalId() } // https://cloud.tencent.com/document/api/214/30688