@@ -13,14 +13,13 @@ import (
1313 "github.com/404tk/cloudtoolkit/utils"
1414 "github.com/404tk/cloudtoolkit/utils/cache"
1515 "github.com/404tk/cloudtoolkit/utils/logger"
16- awsv2 "github.com/aws/aws-sdk-go-v2/aws"
1716)
1817
1918// Provider is a data provider for aws API
2019type Provider struct {
21- region string
22- cfg awsv2. Config
23- apiClient * _api.Client
20+ region string
21+ defaultRegion string
22+ apiClient * _api.Client
2423}
2524
2625// New creates a new provider client for aws API
@@ -29,25 +28,19 @@ func New(options schema.Options) (*Provider, error) {
2928 if err != nil {
3029 return nil , err
3130 }
32- region , _ := options .GetMetadata (utils .Region )
33- version , _ := options .GetMetadata (utils .Version )
34- cfg , err := newConfig (
35- credential .AccessKeyID ,
36- credential .SecretAccessKey ,
37- credential .SessionToken ,
38- region ,
39- version ,
40- )
41- if err != nil {
31+ if err := credential .Validate (); err != nil {
4232 return nil , err
4333 }
34+ region , _ := options .GetMetadata (utils .Region )
35+ version , _ := options .GetMetadata (utils .Version )
36+ defaultRegion := resolveBootstrapRegion (region , version )
4437 apiClient := _api .NewClient (credential )
4538
4639 payload , _ := options .GetMetadata (utils .Payload )
4740 if payload == "cloudlist" {
4841 resp , err := apiClient .GetCallerIdentity (
4942 context .Background (),
50- resolveBootstrapRegion ( region , version ) ,
43+ defaultRegion ,
5144 )
5245 if err != nil {
5346 return nil , err
@@ -59,9 +52,9 @@ func New(options schema.Options) (*Provider, error) {
5952 }
6053
6154 return & Provider {
62- region : region ,
63- cfg : cfg ,
64- apiClient : apiClient ,
55+ region : region ,
56+ defaultRegion : defaultRegion ,
57+ apiClient : apiClient ,
6558 }, nil
6659}
6760
@@ -80,7 +73,7 @@ func (p *Provider) Resources(ctx context.Context) (schema.Resources, error) {
8073 ec2provider := & _ec2.Driver {
8174 Client : p .apiClient ,
8275 Region : p .region ,
83- DefaultRegion : p .cfg . Region ,
76+ DefaultRegion : p .defaultRegion ,
8477 }
8578 hosts , err := ec2provider .GetResource (ctx )
8679 schema .AppendAssets (& list , hosts )
@@ -90,13 +83,13 @@ func (p *Provider) Resources(ctx context.Context) (schema.Resources, error) {
9083 iamprovider := & _iam.Driver {
9184 Client : p .apiClient ,
9285 Region : p .region ,
93- DefaultRegion : p .cfg . Region ,
86+ DefaultRegion : p .defaultRegion ,
9487 }
9588 users , err := iamprovider .ListUsers (ctx )
9689 schema .AppendAssets (& list , users )
9790 list .AddError ("account" , err )
9891 case "bucket" :
99- s3provider := & _s3.Driver {Client : p .apiClient , DefaultRegion : p .cfg . Region }
92+ s3provider := & _s3.Driver {Client : p .apiClient , DefaultRegion : p .defaultRegion }
10093 storages , err := s3provider .GetBuckets (ctx )
10194 schema .AppendAssets (& list , storages )
10295 list .AddError ("bucket" , err )
@@ -111,7 +104,7 @@ func (p *Provider) UserManagement(action, username, password string) {
111104 ramprovider := & _iam.Driver {
112105 Client : p .apiClient ,
113106 Region : p .region ,
114- DefaultRegion : p .cfg . Region ,
107+ DefaultRegion : p .defaultRegion ,
115108 Username : username ,
116109 Password : password ,
117110 }
@@ -126,7 +119,7 @@ func (p *Provider) UserManagement(action, username, password string) {
126119}
127120
128121func (p * Provider ) BucketDump (ctx context.Context , action , bucketName string ) {
129- s3provider := & _s3.Driver {Client : p .apiClient , DefaultRegion : p .cfg . Region }
122+ s3provider := & _s3.Driver {Client : p .apiClient , DefaultRegion : p .defaultRegion }
130123 switch action {
131124 case "list" :
132125 var infos = make (map [string ]string )
@@ -140,7 +133,7 @@ func (p *Provider) BucketDump(ctx context.Context, action, bucketName string) {
140133 infos [b .BucketName ] = b .Region
141134 }
142135 } else {
143- infos [bucketName ] = p .cfg . Region
136+ infos [bucketName ] = p .defaultRegion
144137 }
145138 s3provider .ListObjects (ctx , infos )
146139 case "total" :
@@ -155,7 +148,7 @@ func (p *Provider) BucketDump(ctx context.Context, action, bucketName string) {
155148 infos [b .BucketName ] = b .Region
156149 }
157150 } else {
158- infos [bucketName ] = p .cfg . Region
151+ infos [bucketName ] = p .defaultRegion
159152 }
160153 s3provider .TotalObjects (ctx , infos )
161154 default :
0 commit comments