in pkg/cloud/roledefinitions.go [13:32]
func (c *AzureClient) GetRoleDefinitionIDByName(ctx context.Context, scope, roleName string) (armauthorization.RoleDefinition, error) {
mlog.Debug("Get role definition ID", "name", roleName)
filter := getRoleNameFilter(roleName)
pager := c.roleDefinitionsClient.NewListPager(scope, &armauthorization.RoleDefinitionsClientListOptions{
Filter: &filter,
})
for pager.More() {
nextResult, err := pager.NextPage(ctx)
if err != nil {
return armauthorization.RoleDefinition{}, errors.Wrap(err, "failed to list role definitions")
}
if len(nextResult.Value) > 0 {
return *nextResult.Value[0], nil
}
}
return armauthorization.RoleDefinition{}, errors.Errorf("role definition %s not found", roleName)
}