diff --git a/pkg/openstack/v2/role.go b/pkg/openstack/v2/role.go index 8e1b10e..c547e38 100644 --- a/pkg/openstack/v2/role.go +++ b/pkg/openstack/v2/role.go @@ -47,3 +47,15 @@ func (h *Helper) AssignRoleToUser(roleID string, opts roles.AssignOpts) error { defer cancel() return roles.Assign(ctx, h.Identity, roleID, opts).ExtractErr() } + +func (h *Helper) ListRoleAssignments(opts *roles.ListAssignmentsOpts) ([]roles.RoleAssignment, error) { + ctx, cancel := context.WithTimeout(wait.CtxSeconds(30)) + defer cancel() + + pages, err := roles.ListAssignments(h.Identity, opts).AllPages(ctx) + if err != nil { + return nil, err + } + + return roles.ExtractRoleAssignments(pages) +}