mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Merge pull request #10519 from swordqiu/hotfix/qj-aws-sts-assume-role-break-initialization
fix(region): aws sts assume role fail break account initialization
This commit is contained in:
+11
-11
@@ -161,8 +161,8 @@ func (self *SAwsClient) getDefaultRegionId() string {
|
||||
return GetDefaultRegionId(self.accessUrl)
|
||||
}
|
||||
|
||||
func (client *SAwsClient) getDefaultSession() (*session.Session, error) {
|
||||
return client.getAwsSession(client.getDefaultRegionId())
|
||||
func (client *SAwsClient) getDefaultSession(assumeRole bool) (*session.Session, error) {
|
||||
return client.getAwsSession(client.getDefaultRegionId(), assumeRole)
|
||||
}
|
||||
|
||||
func (client *SAwsClient) GetAccountId() string {
|
||||
@@ -196,7 +196,7 @@ const (
|
||||
func (self *SAwsClient) fetchRegions() ([]SRegion, error) {
|
||||
cacheTime, _ := describeRegionResultCacheAt[self.accessUrl]
|
||||
if _, ok := describeRegionResult[self.accessUrl]; !ok || cacheTime.IsZero() || time.Now().After(cacheTime.Add(time.Hour*describeRegionExpireHours)) {
|
||||
s, err := self.getDefaultSession()
|
||||
s, err := self.getDefaultSession(false)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "getDefaultSession")
|
||||
}
|
||||
@@ -225,7 +225,7 @@ func (self *SAwsClient) fetchRegions() ([]SRegion, error) {
|
||||
return regions, nil
|
||||
}
|
||||
|
||||
func (client *SAwsClient) getAwsSession(regionId string) (*session.Session, error) {
|
||||
func (client *SAwsClient) getAwsSession(regionId string, assumeRole bool) (*session.Session, error) {
|
||||
if client.sessions == nil {
|
||||
client.sessions = make(map[string]*session.Session)
|
||||
}
|
||||
@@ -245,7 +245,7 @@ func (client *SAwsClient) getAwsSession(regionId string) (*session.Session, erro
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "getAwsSession.NewSession")
|
||||
}
|
||||
if len(client.accountId) > 0 {
|
||||
if assumeRole && len(client.accountId) > 0 {
|
||||
// need to assumeRole
|
||||
var env string
|
||||
switch client.GetAccessEnv() {
|
||||
@@ -277,7 +277,7 @@ func (region *SRegion) getAwsElasticacheClient() (*elasticache.ElastiCache, erro
|
||||
}
|
||||
|
||||
func (client *SAwsClient) getAwsRoute53Session() (*session.Session, error) {
|
||||
session, err := client.getDefaultSession()
|
||||
session, err := client.getDefaultSession(true)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "client.getDefaultSession()")
|
||||
}
|
||||
@@ -329,7 +329,7 @@ func (client *SAwsClient) fetchOwnerId() error {
|
||||
}
|
||||
|
||||
func (client *SAwsClient) fetchBuckets() error {
|
||||
s, err := client.getDefaultSession()
|
||||
s, err := client.getDefaultSession(true)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "getDefaultSession")
|
||||
}
|
||||
@@ -504,11 +504,11 @@ func (self *SAwsClient) GetAccessEnv() string {
|
||||
}
|
||||
}
|
||||
|
||||
func (self *SAwsClient) request(regionId, serviceName, serviceId, apiVersion string, apiName string, params map[string]string, retval interface{}) error {
|
||||
func (self *SAwsClient) request(regionId, serviceName, serviceId, apiVersion string, apiName string, params map[string]string, retval interface{}, assumeRole bool) error {
|
||||
if len(regionId) == 0 {
|
||||
regionId = self.getDefaultRegionId()
|
||||
}
|
||||
session, err := self.getAwsSession(regionId)
|
||||
session, err := self.getAwsSession(regionId, assumeRole)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -539,11 +539,11 @@ func (self *SAwsClient) request(regionId, serviceName, serviceId, apiVersion str
|
||||
}
|
||||
|
||||
func (self *SAwsClient) iamRequest(apiName string, params map[string]string, retval interface{}) error {
|
||||
return self.request("", IAM_SERVICE_NAME, IAM_SERVICE_ID, "2010-05-08", apiName, params, retval)
|
||||
return self.request("", IAM_SERVICE_NAME, IAM_SERVICE_ID, "2010-05-08", apiName, params, retval, true)
|
||||
}
|
||||
|
||||
func (self *SAwsClient) stsRequest(apiName string, params map[string]string, retval interface{}) error {
|
||||
return self.request("", STS_SERVICE_NAME, STS_SERVICE_ID, "2011-06-15", apiName, params, retval)
|
||||
return self.request("", STS_SERVICE_NAME, STS_SERVICE_ID, "2011-06-15", apiName, params, retval, false)
|
||||
}
|
||||
|
||||
func jsonRequest(cli *client.Client, apiName string, params map[string]string, retval interface{}, debug bool) error {
|
||||
|
||||
@@ -153,7 +153,7 @@ func (self *SRegion) GetClient() *SAwsClient {
|
||||
}
|
||||
|
||||
func (self *SRegion) getAwsSession() (*session.Session, error) {
|
||||
return self.client.getAwsSession(self.RegionId)
|
||||
return self.client.getAwsSession(self.RegionId, true)
|
||||
}
|
||||
|
||||
func (self *SRegion) getEc2Client() (*ec2.EC2, error) {
|
||||
@@ -320,11 +320,11 @@ func Build(r *request.Request) {
|
||||
}
|
||||
|
||||
func (self *SRegion) rdsRequest(apiName string, params map[string]string, retval interface{}) error {
|
||||
return self.client.request(self.RegionId, RDS_SERVICE_NAME, RDS_SERVICE_ID, "2014-10-31", apiName, params, retval)
|
||||
return self.client.request(self.RegionId, RDS_SERVICE_NAME, RDS_SERVICE_ID, "2014-10-31", apiName, params, retval, true)
|
||||
}
|
||||
|
||||
func (self *SRegion) ec2Request(apiName string, params map[string]string, retval interface{}) error {
|
||||
return self.client.request(self.RegionId, EC2_SERVICE_NAME, EC2_SERVICE_ID, "2016-11-15", apiName, params, retval)
|
||||
return self.client.request(self.RegionId, EC2_SERVICE_NAME, EC2_SERVICE_ID, "2016-11-15", apiName, params, retval, true)
|
||||
}
|
||||
|
||||
func (self *SRegion) cloudWatchRequest(apiName string, params *cloudwatch.GetMetricStatisticsInput,
|
||||
|
||||
Reference in New Issue
Block a user