From 7a9810761af3b7a230cee3c34fcba69818b09b56 Mon Sep 17 00:00:00 2001 From: ioito Date: Tue, 19 Apr 2022 15:26:19 +0800 Subject: [PATCH] fix(region): apsara credential update --- cmd/climc/shell/compute/cloudaccounts.go | 1 + pkg/compute/models/cloudaccounts.go | 21 ++++++++++++++++----- pkg/mcclient/options/cloudaccounts.go | 9 +++++++++ 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/cmd/climc/shell/compute/cloudaccounts.go b/cmd/climc/shell/compute/cloudaccounts.go index 5248f2772f..fa16658927 100644 --- a/cmd/climc/shell/compute/cloudaccounts.go +++ b/cmd/climc/shell/compute/cloudaccounts.go @@ -79,6 +79,7 @@ func init() { cmd.PerformWithKeyword("update-credential-aws", "update-credential", &options.SAWSCloudAccountUpdateCredentialOptions{}) cmd.PerformWithKeyword("update-credential-openstack", "update-credential", &options.SOpenStackCloudAccountUpdateCredentialOptions{}) cmd.PerformWithKeyword("update-credential-huawei", "update-credential", &options.SHuaweiCloudAccountUpdateCredentialOptions{}) + cmd.PerformWithKeyword("update-credential-apsara", "update-credential", &options.SApsaraCloudAccountUpdateCredentialOptions{}) cmd.PerformWithKeyword("update-credential-hcso", "update-credential", &options.SHCSOAccountUpdateCredentialOptions{}) cmd.PerformWithKeyword("update-credential-ucloud", "update-credential", &options.SUcloudCloudAccountUpdateCredentialOptions{}) cmd.PerformWithKeyword("update-credential-zstack", "update-credential", &options.SZStackCloudAccountUpdateCredentialOptions{}) diff --git a/pkg/compute/models/cloudaccounts.go b/pkg/compute/models/cloudaccounts.go index 57bc066988..3e49d201d9 100644 --- a/pkg/compute/models/cloudaccounts.go +++ b/pkg/compute/models/cloudaccounts.go @@ -680,12 +680,17 @@ func (self *SCloudaccount) PerformTestConnectivity(ctx context.Context, userCred return nil, err } + defaultRegion, _ := jsonutils.Marshal(self.Options).GetString("default_region") _, _, err = cloudprovider.IsValidCloudAccount(cloudprovider.ProviderConfig{ URL: self.AccessUrl, Vendor: self.Provider, Account: account.Account, Secret: account.Secret, + DefaultRegion: defaultRegion, + + ReadOnly: self.ReadOnly, + ProxyFunc: self.proxyFunc(), }) if err != nil { @@ -755,12 +760,18 @@ func (self *SCloudaccount) PerformUpdateCredential(ctx context.Context, userCred } } + defaultRegion, _ := jsonutils.Marshal(self.Options).GetString("default_region") _, accountId, err := cloudprovider.IsValidCloudAccount(cloudprovider.ProviderConfig{ - Vendor: self.Provider, - URL: self.AccessUrl, - Account: account.Account, - Secret: account.Secret, - Options: self.Options, + Name: self.Name, + Vendor: self.Provider, + URL: self.AccessUrl, + Account: account.Account, + Secret: account.Secret, + Options: self.Options, + DefaultRegion: defaultRegion, + + ReadOnly: self.ReadOnly, + ProxyFunc: self.proxyFunc(), }) if err != nil { diff --git a/pkg/mcclient/options/cloudaccounts.go b/pkg/mcclient/options/cloudaccounts.go index a49389b65c..eb219ec207 100644 --- a/pkg/mcclient/options/cloudaccounts.go +++ b/pkg/mcclient/options/cloudaccounts.go @@ -432,6 +432,15 @@ func (opts *SAliyunCloudAccountUpdateCredentialOptions) Params() (jsonutils.JSON return jsonutils.Marshal(opts), nil } +type SApsaraCloudAccountUpdateCredentialOptions struct { + SCloudAccountIdOptions + SAccessKeyCredential +} + +func (opts *SApsaraCloudAccountUpdateCredentialOptions) Params() (jsonutils.JSONObject, error) { + return jsonutils.Marshal(opts), nil +} + type SAzureCloudAccountUpdateCredentialOptions struct { SCloudAccountIdOptions SAzureCredential