func (a *DefaultRuleResolver) GetRoleBindings(ctx kapi.Context) ([]authorizationinterfaces.RoleBinding, error) { namespace := kapi.NamespaceValue(ctx) if len(namespace) == 0 { policyBindingList, err := a.clusterBindingLister.List(kapi.ListOptions{}) if err != nil { return nil, err } ret := make([]authorizationinterfaces.RoleBinding, 0, len(policyBindingList.Items)) for _, policyBinding := range policyBindingList.Items { for _, value := range policyBinding.RoleBindings { ret = append(ret, authorizationinterfaces.NewClusterRoleBindingAdapter(value)) } } return ret, nil } if a.bindingLister == nil { return nil, nil } policyBindingList, err := a.bindingLister.PolicyBindings(namespace).List(kapi.ListOptions{}) if err != nil { return nil, err } ret := make([]authorizationinterfaces.RoleBinding, 0, len(policyBindingList.Items)) for _, policyBinding := range policyBindingList.Items { for _, value := range policyBinding.RoleBindings { ret = append(ret, authorizationinterfaces.NewLocalRoleBindingAdapter(value)) } } return ret, nil }
func (a *DefaultRuleResolver) GetRoleBindings(namespace string) ([]authorizationinterfaces.RoleBinding, error) { clusterBindings, clusterErr := a.clusterBindingLister.List(kapi.ListOptions{}) var namespaceBindings *authorizationapi.PolicyBindingList var namespaceErr error if a.bindingLister != nil && len(namespace) > 0 { namespaceBindings, namespaceErr = a.bindingLister.PolicyBindings(namespace).List(kapi.ListOptions{}) } // return all loaded bindings expect := 0 if clusterBindings != nil { expect += len(clusterBindings.Items) } if namespaceBindings != nil { expect += len(namespaceBindings.Items) } bindings := make([]authorizationinterfaces.RoleBinding, 0, expect) if clusterBindings != nil { for _, policyBinding := range clusterBindings.Items { for _, value := range policyBinding.RoleBindings { bindings = append(bindings, authorizationinterfaces.NewClusterRoleBindingAdapter(value)) } } } if namespaceBindings != nil { for _, policyBinding := range namespaceBindings.Items { for _, value := range policyBinding.RoleBindings { bindings = append(bindings, authorizationinterfaces.NewLocalRoleBindingAdapter(value)) } } } // return all errors var errs []error if clusterErr != nil { errs = append(errs, clusterErr) } if namespaceErr != nil { errs = append(errs, namespaceErr) } return bindings, kerrors.NewAggregate(errs) }