func (i *indexerToPolicyBindingLister) List(options kapi.ListOptions) (*authorizationapi.PolicyBindingList, error) { policyBindingList := &authorizationapi.PolicyBindingList{} matcher := policybindingregistry.Matcher(oapi.ListOptionsToSelectors(&options)) if i.namespace == kapi.NamespaceAll { returnedList := i.Indexer.List() for i := range returnedList { policyBinding := returnedList[i].(*authorizationapi.PolicyBinding) if matches, err := matcher.Matches(policyBinding); err == nil && matches { policyBindingList.Items = append(policyBindingList.Items, *policyBinding) } } return policyBindingList, nil } key := &authorizationapi.PolicyBinding{ObjectMeta: kapi.ObjectMeta{Namespace: i.namespace}} items, err := i.Indexer.Index(cache.NamespaceIndex, key) if err != nil { return policyBindingList, err } for i := range items { policyBinding := items[i].(*authorizationapi.PolicyBinding) if matches, err := matcher.Matches(policyBinding); err == nil && matches { policyBindingList.Items = append(policyBindingList.Items, *policyBinding) } } return policyBindingList, nil }
// NewStorage returns a RESTStorage object that will work against nodes. func NewStorage(s storage.Interface) *REST { store := &etcdgeneric.Etcd{ NewFunc: func() runtime.Object { return &authorizationapi.PolicyBinding{} }, NewListFunc: func() runtime.Object { return &authorizationapi.PolicyBindingList{} }, EndpointName: "policybinding", KeyRootFunc: func(ctx kapi.Context) string { return etcdgeneric.NamespaceKeyRootFunc(ctx, PolicyBindingPath) }, KeyFunc: func(ctx kapi.Context, id string) (string, error) { return etcdgeneric.NamespaceKeyFunc(ctx, PolicyBindingPath, id) }, ObjectNameFunc: func(obj runtime.Object) (string, error) { return obj.(*authorizationapi.PolicyBinding).Name, nil }, PredicateFunc: func(label labels.Selector, field fields.Selector) generic.Matcher { return policybinding.Matcher(label, field) }, CreateStrategy: policybinding.Strategy, UpdateStrategy: policybinding.Strategy, Storage: s, } return &REST{store} }
// NewStorage returns a RESTStorage object that will work against nodes. func NewStorage(optsGetter restoptions.Getter) (*REST, error) { store := ®istry.Store{ NewFunc: func() runtime.Object { return &authorizationapi.PolicyBinding{} }, NewListFunc: func() runtime.Object { return &authorizationapi.PolicyBindingList{} }, QualifiedResource: authorizationapi.Resource("policybindings"), KeyRootFunc: func(ctx kapi.Context) string { return registry.NamespaceKeyRootFunc(ctx, PolicyBindingPath) }, KeyFunc: func(ctx kapi.Context, id string) (string, error) { return registry.NamespaceKeyFunc(ctx, PolicyBindingPath, id) }, ObjectNameFunc: func(obj runtime.Object) (string, error) { return obj.(*authorizationapi.PolicyBinding).Name, nil }, PredicateFunc: func(label labels.Selector, field fields.Selector) generic.Matcher { return policybinding.Matcher(label, field) }, CreateStrategy: policybinding.Strategy, UpdateStrategy: policybinding.Strategy, } if err := restoptions.ApplyOptions(optsGetter, store, PolicyBindingPath); err != nil { return nil, err } return &REST{store}, nil }
// NewStorage returns a RESTStorage object that will work against PolicyBinding objects. func NewStorage(optsGetter restoptions.Getter) (*REST, error) { store := ®istry.Store{ NewFunc: func() runtime.Object { return &authorizationapi.PolicyBinding{} }, NewListFunc: func() runtime.Object { return &authorizationapi.PolicyBindingList{} }, QualifiedResource: authorizationapi.Resource("policybindings"), ObjectNameFunc: func(obj runtime.Object) (string, error) { return obj.(*authorizationapi.PolicyBinding).Name, nil }, PredicateFunc: func(label labels.Selector, field fields.Selector) *generic.SelectionPredicate { return policybinding.Matcher(label, field) }, CreateStrategy: policybinding.Strategy, UpdateStrategy: policybinding.Strategy, } if err := restoptions.ApplyOptions(optsGetter, store, true, storage.NoTriggerPublisher); err != nil { return nil, err } return &REST{store}, nil }
func (c *readOnlyPolicyBindingCache) List(options *unversioned.ListOptions, namespace string) (*authorizationapi.PolicyBindingList, error) { var returnedList []interface{} if namespace == kapi.NamespaceAll { returnedList = c.indexer.List() } else { items, err := c.indexer.Index("namespace", &authorizationapi.PolicyBinding{ObjectMeta: kapi.ObjectMeta{Namespace: namespace}}) returnedList = items if err != nil { return &authorizationapi.PolicyBindingList{}, errors.NewInvalid("PolicyBindingList", "policyBindingList", kfield.ErrorList{kfield.Invalid(kfield.NewPath("policyBindingList"), nil, err.Error())}) } } policyBindingList := &authorizationapi.PolicyBindingList{} matcher := bindingregistry.Matcher(api.ListOptionsToSelectors(options)) for i := range returnedList { policyBinding, castOK := returnedList[i].(*authorizationapi.PolicyBinding) if !castOK { return policyBindingList, errors.NewInvalid("PolicyBindingList", "policyBindingList", kfield.ErrorList{}) } if matches, err := matcher.Matches(policyBinding); err == nil && matches { policyBindingList.Items = append(policyBindingList.Items, *policyBinding) } } return policyBindingList, nil }