fix(region): update huawei cloud stack update credential

This commit is contained in:
tb365
2021-08-09 17:48:55 +08:00
parent 4cf354fcf7
commit d36878bbca
4 changed files with 49 additions and 27 deletions
+1 -1
View File
@@ -115,7 +115,7 @@ func (self *SHuaweiCloudStackEndpoints) GetEndpoint(serviceName string, region s
var endpoint string
fileds := reflect.Indirect(reflect.ValueOf(self))
f := fileds.FieldByNameFunc(func(c string) bool {
return strings.ToLower(c) == sn
return c == sn
})
if f.Kind() == reflect.String {
+27 -5
View File
@@ -718,12 +718,34 @@ func (self *SCloudaccount) PerformUpdateCredential(ctx context.Context, userCred
originSecret, _ := self.getPassword()
hcsoEndpoints := cloudprovider.SHuaweiCloudStackEndpoints{}
if self.Provider == api.CLOUD_PROVIDER_HUAWEI_CLOUD_STACK && input.SHuaweiCloudStackEndpoints != nil {
if self.Options == nil {
self.Options = jsonutils.NewDict()
}
newOptions := jsonutils.Marshal(input.SHuaweiCloudStackEndpoints)
_, err = db.UpdateWithLock(ctx, self, func() error {
self.Options.Update(newOptions)
return nil
})
if err != nil {
return nil, err
}
err = self.Options.Unmarshal(&hcsoEndpoints)
if err != nil {
return nil, err
}
}
accountId, err := cloudprovider.IsValidCloudAccount(cloudprovider.ProviderConfig{
Vendor: self.Provider,
URL: self.AccessUrl,
Account: account.Account,
Secret: account.Secret,
ProxyFunc: self.proxyFunc(),
Vendor: self.Provider,
URL: self.AccessUrl,
Account: account.Account,
Secret: account.Secret,
SHuaweiCloudStackEndpoints: hcsoEndpoints,
ProxyFunc: self.proxyFunc(),
})
if err != nil {
return nil, httperrors.NewInputParameterError("invalid cloud account info error: %s", err.Error())
@@ -31,26 +31,26 @@ type ServiceNameType string
const HuaWeiDefaultDomain = "myhuaweicloud.com"
const (
ServiceNameECS ServiceNameType = "ecs" // 弹性云服务
ServiceNameCCE ServiceNameType = "cce" // 云容器服务
ServiceNameAS ServiceNameType = "as" // 弹性伸缩服务
ServiceNameIAM ServiceNameType = "iam-pub" // 统一身份认证服务
ServiceNameIMS ServiceNameType = "ims" // 镜像服务
ServiceNameCSBS ServiceNameType = "csbs" // 云服务器备份服务
ServiceNameCCI ServiceNameType = "cci" // 云容器实例 CCI
ServiceNameBMS ServiceNameType = "bms" // 裸金属服务器
ServiceNameEVS ServiceNameType = "evs" // 云硬盘 EVS
ServiceNameVBS ServiceNameType = "vbs" // 云硬盘备份 VBS
ServiceNameOBS ServiceNameType = "obs" // 对象存储服务 OBS
ServiceNameVPC ServiceNameType = "vpc" // 虚拟私有云 VPC
ServiceNameELB ServiceNameType = "elb" // 弹性负载均衡 ELB
ServiceNameBSS ServiceNameType = "bss" // 合作伙伴运营能力
ServiceNameNAT ServiceNameType = "nat" // Nat网关 NAT
ServiceNameDCS ServiceNameType = "dcs" // 分布式缓存服务
ServiceNameRDS ServiceNameType = "rds" // 关系型数据库 RDS
ServiceNameCTS ServiceNameType = "cts" // 云审计服务
ServiceNameCES ServiceNameType = "ces" // 监控服务 CloudEye
ServiceNameEPS ServiceNameType = "eps" // 企业项目
ServiceNameECS ServiceNameType = "ecs" // 弹性云服务
ServiceNameCCE ServiceNameType = "cce" // 云容器服务
ServiceNameAS ServiceNameType = "as" // 弹性伸缩服务
ServiceNameIAM ServiceNameType = "iam" // 统一身份认证服务
ServiceNameIMS ServiceNameType = "ims" // 镜像服务
ServiceNameCSBS ServiceNameType = "csbs" // 云服务器备份服务
ServiceNameCCI ServiceNameType = "cci" // 云容器实例 CCI
ServiceNameBMS ServiceNameType = "bms" // 裸金属服务器
ServiceNameEVS ServiceNameType = "evs" // 云硬盘 EVS
ServiceNameVBS ServiceNameType = "vbs" // 云硬盘备份 VBS
ServiceNameOBS ServiceNameType = "obs" // 对象存储服务 OBS
ServiceNameVPC ServiceNameType = "vpc" // 虚拟私有云 VPC
ServiceNameELB ServiceNameType = "elb" // 弹性负载均衡 ELB
ServiceNameBSS ServiceNameType = "bss" // 合作伙伴运营能力
ServiceNameNAT ServiceNameType = "nat" // Nat网关 NAT
ServiceNameDCS ServiceNameType = "dcs" // 分布式缓存服务
ServiceNameRDS ServiceNameType = "rds" // 关系型数据库 RDS
ServiceNameCTS ServiceNameType = "cts" // 云审计服务
ServiceNameCES ServiceNameType = "ces" // 监控服务 CloudEye
ServiceNameEPS ServiceNameType = "eps" // 企业项目
ServiceNameSFSTurbo ServiceNameType = "sfs-turbo" // 文件系统
)
+1 -1
View File
@@ -363,7 +363,7 @@ func (self *SRegion) GetI18n() cloudprovider.SModelI18nTable {
}
func (self *SRegion) GetGlobalId() string {
return fmt.Sprintf("%s/%s", self.client.GetAccessEnv(), self.ID)
return fmt.Sprintf("%s/%s", api.CLOUD_PROVIDER_HUAWEI_CLOUD_STACK, self.ID)
}
func (self *SRegion) GetStatus() string {