Skip to content

Commit 5cd9619

Browse files
committed
Add FindRoleBinding function to utils for role binding retrieval
1 parent 253dd01 commit 5cd9619

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

tests/utils/projects.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ package utils
22

33
import (
44
"fmt"
5+
56
v1 "github.com/openshift/api/project/v1"
7+
rbacv1 "k8s.io/api/rbac/v1"
68
)
79

810
func FindProject(projects *v1.ProjectList, projectName string) error {
@@ -13,3 +15,17 @@ func FindProject(projects *v1.ProjectList, projectName string) error {
1315
}
1416
return fmt.Errorf("Project '%s' not found", projectName)
1517
}
18+
19+
func FindRoleBinding(roleBindings *rbacv1.RoleBindingList, subjectName, subjectType, namespace, roleName string) error {
20+
for _, roleBinding := range roleBindings.Items {
21+
for _, subject := range roleBinding.Subjects {
22+
if subject.Name == subjectName && subject.Kind == subjectType && roleBinding.RoleRef.Name == roleName {
23+
// For ClusterRoleBindings or in the case of Groups with no namespace, namespace can be empty
24+
if namespace == "" || subject.Namespace == namespace {
25+
return nil
26+
}
27+
}
28+
}
29+
}
30+
return fmt.Errorf("RoleBinding not found: subjectName=%s, subjectType=%s, namespace=%s, roleName=%s", subjectName, subjectType, namespace, roleName)
31+
}

0 commit comments

Comments
 (0)