in pkg/providers/az-client.go [67:95]
func (az *AzClient) ListResourceGroups(ctx context.Context, subscriptionID string) ([]armresources.ResourceGroup, error) {
log.Debug("listing Azure resource groups for subscription ", subscriptionID)
if az.ResourceGroupClient == nil {
c, err := armresources.NewResourceGroupsClient(subscriptionID, az.Credential, nil)
if err != nil {
return nil, fmt.Errorf("failed to create resource group client: %w", err)
}
az.ResourceGroupClient = c
}
var rgs []armresources.ResourceGroup
pager := az.ResourceGroupClient.NewListPager(nil)
for pager.More() {
page, err := pager.NextPage(ctx)
if err != nil {
return nil, fmt.Errorf("listing resource groups page: %w", err)
}
for _, rg := range page.Value {
if rg == nil {
return nil, errors.New("nil rg")
}
rgs = append(rgs, *rg)
}
}
return rgs, nil
}