Skip to content

Commit

Permalink
Merge pull request #107 from ovotech/fix-gcp-paging-issue
Browse files Browse the repository at this point in the history
gcp: paging when listing service-accounts
  • Loading branch information
Chris Every authored Sep 11, 2020
2 parents cba4277 + 526a02d commit 5637e15
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions gcp.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,13 +152,35 @@ func gcpIamService() (service *gcpiam.Service, err error) {

//gcpServiceAccounts returns a slice of GCP ServiceAccounts
func gcpServiceAccounts(project string, service gcpiam.Service) (accs []*gcpiam.ServiceAccount, err error) {
var nextPageToken string
var accsPage []*gcpiam.ServiceAccount

for {
if accsPage, nextPageToken, err = gcpServiceAccountsPage(project, service, nextPageToken); err != nil {
return
}

accs = append(accs, accsPage...)

if nextPageToken == "" {
break
}
}

return
}

func gcpServiceAccountsPage(project string, service gcpiam.Service, pageToken string) (accs []*gcpiam.ServiceAccount, nextPageToken string, err error) {
var res *gcpiam.ListServiceAccountsResponse
if res, err = service.Projects.ServiceAccounts.
List(gcpProjectName(project)).
PageToken(pageToken).
Do(); err != nil {
return
}

accs = res.Accounts
nextPageToken = res.NextPageToken
return
}

Expand Down

0 comments on commit 5637e15

Please sign in to comment.