Skip to content

Commit b980431

Browse files
authored
🧹 Use built-in AWS paginators. (#6941)
Signed-off-by: Vasil Sirakov <sirakov97@gmail.com>
1 parent 8384ca1 commit b980431

File tree

3 files changed

+12
-28
lines changed

3 files changed

+12
-28
lines changed

providers/aws/resources/aws_config.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -247,13 +247,13 @@ func (a *mqlAwsConfig) getRules(conn *connection.AwsConnection) []*jobpool.Job {
247247
ctx := context.Background()
248248
res := []any{}
249249

250-
var nextToken *string
251-
for {
252-
rules, err := svc.DescribeConfigRules(ctx, &configservice.DescribeConfigRulesInput{NextToken: nextToken})
250+
paginator := configservice.NewDescribeConfigRulesPaginator(svc, &configservice.DescribeConfigRulesInput{})
251+
for paginator.HasMorePages() {
252+
page, err := paginator.NextPage(ctx)
253253
if err != nil {
254254
return nil, err
255255
}
256-
for _, r := range rules.ConfigRules {
256+
for _, r := range page.ConfigRules {
257257
jsonSource, err := convert.JsonToDict(r.Source)
258258
if err != nil {
259259
return nil, err
@@ -273,10 +273,6 @@ func (a *mqlAwsConfig) getRules(conn *connection.AwsConnection) []*jobpool.Job {
273273
}
274274
res = append(res, mqlRule)
275275
}
276-
if rules.NextToken == nil {
277-
break
278-
}
279-
nextToken = rules.NextToken
280276
}
281277
return jobpool.JobResult(res), nil
282278
}

providers/aws/resources/aws_redshift.go

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -239,20 +239,15 @@ func (a *mqlAwsRedshiftCluster) parameters() ([]any, error) {
239239
res := []redshifttypes.Parameter{}
240240
for _, name := range clusterGroupNames {
241241
stringName := name.(string)
242-
var marker *string
243-
for {
244-
params, err := svc.DescribeClusterParameters(ctx, &redshift.DescribeClusterParametersInput{
245-
ParameterGroupName: &stringName,
246-
Marker: marker,
247-
})
242+
paginator := redshift.NewDescribeClusterParametersPaginator(svc, &redshift.DescribeClusterParametersInput{
243+
ParameterGroupName: &stringName,
244+
})
245+
for paginator.HasMorePages() {
246+
params, err := paginator.NextPage(ctx)
248247
if err != nil {
249248
return nil, err
250249
}
251250
res = append(res, params.Parameters...)
252-
if params.Marker == nil {
253-
break
254-
}
255-
marker = params.Marker
256251
}
257252
}
258253
return convert.JsonToDictSlice(res)

providers/aws/resources/aws_sagemaker.go

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1391,12 +1391,9 @@ func (a *mqlAwsSagemakerDomain) defaultUserSettings() (map[string]any, error) {
13911391

13921392
func getSagemakerTags(ctx context.Context, svc *sagemaker.Client, arn *string) (map[string]any, error) {
13931393
tags := make(map[string]any)
1394-
var nextToken *string
1395-
for {
1396-
resp, err := svc.ListTags(ctx, &sagemaker.ListTagsInput{
1397-
ResourceArn: arn,
1398-
NextToken: nextToken,
1399-
})
1394+
paginator := sagemaker.NewListTagsPaginator(svc, &sagemaker.ListTagsInput{ResourceArn: arn})
1395+
for paginator.HasMorePages() {
1396+
resp, err := paginator.NextPage(ctx)
14001397
var respErr *http.ResponseError
14011398
if err != nil {
14021399
if errors.As(err, &respErr) {
@@ -1411,10 +1408,6 @@ func getSagemakerTags(ctx context.Context, svc *sagemaker.Client, arn *string) (
14111408
tags[*t.Key] = *t.Value
14121409
}
14131410
}
1414-
if resp.NextToken == nil {
1415-
break
1416-
}
1417-
nextToken = resp.NextToken
14181411
}
14191412
return tags, nil
14201413
}

0 commit comments

Comments
 (0)