fix(region): vendor update (#22749)

This commit is contained in:
屈轩
2025-06-20 18:12:39 +08:00
committed by GitHub
parent 52f1de5547
commit 0a16227ef2
9 changed files with 71 additions and 48 deletions
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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=
+1 -1
View File
@@ -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
+2
View File
@@ -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":
+8 -5
View File
@@ -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
}
}
+16 -4
View File
@@ -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{}
+14 -9
View File
@@ -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
@@ -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
}
@@ -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