package cache import ( kapi "k8s.io/kubernetes/pkg/api" kapierrors "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/controller/framework" oapi "github.com/openshift/origin/pkg/api" authorizationapi "github.com/openshift/origin/pkg/authorization/api" clusterpolicybindingregistry "github.com/openshift/origin/pkg/authorization/registry/clusterpolicybinding" "github.com/openshift/origin/pkg/client" ) type InformerToClusterPolicyBindingLister struct { framework.SharedIndexInformer } // LastSyncResourceVersion exposes the LastSyncResourceVersion of the internal reflector func (i *InformerToClusterPolicyBindingLister) LastSyncResourceVersion() string { return i.SharedIndexInformer.LastSyncResourceVersion() } func (i *InformerToClusterPolicyBindingLister) ClusterPolicyBindings() client.ClusterPolicyBindingLister { return i } func (i *InformerToClusterPolicyBindingLister) List(options kapi.ListOptions) (*authorizationapi.ClusterPolicyBindingList, error) { clusterPolicyBindingList := &authorizationapi.ClusterPolicyBindingList{} returnedList := i.GetIndexer().List() matcher := clusterpolicybindingregistry.Matcher(oapi.ListOptionsToSelectors(&options)) for i := range returnedList { clusterPolicyBinding := returnedList[i].(*authorizationapi.ClusterPolicyBinding) if matches, err := matcher.Matches(clusterPolicyBinding); err == nil && matches { clusterPolicyBindingList.Items = append(clusterPolicyBindingList.Items, *clusterPolicyBinding) } } return clusterPolicyBindingList, nil } func (i *InformerToClusterPolicyBindingLister) Get(name string) (*authorizationapi.ClusterPolicyBinding, error) { keyObj := &authorizationapi.ClusterPolicyBinding{ObjectMeta: kapi.ObjectMeta{Name: name}} key, _ := framework.DeletionHandlingMetaNamespaceKeyFunc(keyObj) item, exists, getErr := i.GetIndexer().GetByKey(key) if getErr != nil { return nil, getErr } if !exists { existsErr := kapierrors.NewNotFound(authorizationapi.Resource("clusterpolicybinding"), name) return nil, existsErr } return item.(*authorizationapi.ClusterPolicyBinding), nil }