Merge pull request #52 in YUNIONIO/onecloud from ~QIUJIAN/onecloud:hotfix/qj-aliyun-cache-success-connected-state to release/2.0.0

* commit '8311f02839eab526a701bda27424e641bc6292ad':
  修正:aliyun在成功连接后,会缓存成功状态,导致更新错误账号信息后还是显示成功连接
This commit is contained in:
邱剑
2018-08-14 21:52:17 +08:00
2 changed files with 16 additions and 1 deletions
+10
View File
@@ -59,6 +59,16 @@ func jsonRequest(client *sdk.Client, apiName string, params map[string]string) (
return body, nil
}
func (self *SAliyunClient) UpdateAccount(accessKey, secret string) error {
if self.accessKey != accessKey || self.secret != secret {
self.accessKey = accessKey
self.secret = secret
return self.fetchRegions()
} else {
return nil
}
}
func (self *SAliyunClient) getDefaultClient() (*sdk.Client, error) {
return sdk.NewClientWithAccessKey(ALIYUN_DEFAULT_REGION, self.accessKey, self.secret)
}
+6 -1
View File
@@ -18,7 +18,12 @@ func (self *SAliyunProviderFactory) GetId() string {
func (self *SAliyunProviderFactory) GetProvider(providerId, providerName, url, account, secret string) (cloudprovider.ICloudProvider, error) {
provider, ok := self.providerTable[providerId]
if ok {
return provider, nil
err := provider.client.UpdateAccount(account, secret)
if err != nil {
return nil, err
} else {
return provider, nil
}
}
client, err := aliyun.NewAliyunClient(providerId, providerName, account, secret)
if err != nil {