mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
fix(region): vendor update for lb backend sync (#20977)
This commit is contained in:
@@ -88,7 +88,7 @@ require (
|
||||
k8s.io/client-go v0.19.3
|
||||
k8s.io/cluster-bootstrap v0.19.3
|
||||
moul.io/http2curl/v2 v2.3.0
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240729040029-cb2e2f9a173b
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240807034259-674bf1923f49
|
||||
yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32
|
||||
yunion.io/x/jsonutils v1.0.1-0.20240203102553-4096f103b401
|
||||
yunion.io/x/log v1.0.1-0.20240305175729-7cf2d6cd5a91
|
||||
|
||||
@@ -1210,8 +1210,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.20240729040029-cb2e2f9a173b h1:YECtEQ1IirkldkITfaYPCOZj1MoXIF/gkfTVeDsfBok=
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240729040029-cb2e2f9a173b/go.mod h1:iLoBHVR2Eur/1WJSGcbZaEwpzh/iqXvbFCsX9/xt8CI=
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240807034259-674bf1923f49 h1:lklD0OVAI9Lq0A2AyGQTfIFIBxmX5/Tn/OY8OhsZv70=
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240807034259-674bf1923f49/go.mod h1:iLoBHVR2Eur/1WJSGcbZaEwpzh/iqXvbFCsX9/xt8CI=
|
||||
yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32 h1:v7POYkQwo1XzOxBoIoRVr/k0V9Y5JyjpshlIFa9raug=
|
||||
yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws=
|
||||
yunion.io/x/jsonutils v0.0.0-20190625054549-a964e1e8a051/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634=
|
||||
|
||||
@@ -16,6 +16,7 @@ package models
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/cloudmux/pkg/cloudprovider"
|
||||
@@ -581,7 +582,6 @@ func (lbbg *SLoadbalancerBackendGroup) SyncLoadbalancerBackends(ctx context.Cont
|
||||
}
|
||||
|
||||
func (lbb *SLoadbalancerBackend) constructFieldsFromCloudLoadbalancerBackend(ext cloudprovider.ICloudLoadbalancerBackend, managerId string) error {
|
||||
// lbb.Name = extLoadbalancerBackend.GetName()
|
||||
lbb.Status = ext.GetStatus()
|
||||
|
||||
lbb.Weight = ext.GetWeight()
|
||||
@@ -590,14 +590,21 @@ func (lbb *SLoadbalancerBackend) constructFieldsFromCloudLoadbalancerBackend(ext
|
||||
lbb.BackendType = ext.GetBackendType()
|
||||
lbb.BackendRole = ext.GetBackendRole()
|
||||
|
||||
if lbb.BackendType == api.LB_BACKEND_IP {
|
||||
lbb.Address = ext.GetIpAddress()
|
||||
} else {
|
||||
ipAddr := ext.GetIpAddress()
|
||||
if len(lbb.Address) == 0 || ipAddr != lbb.Address {
|
||||
lbb.Address = ipAddr
|
||||
}
|
||||
|
||||
if lbb.BackendType == api.LB_BACKEND_GUEST {
|
||||
instance, err := db.FetchByExternalIdAndManagerId(GuestManager, ext.GetBackendId(), func(q *sqlchemy.SQuery) *sqlchemy.SQuery {
|
||||
sq := HostManager.Query().SubQuery()
|
||||
return q.Join(sq, sqlchemy.Equals(sq.Field("id"), q.Field("host_id"))).Filter(sqlchemy.Equals(sq.Field("manager_id"), managerId))
|
||||
})
|
||||
if err != nil {
|
||||
// 部分弹性伸缩组实例未同步, 忽略找不到实例错误
|
||||
if errors.Cause(err) == sql.ErrNoRows {
|
||||
return nil
|
||||
}
|
||||
return errors.Wrapf(err, "FetchByExternalIdAndManagerId %s", ext.GetBackendId())
|
||||
}
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -1485,7 +1485,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.20240729040029-cb2e2f9a173b
|
||||
# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240807034259-674bf1923f49
|
||||
## explicit; go 1.18
|
||||
yunion.io/x/cloudmux/pkg/apis
|
||||
yunion.io/x/cloudmux/pkg/apis/billing
|
||||
|
||||
+70
-50
@@ -44,42 +44,52 @@ const (
|
||||
HUAWEI_DEFAULT_REGION = "cn-north-4"
|
||||
HUAWEI_API_VERSION = "2018-12-25"
|
||||
|
||||
SERVICE_IAM = "iam"
|
||||
SERVICE_IAM_V3 = "iam_v3"
|
||||
SERVICE_IAM_V3_EXT = "iam_v3_ext"
|
||||
SERVICE_ELB = "elb"
|
||||
SERVICE_VPC = "vpc"
|
||||
SERVICE_VPC_V2_0 = "vpc_v2.0"
|
||||
SERVICE_VPC_V3 = "vpc_v3"
|
||||
SERVICE_CES = "ces"
|
||||
SERVICE_RDS = "rds"
|
||||
SERVICE_ECS = "ecs"
|
||||
SERVICE_ECS_V1_1 = "ecs_v1.1"
|
||||
SERVICE_ECS_V2_1 = "ecs_v2.1"
|
||||
SERVICE_EPS = "eps"
|
||||
SERVICE_EVS = "evs"
|
||||
SERVICE_EVS_V1 = "evs_v1"
|
||||
SERVICE_EVS_V2_1 = "evs_v2.1"
|
||||
SERVICE_BSS = "bss"
|
||||
SERVICE_SFS = "sfs-turbo"
|
||||
SERVICE_CTS = "cts"
|
||||
SERVICE_NAT = "nat"
|
||||
SERVICE_NAT_V2 = "nat_v2"
|
||||
SERVICE_BMS = "bms"
|
||||
SERVICE_CCI = "cci"
|
||||
SERVICE_CSBS = "csbs"
|
||||
SERVICE_IMS = "ims"
|
||||
SERVICE_IMS_V1 = "ims_v1"
|
||||
SERVICE_AS = "as"
|
||||
SERVICE_CCE = "cce"
|
||||
SERVICE_DCS = "dcs"
|
||||
SERVICE_MODELARTS = "modelarts"
|
||||
SERVICE_MODELARTS_V1 = "modelarts_v1"
|
||||
SERVICE_SCM = "scm"
|
||||
SERVICE_CDN = "cdn"
|
||||
SERVICE_GAUSSDB = "gaussdb"
|
||||
SERVICE_GAUSSDB_NOSQL = "gaussdb-nosql"
|
||||
SERVICE_FUNCTIONGRAPH = "functiongraph"
|
||||
SERVICE_IAM = "iam"
|
||||
SERVICE_IAM_V3 = "iam_v3"
|
||||
SERVICE_IAM_V3_EXT = "iam_v3_ext"
|
||||
SERVICE_ELB = "elb"
|
||||
SERVICE_VPC = "vpc"
|
||||
SERVICE_VPC_V2_0 = "vpc_v2.0"
|
||||
SERVICE_VPC_V3 = "vpc_v3"
|
||||
SERVICE_VPN = "vpn"
|
||||
SERVICE_CES = "ces"
|
||||
SERVICE_RDS = "rds"
|
||||
SERVICE_ECS = "ecs"
|
||||
SERVICE_ECS_V1_1 = "ecs_v1.1"
|
||||
SERVICE_ECS_V2_1 = "ecs_v2.1"
|
||||
SERVICE_EPS = "eps"
|
||||
SERVICE_EVS = "evs"
|
||||
SERVICE_EVS_V1 = "evs_v1"
|
||||
SERVICE_EVS_V2_1 = "evs_v2.1"
|
||||
SERVICE_BSS = "bss"
|
||||
SERVICE_BSS_INTL = "bss-intl"
|
||||
SERVICE_SFS = "sfs-turbo"
|
||||
SERVICE_CTS = "cts"
|
||||
SERVICE_NAT = "nat"
|
||||
SERVICE_NAT_V2 = "nat_v2"
|
||||
SERVICE_BMS = "bms"
|
||||
SERVICE_CCI = "cci"
|
||||
SERVICE_CSBS = "csbs"
|
||||
SERVICE_IMS = "ims"
|
||||
SERVICE_IMS_V1 = "ims_v1"
|
||||
SERVICE_AS = "as"
|
||||
SERVICE_CCE = "cce"
|
||||
SERVICE_DCS = "dcs"
|
||||
SERVICE_MODELARTS = "modelarts"
|
||||
SERVICE_MODELARTS_V1 = "modelarts_v1"
|
||||
SERVICE_SCM = "scm"
|
||||
SERVICE_CDN = "cdn"
|
||||
SERVICE_GAUSSDB = "gaussdb"
|
||||
SERVICE_GAUSSDB_V3_1 = "gaussdb_v3.1"
|
||||
SERVICE_GAUSSDB_NOSQL = "gaussdb-nosql"
|
||||
SERVICE_GAUSSDB_NOSQL_V3_1 = "gaussdb-nosql_v3.1"
|
||||
SERVICE_GAUSSDB_OPENGAUSS = "gaussdb-opengauss"
|
||||
SERVICE_FUNCTIONGRAPH = "functiongraph"
|
||||
SERVICE_APIG = "apig"
|
||||
SERVICE_APIG_V1_0 = "apig_v1.0"
|
||||
SERVICE_MRS = "mrs"
|
||||
SERVICE_DIS = "dis"
|
||||
SERVICE_LTS = "lts"
|
||||
)
|
||||
|
||||
type HuaweiClientConfig struct {
|
||||
@@ -453,21 +463,31 @@ type SBalance struct {
|
||||
|
||||
// https://console.huaweicloud.com/apiexplorer/#/openapi/BSS/doc?api=ShowCustomerAccountBalances
|
||||
func (self *SHuaweiClient) QueryAccountBalance() (*SBalance, error) {
|
||||
resp, err := self.list(SERVICE_BSS, "", "accounts/customer-accounts/balances", nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
ret := struct {
|
||||
AccountBalances []SBalance
|
||||
Currency string
|
||||
}{}
|
||||
for _, service := range []string{SERVICE_BSS, SERVICE_BSS_INTL} {
|
||||
resp, err := self.list(service, "", "accounts/customer-accounts/balances", nil)
|
||||
if err != nil {
|
||||
// 国际区账号会报错: {"error_code":"CBC.0150","error_msg":"Access denied. The customer does not belong to the website you are now at."}
|
||||
if e, ok := err.(*httputils.JSONClientError); ok && e.Class == "CBC.0150" {
|
||||
continue
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
err = resp.Unmarshal(&ret)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
break
|
||||
}
|
||||
ret := []SBalance{}
|
||||
err = resp.Unmarshal(&ret, "account_balances")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for i := range ret {
|
||||
if ret[i].AccountType == 1 {
|
||||
return &ret[i], nil
|
||||
for i := range ret.AccountBalances {
|
||||
if ret.AccountBalances[i].AccountType == 1 {
|
||||
return &ret.AccountBalances[i], nil
|
||||
}
|
||||
}
|
||||
return &SBalance{Currency: "CYN"}, nil
|
||||
return &SBalance{Currency: ret.Currency}, nil
|
||||
}
|
||||
|
||||
func (self *SHuaweiClient) GetISSLCertificates() ([]cloudprovider.ICloudSSLCertificate, error) {
|
||||
@@ -638,8 +658,8 @@ func (self *SHuaweiClient) getUrl(service, regionId, resource string, method htt
|
||||
url = fmt.Sprintf("https://evs.%s.myhuaweicloud.com/v2/%s/%s", regionId, projectId, resource)
|
||||
case SERVICE_EVS_V2_1:
|
||||
url = fmt.Sprintf("https://evs.%s.myhuaweicloud.com/v2.1/%s/%s", regionId, projectId, resource)
|
||||
case SERVICE_BSS:
|
||||
url = fmt.Sprintf("https://bss.myhuaweicloud.com/v2/%s", resource)
|
||||
case SERVICE_BSS, SERVICE_BSS_INTL:
|
||||
url = fmt.Sprintf("https://%s.myhuaweicloud.com/v2/%s", service, resource)
|
||||
case SERVICE_SFS:
|
||||
url = fmt.Sprintf("https://sfs-turbo.%s.myhuaweicloud.com/v1/%s/%s", regionId, projectId, resource)
|
||||
case SERVICE_IMS:
|
||||
|
||||
+8
@@ -24,6 +24,7 @@ import (
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/pkg/errors"
|
||||
|
||||
"yunion.io/x/cloudmux/pkg/apis"
|
||||
api "yunion.io/x/cloudmux/pkg/apis/compute"
|
||||
"yunion.io/x/cloudmux/pkg/cloudprovider"
|
||||
"yunion.io/x/cloudmux/pkg/multicloud"
|
||||
@@ -109,6 +110,13 @@ func (self *SHost) GetStatus() string {
|
||||
return api.HOST_STATUS_RUNNING
|
||||
}
|
||||
|
||||
func (self *SHost) GetCpuArchitecture() string {
|
||||
if strings.Contains(self.Kversion, "arm") {
|
||||
return apis.OS_ARCH_AARCH64
|
||||
}
|
||||
return apis.OS_ARCH_X86_64
|
||||
}
|
||||
|
||||
func (self *SHost) GetAccessIp() string {
|
||||
network := fmt.Sprintf("nodes/%s/network", self.Node)
|
||||
ret := []struct {
|
||||
|
||||
+9
-2
@@ -28,6 +28,7 @@ import (
|
||||
"yunion.io/x/pkg/util/osprofile"
|
||||
"yunion.io/x/pkg/utils"
|
||||
|
||||
"yunion.io/x/cloudmux/pkg/apis"
|
||||
api "yunion.io/x/cloudmux/pkg/apis/compute"
|
||||
"yunion.io/x/cloudmux/pkg/cloudprovider"
|
||||
"yunion.io/x/cloudmux/pkg/multicloud"
|
||||
@@ -170,7 +171,10 @@ type SInstance struct {
|
||||
}
|
||||
|
||||
func (self *SInstance) GetName() string {
|
||||
return self.Name
|
||||
if len(self.Name) > 0 {
|
||||
return self.Name
|
||||
}
|
||||
return self.GetId()
|
||||
}
|
||||
|
||||
func (self *SInstance) GetId() string {
|
||||
@@ -393,7 +397,10 @@ func (self *SInstance) GetOsType() cloudprovider.TOsType {
|
||||
}
|
||||
|
||||
func (ins *SInstance) GetOsArch() string {
|
||||
return "x86_64"
|
||||
if utils.IsInStringArray(ins.QemuCpu, []string{"neoverse-n1"}) || strings.HasPrefix(ins.QemuCpu, "cortex-a") {
|
||||
return apis.OS_ARCH_AARCH64
|
||||
}
|
||||
return ins.host.GetCpuArchitecture()
|
||||
}
|
||||
|
||||
func (ins *SInstance) GetOsDist() string {
|
||||
|
||||
+5
@@ -111,6 +111,11 @@ func (self *SLBBackend) GetBackendId() string {
|
||||
}
|
||||
|
||||
func (self *SLBBackend) GetIpAddress() string {
|
||||
for _, ip := range self.PrivateIPAddresses {
|
||||
if len(ip) > 0 {
|
||||
return ip
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user