// 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.Policy{} }, NewListFunc: func() runtime.Object { return &authorizationapi.PolicyList{} }, EndpointName: "policy", KeyRootFunc: func(ctx kapi.Context) string { return etcdgeneric.NamespaceKeyRootFunc(ctx, PolicyPath) }, KeyFunc: func(ctx kapi.Context, id string) (string, error) { return etcdgeneric.NamespaceKeyFunc(ctx, PolicyPath, id) }, ObjectNameFunc: func(obj runtime.Object) (string, error) { return obj.(*authorizationapi.Policy).Name, nil }, PredicateFunc: func(label labels.Selector, field fields.Selector) generic.Matcher { return policy.Matcher(label, field) }, CreateStrategy: policy.Strategy, UpdateStrategy: policy.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.Policy{} }, NewListFunc: func() runtime.Object { return &authorizationapi.PolicyList{} }, QualifiedResource: authorizationapi.Resource("policies"), KeyRootFunc: func(ctx kapi.Context) string { return registry.NamespaceKeyRootFunc(ctx, PolicyPath) }, KeyFunc: func(ctx kapi.Context, id string) (string, error) { return registry.NamespaceKeyFunc(ctx, PolicyPath, id) }, ObjectNameFunc: func(obj runtime.Object) (string, error) { return obj.(*authorizationapi.Policy).Name, nil }, PredicateFunc: func(label labels.Selector, field fields.Selector) generic.Matcher { return policy.Matcher(label, field) }, CreateStrategy: policy.Strategy, UpdateStrategy: policy.Strategy, } if err := restoptions.ApplyOptions(optsGetter, store, PolicyPath); err != nil { return nil, err } return &REST{store}, nil }
func (i *indexerToPolicyLister) List(options kapi.ListOptions) (*authorizationapi.PolicyList, error) { policyList := &authorizationapi.PolicyList{} matcher := policyregistry.Matcher(oapi.ListOptionsToSelectors(&options)) if i.namespace == kapi.NamespaceAll { returnedList := i.Indexer.List() for i := range returnedList { policy := returnedList[i].(*authorizationapi.Policy) if matches, err := matcher.Matches(policy); err == nil && matches { policyList.Items = append(policyList.Items, *policy) } } return policyList, nil } key := &authorizationapi.Policy{ObjectMeta: kapi.ObjectMeta{Namespace: i.namespace}} items, err := i.Indexer.Index(cache.NamespaceIndex, key) if err != nil { return policyList, err } for i := range items { policy := items[i].(*authorizationapi.Policy) if matches, err := matcher.Matches(policy); err == nil && matches { policyList.Items = append(policyList.Items, *policy) } } return policyList, nil }
// NewStorage returns a RESTStorage object that will work against Policy objects. func NewStorage(optsGetter restoptions.Getter) (*REST, error) { store := ®istry.Store{ NewFunc: func() runtime.Object { return &authorizationapi.Policy{} }, NewListFunc: func() runtime.Object { return &authorizationapi.PolicyList{} }, QualifiedResource: authorizationapi.Resource("policies"), ObjectNameFunc: func(obj runtime.Object) (string, error) { return obj.(*authorizationapi.Policy).Name, nil }, PredicateFunc: func(label labels.Selector, field fields.Selector) storage.SelectionPredicate { return policy.Matcher(label, field) }, CreateStrategy: policy.Strategy, UpdateStrategy: policy.Strategy, } if err := restoptions.ApplyOptions(optsGetter, store, true, storage.NoTriggerPublisher); err != nil { return nil, err } return &REST{store}, nil }
func (c *readOnlyPolicyCache) List(options *kapi.ListOptions, namespace string) (*authorizationapi.PolicyList, error) { var returnedList []interface{} if namespace == kapi.NamespaceAll { returnedList = c.indexer.List() } else { items, err := c.indexer.Index("namespace", &authorizationapi.Policy{ObjectMeta: kapi.ObjectMeta{Namespace: namespace}}) returnedList = items if err != nil { return &authorizationapi.PolicyList{}, errors.NewInvalid(authorizationapi.Kind("PolicyList"), "policyList", kfield.ErrorList{kfield.Invalid(kfield.NewPath("policyList"), nil, err.Error())}) } } policyList := &authorizationapi.PolicyList{} matcher := policyregistry.Matcher(oapi.ListOptionsToSelectors(options)) for i := range returnedList { policy, castOK := returnedList[i].(*authorizationapi.Policy) if !castOK { return policyList, errors.NewInvalid(authorizationapi.Kind("PolicyList"), "policyList", kfield.ErrorList{}) } if matches, err := matcher.Matches(policy); err == nil && matches { policyList.Items = append(policyList.Items, *policy) } } return policyList, nil }