mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-31 10:18:13 +00:00 
			
		
		
		
	move listers out of cache to reduce import tree
This commit is contained in:
		| @@ -26,6 +26,7 @@ go_library( | |||||||
|         "//pkg/apis/extensions/v1beta1:go_default_library", |         "//pkg/apis/extensions/v1beta1:go_default_library", | ||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/record:go_default_library", |         "//pkg/client/record:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/util/workqueue:go_default_library", |         "//pkg/util/workqueue:go_default_library", | ||||||
|   | |||||||
| @@ -43,6 +43,7 @@ import ( | |||||||
| 	extensionsv1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | 	extensionsv1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/record" | 	"k8s.io/kubernetes/pkg/client/record" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	"k8s.io/kubernetes/pkg/util/workqueue" | 	"k8s.io/kubernetes/pkg/util/workqueue" | ||||||
| @@ -81,7 +82,7 @@ type ReplicaSetController struct { | |||||||
| 	fedClient fedclientset.Interface | 	fedClient fedclientset.Interface | ||||||
|  |  | ||||||
| 	replicaSetController cache.Controller | 	replicaSetController cache.Controller | ||||||
| 	replicaSetStore      cache.StoreToReplicaSetLister | 	replicaSetStore      listers.StoreToReplicaSetLister | ||||||
|  |  | ||||||
| 	fedReplicaSetInformer fedutil.FederatedInformer | 	fedReplicaSetInformer fedutil.FederatedInformer | ||||||
| 	fedPodInformer        fedutil.FederatedInformer | 	fedPodInformer        fedutil.FederatedInformer | ||||||
|   | |||||||
| @@ -31,6 +31,7 @@ go_library( | |||||||
|         "//pkg/api/v1:go_default_library", |         "//pkg/api/v1:go_default_library", | ||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/record:go_default_library", |         "//pkg/client/record:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/util/workqueue:go_default_library", |         "//pkg/util/workqueue:go_default_library", | ||||||
|   | |||||||
| @@ -27,6 +27,7 @@ import ( | |||||||
| 	v1 "k8s.io/kubernetes/pkg/api/v1" | 	v1 "k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	cache "k8s.io/kubernetes/pkg/client/cache" | 	cache "k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/util/workqueue" | 	"k8s.io/kubernetes/pkg/util/workqueue" | ||||||
|  |  | ||||||
| 	"reflect" | 	"reflect" | ||||||
| @@ -39,11 +40,11 @@ type clusterCache struct { | |||||||
| 	clientset *kubeclientset.Clientset | 	clientset *kubeclientset.Clientset | ||||||
| 	cluster   *v1beta1.Cluster | 	cluster   *v1beta1.Cluster | ||||||
| 	// A store of services, populated by the serviceController | 	// A store of services, populated by the serviceController | ||||||
| 	serviceStore cache.StoreToServiceLister | 	serviceStore listers.StoreToServiceLister | ||||||
| 	// Watches changes to all services | 	// Watches changes to all services | ||||||
| 	serviceController cache.Controller | 	serviceController cache.Controller | ||||||
| 	// A store of endpoint, populated by the serviceController | 	// A store of endpoint, populated by the serviceController | ||||||
| 	endpointStore cache.StoreToEndpointsLister | 	endpointStore listers.StoreToEndpointsLister | ||||||
| 	// Watches changes to all endpoints | 	// Watches changes to all endpoints | ||||||
| 	endpointController cache.Controller | 	endpointController cache.Controller | ||||||
| 	// services that need to be synced | 	// services that need to be synced | ||||||
|   | |||||||
| @@ -43,6 +43,7 @@ import ( | |||||||
| 	v1 "k8s.io/kubernetes/pkg/api/v1" | 	v1 "k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	cache "k8s.io/kubernetes/pkg/client/cache" | 	cache "k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/record" | 	"k8s.io/kubernetes/pkg/client/record" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	"k8s.io/kubernetes/pkg/util/workqueue" | 	"k8s.io/kubernetes/pkg/util/workqueue" | ||||||
| @@ -119,7 +120,7 @@ type ServiceController struct { | |||||||
| 	serviceCache *serviceCache | 	serviceCache *serviceCache | ||||||
| 	clusterCache *clusterClientCache | 	clusterCache *clusterClientCache | ||||||
| 	// A store of services, populated by the serviceController | 	// A store of services, populated by the serviceController | ||||||
| 	serviceStore cache.StoreToServiceLister | 	serviceStore listers.StoreToServiceLister | ||||||
| 	// Watches changes to all services | 	// Watches changes to all services | ||||||
| 	serviceController cache.Controller | 	serviceController cache.Controller | ||||||
| 	federatedInformer fedutil.FederatedInformer | 	federatedInformer fedutil.FederatedInformer | ||||||
|   | |||||||
| @@ -40,6 +40,7 @@ filegroup( | |||||||
|         "//pkg/client/conditions:all-srcs", |         "//pkg/client/conditions:all-srcs", | ||||||
|         "//pkg/client/informers/informers_generated:all-srcs", |         "//pkg/client/informers/informers_generated:all-srcs", | ||||||
|         "//pkg/client/leaderelection:all-srcs", |         "//pkg/client/leaderelection:all-srcs", | ||||||
|  |         "//pkg/client/legacylisters:all-srcs", | ||||||
|         "//pkg/client/listers/apps/internalversion:all-srcs", |         "//pkg/client/listers/apps/internalversion:all-srcs", | ||||||
|         "//pkg/client/listers/apps/v1beta1:all-srcs", |         "//pkg/client/listers/apps/v1beta1:all-srcs", | ||||||
|         "//pkg/client/listers/authentication/internalversion:all-srcs", |         "//pkg/client/listers/authentication/internalversion:all-srcs", | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								pkg/client/cache/BUILD
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								pkg/client/cache/BUILD
									
									
									
									
										vendored
									
									
								
							| @@ -20,9 +20,6 @@ go_library( | |||||||
|         "fifo.go", |         "fifo.go", | ||||||
|         "index.go", |         "index.go", | ||||||
|         "listers.go", |         "listers.go", | ||||||
|         "listers_core.go", |  | ||||||
|         "listers_extensions.go", |  | ||||||
|         "listers_rbac.go", |  | ||||||
|         "listwatch.go", |         "listwatch.go", | ||||||
|         "mutation_detector.go", |         "mutation_detector.go", | ||||||
|         "reflector.go", |         "reflector.go", | ||||||
| @@ -35,14 +32,6 @@ go_library( | |||||||
|     deps = [ |     deps = [ | ||||||
|         "//pkg/api:go_default_library", |         "//pkg/api:go_default_library", | ||||||
|         "//pkg/api/v1:go_default_library", |         "//pkg/api/v1:go_default_library", | ||||||
|         "//pkg/apis/apps/v1beta1:go_default_library", |  | ||||||
|         "//pkg/apis/certificates/v1beta1:go_default_library", |  | ||||||
|         "//pkg/apis/extensions:go_default_library", |  | ||||||
|         "//pkg/apis/extensions/v1beta1:go_default_library", |  | ||||||
|         "//pkg/apis/policy/v1beta1:go_default_library", |  | ||||||
|         "//pkg/apis/rbac:go_default_library", |  | ||||||
|         "//pkg/apis/storage:go_default_library", |  | ||||||
|         "//pkg/apis/storage/v1beta1:go_default_library", |  | ||||||
|         "//vendor:github.com/golang/glog", |         "//vendor:github.com/golang/glog", | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/api/errors", |         "//vendor:k8s.io/apimachinery/pkg/api/errors", | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/api/meta", |         "//vendor:k8s.io/apimachinery/pkg/api/meta", | ||||||
| @@ -69,7 +58,6 @@ go_test( | |||||||
|         "expiration_cache_test.go", |         "expiration_cache_test.go", | ||||||
|         "fifo_test.go", |         "fifo_test.go", | ||||||
|         "index_test.go", |         "index_test.go", | ||||||
|         "listers_test.go", |  | ||||||
|         "listwatch_test.go", |         "listwatch_test.go", | ||||||
|         "mutation_detector_test.go", |         "mutation_detector_test.go", | ||||||
|         "processor_listener_test.go", |         "processor_listener_test.go", | ||||||
| @@ -83,14 +71,11 @@ go_test( | |||||||
|         "//pkg/api:go_default_library", |         "//pkg/api:go_default_library", | ||||||
|         "//pkg/api/testapi:go_default_library", |         "//pkg/api/testapi:go_default_library", | ||||||
|         "//pkg/api/v1:go_default_library", |         "//pkg/api/v1:go_default_library", | ||||||
|         "//pkg/apis/extensions/v1beta1:go_default_library", |  | ||||||
|         "//pkg/client/clientset_generated/internalclientset:go_default_library", |         "//pkg/client/clientset_generated/internalclientset:go_default_library", | ||||||
|         "//pkg/client/testing/cache:go_default_library", |         "//pkg/client/testing/cache:go_default_library", | ||||||
|         "//vendor:github.com/google/gofuzz", |         "//vendor:github.com/google/gofuzz", | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/api/errors", |  | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", |         "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/fields", |         "//vendor:k8s.io/apimachinery/pkg/fields", | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/labels", |  | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/runtime", |         "//vendor:k8s.io/apimachinery/pkg/runtime", | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/util/sets", |         "//vendor:k8s.io/apimachinery/pkg/util/sets", | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/util/wait", |         "//vendor:k8s.io/apimachinery/pkg/util/wait", | ||||||
|   | |||||||
							
								
								
									
										321
									
								
								pkg/client/cache/listers.go
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										321
									
								
								pkg/client/cache/listers.go
									
									
									
									
										vendored
									
									
								
							| @@ -17,9 +17,8 @@ limitations under the License. | |||||||
| package cache | package cache | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"fmt" |  | ||||||
|  |  | ||||||
| 	"github.com/golang/glog" | 	"github.com/golang/glog" | ||||||
|  |  | ||||||
| 	"k8s.io/apimachinery/pkg/api/errors" | 	"k8s.io/apimachinery/pkg/api/errors" | ||||||
| 	"k8s.io/apimachinery/pkg/api/meta" | 	"k8s.io/apimachinery/pkg/api/meta" | ||||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
| @@ -27,12 +26,6 @@ import ( | |||||||
| 	"k8s.io/apimachinery/pkg/runtime" | 	"k8s.io/apimachinery/pkg/runtime" | ||||||
| 	"k8s.io/apimachinery/pkg/runtime/schema" | 	"k8s.io/apimachinery/pkg/runtime/schema" | ||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	apps "k8s.io/kubernetes/pkg/apis/apps/v1beta1" |  | ||||||
| 	certificates "k8s.io/kubernetes/pkg/apis/certificates/v1beta1" |  | ||||||
| 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" |  | ||||||
| 	policy "k8s.io/kubernetes/pkg/apis/policy/v1beta1" |  | ||||||
| 	storageinternal "k8s.io/kubernetes/pkg/apis/storage" |  | ||||||
| 	storage "k8s.io/kubernetes/pkg/apis/storage/v1beta1" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // AppendFunc is used to add a matching item to whatever list the caller is using | // AppendFunc is used to add a matching item to whatever list the caller is using | ||||||
| @@ -166,315 +159,3 @@ func (s *genericNamespaceLister) Get(name string) (runtime.Object, error) { | |||||||
| 	} | 	} | ||||||
| 	return obj.(runtime.Object), nil | 	return obj.(runtime.Object), nil | ||||||
| } | } | ||||||
|  |  | ||||||
| //  TODO: generate these classes and methods for all resources of interest using |  | ||||||
| // a script.  Can use "go generate" once 1.4 is supported by all users. |  | ||||||
|  |  | ||||||
| // NodeConditionPredicate is a function that indicates whether the given node's conditions meet |  | ||||||
| // some set of criteria defined by the function. |  | ||||||
| type NodeConditionPredicate func(node *v1.Node) bool |  | ||||||
|  |  | ||||||
| // StoreToNodeLister makes a Store have the List method of the client.NodeInterface |  | ||||||
| // The Store must contain (only) Nodes. |  | ||||||
| type StoreToNodeLister struct { |  | ||||||
| 	Store |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (s *StoreToNodeLister) List() (machines v1.NodeList, err error) { |  | ||||||
| 	for _, m := range s.Store.List() { |  | ||||||
| 		machines.Items = append(machines.Items, *(m.(*v1.Node))) |  | ||||||
| 	} |  | ||||||
| 	return machines, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // NodeCondition returns a storeToNodeConditionLister |  | ||||||
| func (s *StoreToNodeLister) NodeCondition(predicate NodeConditionPredicate) storeToNodeConditionLister { |  | ||||||
| 	// TODO: Move this filtering server side. Currently our selectors don't facilitate searching through a list so we |  | ||||||
| 	// have the reflector filter out the Unschedulable field and sift through node conditions in the lister. |  | ||||||
| 	return storeToNodeConditionLister{s.Store, predicate} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // storeToNodeConditionLister filters and returns nodes matching the given type and status from the store. |  | ||||||
| type storeToNodeConditionLister struct { |  | ||||||
| 	store     Store |  | ||||||
| 	predicate NodeConditionPredicate |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // List returns a list of nodes that match the conditions defined by the predicate functions in the storeToNodeConditionLister. |  | ||||||
| func (s storeToNodeConditionLister) List() (nodes []*v1.Node, err error) { |  | ||||||
| 	for _, m := range s.store.List() { |  | ||||||
| 		node := m.(*v1.Node) |  | ||||||
| 		if s.predicate(node) { |  | ||||||
| 			nodes = append(nodes, node) |  | ||||||
| 		} else { |  | ||||||
| 			glog.V(5).Infof("Node %s matches none of the conditions", node.Name) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // StoreToDaemonSetLister gives a store List and Exists methods. The store must contain only DaemonSets. |  | ||||||
| type StoreToDaemonSetLister struct { |  | ||||||
| 	Store |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // Exists checks if the given daemon set exists in the store. |  | ||||||
| func (s *StoreToDaemonSetLister) Exists(ds *extensions.DaemonSet) (bool, error) { |  | ||||||
| 	_, exists, err := s.Store.Get(ds) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 	return exists, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // List lists all daemon sets in the store. |  | ||||||
| // TODO: converge on the interface in pkg/client |  | ||||||
| func (s *StoreToDaemonSetLister) List() (dss extensions.DaemonSetList, err error) { |  | ||||||
| 	for _, c := range s.Store.List() { |  | ||||||
| 		dss.Items = append(dss.Items, *(c.(*extensions.DaemonSet))) |  | ||||||
| 	} |  | ||||||
| 	return dss, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // GetPodDaemonSets returns a list of daemon sets managing a pod. |  | ||||||
| // Returns an error if and only if no matching daemon sets are found. |  | ||||||
| func (s *StoreToDaemonSetLister) GetPodDaemonSets(pod *v1.Pod) (daemonSets []extensions.DaemonSet, err error) { |  | ||||||
| 	var selector labels.Selector |  | ||||||
| 	var daemonSet extensions.DaemonSet |  | ||||||
|  |  | ||||||
| 	if len(pod.Labels) == 0 { |  | ||||||
| 		err = fmt.Errorf("no daemon sets found for pod %v because it has no labels", pod.Name) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	for _, m := range s.Store.List() { |  | ||||||
| 		daemonSet = *m.(*extensions.DaemonSet) |  | ||||||
| 		if daemonSet.Namespace != pod.Namespace { |  | ||||||
| 			continue |  | ||||||
| 		} |  | ||||||
| 		selector, err = metav1.LabelSelectorAsSelector(daemonSet.Spec.Selector) |  | ||||||
| 		if err != nil { |  | ||||||
| 			// this should not happen if the DaemonSet passed validation |  | ||||||
| 			return nil, err |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		// If a daemonSet with a nil or empty selector creeps in, it should match nothing, not everything. |  | ||||||
| 		if selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) { |  | ||||||
| 			continue |  | ||||||
| 		} |  | ||||||
| 		daemonSets = append(daemonSets, daemonSet) |  | ||||||
| 	} |  | ||||||
| 	if len(daemonSets) == 0 { |  | ||||||
| 		err = fmt.Errorf("could not find daemon set for pod %s in namespace %s with labels: %v", pod.Name, pod.Namespace, pod.Labels) |  | ||||||
| 	} |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // StoreToEndpointsLister makes a Store that lists endpoints. |  | ||||||
| type StoreToEndpointsLister struct { |  | ||||||
| 	Store |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // List lists all endpoints in the store. |  | ||||||
| func (s *StoreToEndpointsLister) List() (services v1.EndpointsList, err error) { |  | ||||||
| 	for _, m := range s.Store.List() { |  | ||||||
| 		services.Items = append(services.Items, *(m.(*v1.Endpoints))) |  | ||||||
| 	} |  | ||||||
| 	return services, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // GetServiceEndpoints returns the endpoints of a service, matched on service name. |  | ||||||
| func (s *StoreToEndpointsLister) GetServiceEndpoints(svc *v1.Service) (ep v1.Endpoints, err error) { |  | ||||||
| 	for _, m := range s.Store.List() { |  | ||||||
| 		ep = *m.(*v1.Endpoints) |  | ||||||
| 		if svc.Name == ep.Name && svc.Namespace == ep.Namespace { |  | ||||||
| 			return ep, nil |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	err = fmt.Errorf("could not find endpoints for service: %v", svc.Name) |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // Typed wrapper around a store of PersistentVolumes |  | ||||||
| type StoreToPVFetcher struct { |  | ||||||
| 	Store |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // GetPersistentVolumeInfo returns cached data for the PersistentVolume 'id'. |  | ||||||
| func (s *StoreToPVFetcher) GetPersistentVolumeInfo(id string) (*v1.PersistentVolume, error) { |  | ||||||
| 	o, exists, err := s.Get(&v1.PersistentVolume{ObjectMeta: metav1.ObjectMeta{Name: id}}) |  | ||||||
|  |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, fmt.Errorf("error retrieving PersistentVolume '%v' from cache: %v", id, err) |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	if !exists { |  | ||||||
| 		return nil, fmt.Errorf("PersistentVolume '%v' not found", id) |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	return o.(*v1.PersistentVolume), nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // StoreToStatefulSetLister gives a store List and Exists methods. The store must contain only StatefulSets. |  | ||||||
| type StoreToStatefulSetLister struct { |  | ||||||
| 	Store |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // Exists checks if the given StatefulSet exists in the store. |  | ||||||
| func (s *StoreToStatefulSetLister) Exists(ps *apps.StatefulSet) (bool, error) { |  | ||||||
| 	_, exists, err := s.Store.Get(ps) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 	return exists, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // List lists all StatefulSets in the store. |  | ||||||
| func (s *StoreToStatefulSetLister) List() (psList []apps.StatefulSet, err error) { |  | ||||||
| 	for _, ps := range s.Store.List() { |  | ||||||
| 		psList = append(psList, *(ps.(*apps.StatefulSet))) |  | ||||||
| 	} |  | ||||||
| 	return psList, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type storeStatefulSetsNamespacer struct { |  | ||||||
| 	store     Store |  | ||||||
| 	namespace string |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (s *StoreToStatefulSetLister) StatefulSets(namespace string) storeStatefulSetsNamespacer { |  | ||||||
| 	return storeStatefulSetsNamespacer{s.Store, namespace} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // GetPodStatefulSets returns a list of StatefulSets managing a pod. Returns an error only if no matching StatefulSets are found. |  | ||||||
| func (s *StoreToStatefulSetLister) GetPodStatefulSets(pod *v1.Pod) (psList []apps.StatefulSet, err error) { |  | ||||||
| 	var selector labels.Selector |  | ||||||
| 	var ps apps.StatefulSet |  | ||||||
|  |  | ||||||
| 	if len(pod.Labels) == 0 { |  | ||||||
| 		err = fmt.Errorf("no StatefulSets found for pod %v because it has no labels", pod.Name) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	for _, m := range s.Store.List() { |  | ||||||
| 		ps = *m.(*apps.StatefulSet) |  | ||||||
| 		if ps.Namespace != pod.Namespace { |  | ||||||
| 			continue |  | ||||||
| 		} |  | ||||||
| 		selector, err = metav1.LabelSelectorAsSelector(ps.Spec.Selector) |  | ||||||
| 		if err != nil { |  | ||||||
| 			err = fmt.Errorf("invalid selector: %v", err) |  | ||||||
| 			return |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		// If a StatefulSet with a nil or empty selector creeps in, it should match nothing, not everything. |  | ||||||
| 		if selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) { |  | ||||||
| 			continue |  | ||||||
| 		} |  | ||||||
| 		psList = append(psList, ps) |  | ||||||
| 	} |  | ||||||
| 	if len(psList) == 0 { |  | ||||||
| 		err = fmt.Errorf("could not find StatefulSet for pod %s in namespace %s with labels: %v", pod.Name, pod.Namespace, pod.Labels) |  | ||||||
| 	} |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // StoreToCertificateRequestLister gives a store List and Exists methods. The store must contain only CertificateRequests. |  | ||||||
| type StoreToCertificateRequestLister struct { |  | ||||||
| 	Store |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // Exists checks if the given csr exists in the store. |  | ||||||
| func (s *StoreToCertificateRequestLister) Exists(csr *certificates.CertificateSigningRequest) (bool, error) { |  | ||||||
| 	_, exists, err := s.Store.Get(csr) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 	return exists, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // StoreToCertificateRequestLister lists all csrs in the store. |  | ||||||
| func (s *StoreToCertificateRequestLister) List() (csrs certificates.CertificateSigningRequestList, err error) { |  | ||||||
| 	for _, c := range s.Store.List() { |  | ||||||
| 		csrs.Items = append(csrs.Items, *(c.(*certificates.CertificateSigningRequest))) |  | ||||||
| 	} |  | ||||||
| 	return csrs, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type StoreToPodDisruptionBudgetLister struct { |  | ||||||
| 	Store |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // GetPodPodDisruptionBudgets returns a list of PodDisruptionBudgets matching a pod.  Returns an error only if no matching PodDisruptionBudgets are found. |  | ||||||
| func (s *StoreToPodDisruptionBudgetLister) GetPodPodDisruptionBudgets(pod *v1.Pod) (pdbList []policy.PodDisruptionBudget, err error) { |  | ||||||
| 	var selector labels.Selector |  | ||||||
|  |  | ||||||
| 	if len(pod.Labels) == 0 { |  | ||||||
| 		err = fmt.Errorf("no PodDisruptionBudgets found for pod %v because it has no labels", pod.Name) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	for _, m := range s.Store.List() { |  | ||||||
| 		pdb, ok := m.(*policy.PodDisruptionBudget) |  | ||||||
| 		if !ok { |  | ||||||
| 			glog.Errorf("Unexpected: %v is not a PodDisruptionBudget", m) |  | ||||||
| 			continue |  | ||||||
| 		} |  | ||||||
| 		if pdb.Namespace != pod.Namespace { |  | ||||||
| 			continue |  | ||||||
| 		} |  | ||||||
| 		selector, err = metav1.LabelSelectorAsSelector(pdb.Spec.Selector) |  | ||||||
| 		if err != nil { |  | ||||||
| 			glog.Warningf("invalid selector: %v", err) |  | ||||||
| 			// TODO(mml): add an event to the PDB |  | ||||||
| 			continue |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		// If a PDB with a nil or empty selector creeps in, it should match nothing, not everything. |  | ||||||
| 		if selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) { |  | ||||||
| 			continue |  | ||||||
| 		} |  | ||||||
| 		pdbList = append(pdbList, *pdb) |  | ||||||
| 	} |  | ||||||
| 	if len(pdbList) == 0 { |  | ||||||
| 		err = fmt.Errorf("could not find PodDisruptionBudget for pod %s in namespace %s with labels: %v", pod.Name, pod.Namespace, pod.Labels) |  | ||||||
| 	} |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // StorageClassLister knows how to list storage classes |  | ||||||
| type StorageClassLister interface { |  | ||||||
| 	List(selector labels.Selector) (ret []*storage.StorageClass, err error) |  | ||||||
| 	Get(name string) (*storage.StorageClass, error) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // storageClassLister implements StorageClassLister |  | ||||||
| type storageClassLister struct { |  | ||||||
| 	indexer Indexer |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // NewStorageClassLister returns a new lister. |  | ||||||
| func NewStorageClassLister(indexer Indexer) StorageClassLister { |  | ||||||
| 	return &storageClassLister{indexer: indexer} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // List returns a list of storage classes |  | ||||||
| func (s *storageClassLister) List(selector labels.Selector) (ret []*storage.StorageClass, err error) { |  | ||||||
| 	err = ListAll(s.indexer, selector, func(m interface{}) { |  | ||||||
| 		ret = append(ret, m.(*storage.StorageClass)) |  | ||||||
| 	}) |  | ||||||
| 	return ret, err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // Get returns storage class with name 'name'. |  | ||||||
| func (s *storageClassLister) Get(name string) (*storage.StorageClass, error) { |  | ||||||
| 	key := &storage.StorageClass{ObjectMeta: metav1.ObjectMeta{Name: name}} |  | ||||||
| 	obj, exists, err := s.indexer.Get(key) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	if !exists { |  | ||||||
| 		return nil, errors.NewNotFound(storageinternal.Resource("storageclass"), name) |  | ||||||
| 	} |  | ||||||
| 	return obj.(*storage.StorageClass), nil |  | ||||||
| } |  | ||||||
|   | |||||||
							
								
								
									
										66
									
								
								pkg/client/legacylisters/BUILD
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								pkg/client/legacylisters/BUILD
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | |||||||
|  | package(default_visibility = ["//visibility:public"]) | ||||||
|  |  | ||||||
|  | licenses(["notice"]) | ||||||
|  |  | ||||||
|  | load( | ||||||
|  |     "@io_bazel_rules_go//go:def.bzl", | ||||||
|  |     "go_library", | ||||||
|  |     "go_test", | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | go_test( | ||||||
|  |     name = "go_default_test", | ||||||
|  |     srcs = ["listers_test.go"], | ||||||
|  |     library = ":go_default_library", | ||||||
|  |     tags = ["automanaged"], | ||||||
|  |     deps = [ | ||||||
|  |         "//pkg/api/v1:go_default_library", | ||||||
|  |         "//pkg/apis/extensions/v1beta1:go_default_library", | ||||||
|  |         "//pkg/client/cache:go_default_library", | ||||||
|  |         "//vendor:k8s.io/apimachinery/pkg/api/errors", | ||||||
|  |         "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", | ||||||
|  |         "//vendor:k8s.io/apimachinery/pkg/labels", | ||||||
|  |         "//vendor:k8s.io/apimachinery/pkg/util/sets", | ||||||
|  |     ], | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | go_library( | ||||||
|  |     name = "go_default_library", | ||||||
|  |     srcs = [ | ||||||
|  |         "listers.go", | ||||||
|  |         "listers_core.go", | ||||||
|  |         "listers_extensions.go", | ||||||
|  |         "listers_rbac.go", | ||||||
|  |     ], | ||||||
|  |     tags = ["automanaged"], | ||||||
|  |     deps = [ | ||||||
|  |         "//pkg/api:go_default_library", | ||||||
|  |         "//pkg/api/v1:go_default_library", | ||||||
|  |         "//pkg/apis/apps/v1beta1:go_default_library", | ||||||
|  |         "//pkg/apis/certificates/v1beta1:go_default_library", | ||||||
|  |         "//pkg/apis/extensions:go_default_library", | ||||||
|  |         "//pkg/apis/extensions/v1beta1:go_default_library", | ||||||
|  |         "//pkg/apis/policy/v1beta1:go_default_library", | ||||||
|  |         "//pkg/apis/rbac:go_default_library", | ||||||
|  |         "//pkg/apis/storage:go_default_library", | ||||||
|  |         "//pkg/apis/storage/v1beta1:go_default_library", | ||||||
|  |         "//pkg/client/cache:go_default_library", | ||||||
|  |         "//vendor:github.com/golang/glog", | ||||||
|  |         "//vendor:k8s.io/apimachinery/pkg/api/errors", | ||||||
|  |         "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", | ||||||
|  |         "//vendor:k8s.io/apimachinery/pkg/labels", | ||||||
|  |     ], | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | filegroup( | ||||||
|  |     name = "package-srcs", | ||||||
|  |     srcs = glob(["**"]), | ||||||
|  |     tags = ["automanaged"], | ||||||
|  |     visibility = ["//visibility:private"], | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | filegroup( | ||||||
|  |     name = "all-srcs", | ||||||
|  |     srcs = [":package-srcs"], | ||||||
|  |     tags = ["automanaged"], | ||||||
|  | ) | ||||||
							
								
								
									
										346
									
								
								pkg/client/legacylisters/listers.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										346
									
								
								pkg/client/legacylisters/listers.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,346 @@ | |||||||
|  | /* | ||||||
|  | Copyright 2014 The Kubernetes Authors. | ||||||
|  |  | ||||||
|  | Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  | you may not use this file except in compliance with the License. | ||||||
|  | You may obtain a copy of the License at | ||||||
|  |  | ||||||
|  |     http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  | ||||||
|  | Unless required by applicable law or agreed to in writing, software | ||||||
|  | distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  | See the License for the specific language governing permissions and | ||||||
|  | limitations under the License. | ||||||
|  | */ | ||||||
|  |  | ||||||
|  | package listers | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"fmt" | ||||||
|  |  | ||||||
|  | 	"github.com/golang/glog" | ||||||
|  | 	"k8s.io/apimachinery/pkg/api/errors" | ||||||
|  | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
|  | 	"k8s.io/apimachinery/pkg/labels" | ||||||
|  | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
|  | 	apps "k8s.io/kubernetes/pkg/apis/apps/v1beta1" | ||||||
|  | 	certificates "k8s.io/kubernetes/pkg/apis/certificates/v1beta1" | ||||||
|  | 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | ||||||
|  | 	policy "k8s.io/kubernetes/pkg/apis/policy/v1beta1" | ||||||
|  | 	storageinternal "k8s.io/kubernetes/pkg/apis/storage" | ||||||
|  | 	storage "k8s.io/kubernetes/pkg/apis/storage/v1beta1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | //  TODO: generate these classes and methods for all resources of interest using | ||||||
|  | // a script.  Can use "go generate" once 1.4 is supported by all users. | ||||||
|  |  | ||||||
|  | // NodeConditionPredicate is a function that indicates whether the given node's conditions meet | ||||||
|  | // some set of criteria defined by the function. | ||||||
|  | type NodeConditionPredicate func(node *v1.Node) bool | ||||||
|  |  | ||||||
|  | // StoreToNodeLister makes a Store have the List method of the client.NodeInterface | ||||||
|  | // The Store must contain (only) Nodes. | ||||||
|  | type StoreToNodeLister struct { | ||||||
|  | 	cache.Store | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (s *StoreToNodeLister) List() (machines v1.NodeList, err error) { | ||||||
|  | 	for _, m := range s.Store.List() { | ||||||
|  | 		machines.Items = append(machines.Items, *(m.(*v1.Node))) | ||||||
|  | 	} | ||||||
|  | 	return machines, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // NodeCondition returns a storeToNodeConditionLister | ||||||
|  | func (s *StoreToNodeLister) NodeCondition(predicate NodeConditionPredicate) storeToNodeConditionLister { | ||||||
|  | 	// TODO: Move this filtering server side. Currently our selectors don't facilitate searching through a list so we | ||||||
|  | 	// have the reflector filter out the Unschedulable field and sift through node conditions in the lister. | ||||||
|  | 	return storeToNodeConditionLister{s.Store, predicate} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // storeToNodeConditionLister filters and returns nodes matching the given type and status from the store. | ||||||
|  | type storeToNodeConditionLister struct { | ||||||
|  | 	store     cache.Store | ||||||
|  | 	predicate NodeConditionPredicate | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // List returns a list of nodes that match the conditions defined by the predicate functions in the storeToNodeConditionLister. | ||||||
|  | func (s storeToNodeConditionLister) List() (nodes []*v1.Node, err error) { | ||||||
|  | 	for _, m := range s.store.List() { | ||||||
|  | 		node := m.(*v1.Node) | ||||||
|  | 		if s.predicate(node) { | ||||||
|  | 			nodes = append(nodes, node) | ||||||
|  | 		} else { | ||||||
|  | 			glog.V(5).Infof("Node %s matches none of the conditions", node.Name) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // StoreToDaemonSetLister gives a store List and Exists methods. The store must contain only DaemonSets. | ||||||
|  | type StoreToDaemonSetLister struct { | ||||||
|  | 	cache.Store | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Exists checks if the given daemon set exists in the store. | ||||||
|  | func (s *StoreToDaemonSetLister) Exists(ds *extensions.DaemonSet) (bool, error) { | ||||||
|  | 	_, exists, err := s.Store.Get(ds) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return false, err | ||||||
|  | 	} | ||||||
|  | 	return exists, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // List lists all daemon sets in the store. | ||||||
|  | // TODO: converge on the interface in pkg/client | ||||||
|  | func (s *StoreToDaemonSetLister) List() (dss extensions.DaemonSetList, err error) { | ||||||
|  | 	for _, c := range s.Store.List() { | ||||||
|  | 		dss.Items = append(dss.Items, *(c.(*extensions.DaemonSet))) | ||||||
|  | 	} | ||||||
|  | 	return dss, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // GetPodDaemonSets returns a list of daemon sets managing a pod. | ||||||
|  | // Returns an error if and only if no matching daemon sets are found. | ||||||
|  | func (s *StoreToDaemonSetLister) GetPodDaemonSets(pod *v1.Pod) (daemonSets []extensions.DaemonSet, err error) { | ||||||
|  | 	var selector labels.Selector | ||||||
|  | 	var daemonSet extensions.DaemonSet | ||||||
|  |  | ||||||
|  | 	if len(pod.Labels) == 0 { | ||||||
|  | 		err = fmt.Errorf("no daemon sets found for pod %v because it has no labels", pod.Name) | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	for _, m := range s.Store.List() { | ||||||
|  | 		daemonSet = *m.(*extensions.DaemonSet) | ||||||
|  | 		if daemonSet.Namespace != pod.Namespace { | ||||||
|  | 			continue | ||||||
|  | 		} | ||||||
|  | 		selector, err = metav1.LabelSelectorAsSelector(daemonSet.Spec.Selector) | ||||||
|  | 		if err != nil { | ||||||
|  | 			// this should not happen if the DaemonSet passed validation | ||||||
|  | 			return nil, err | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		// If a daemonSet with a nil or empty selector creeps in, it should match nothing, not everything. | ||||||
|  | 		if selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) { | ||||||
|  | 			continue | ||||||
|  | 		} | ||||||
|  | 		daemonSets = append(daemonSets, daemonSet) | ||||||
|  | 	} | ||||||
|  | 	if len(daemonSets) == 0 { | ||||||
|  | 		err = fmt.Errorf("could not find daemon set for pod %s in namespace %s with labels: %v", pod.Name, pod.Namespace, pod.Labels) | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // StoreToEndpointsLister makes a Store that lists endpoints. | ||||||
|  | type StoreToEndpointsLister struct { | ||||||
|  | 	cache.Store | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // List lists all endpoints in the store. | ||||||
|  | func (s *StoreToEndpointsLister) List() (services v1.EndpointsList, err error) { | ||||||
|  | 	for _, m := range s.Store.List() { | ||||||
|  | 		services.Items = append(services.Items, *(m.(*v1.Endpoints))) | ||||||
|  | 	} | ||||||
|  | 	return services, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // GetServiceEndpoints returns the endpoints of a service, matched on service name. | ||||||
|  | func (s *StoreToEndpointsLister) GetServiceEndpoints(svc *v1.Service) (ep v1.Endpoints, err error) { | ||||||
|  | 	for _, m := range s.Store.List() { | ||||||
|  | 		ep = *m.(*v1.Endpoints) | ||||||
|  | 		if svc.Name == ep.Name && svc.Namespace == ep.Namespace { | ||||||
|  | 			return ep, nil | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	err = fmt.Errorf("could not find endpoints for service: %v", svc.Name) | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Typed wrapper around a store of PersistentVolumes | ||||||
|  | type StoreToPVFetcher struct { | ||||||
|  | 	cache.Store | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // GetPersistentVolumeInfo returns cached data for the PersistentVolume 'id'. | ||||||
|  | func (s *StoreToPVFetcher) GetPersistentVolumeInfo(id string) (*v1.PersistentVolume, error) { | ||||||
|  | 	o, exists, err := s.Get(&v1.PersistentVolume{ObjectMeta: metav1.ObjectMeta{Name: id}}) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, fmt.Errorf("error retrieving PersistentVolume '%v' from cache: %v", id, err) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	if !exists { | ||||||
|  | 		return nil, fmt.Errorf("PersistentVolume '%v' not found", id) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return o.(*v1.PersistentVolume), nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // StoreToStatefulSetLister gives a store List and Exists methods. The store must contain only StatefulSets. | ||||||
|  | type StoreToStatefulSetLister struct { | ||||||
|  | 	cache.Store | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Exists checks if the given StatefulSet exists in the store. | ||||||
|  | func (s *StoreToStatefulSetLister) Exists(ps *apps.StatefulSet) (bool, error) { | ||||||
|  | 	_, exists, err := s.Store.Get(ps) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return false, err | ||||||
|  | 	} | ||||||
|  | 	return exists, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // List lists all StatefulSets in the store. | ||||||
|  | func (s *StoreToStatefulSetLister) List() (psList []apps.StatefulSet, err error) { | ||||||
|  | 	for _, ps := range s.Store.List() { | ||||||
|  | 		psList = append(psList, *(ps.(*apps.StatefulSet))) | ||||||
|  | 	} | ||||||
|  | 	return psList, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type storeStatefulSetsNamespacer struct { | ||||||
|  | 	store     cache.Store | ||||||
|  | 	namespace string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (s *StoreToStatefulSetLister) StatefulSets(namespace string) storeStatefulSetsNamespacer { | ||||||
|  | 	return storeStatefulSetsNamespacer{s.Store, namespace} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // GetPodStatefulSets returns a list of StatefulSets managing a pod. Returns an error only if no matching StatefulSets are found. | ||||||
|  | func (s *StoreToStatefulSetLister) GetPodStatefulSets(pod *v1.Pod) (psList []apps.StatefulSet, err error) { | ||||||
|  | 	var selector labels.Selector | ||||||
|  | 	var ps apps.StatefulSet | ||||||
|  |  | ||||||
|  | 	if len(pod.Labels) == 0 { | ||||||
|  | 		err = fmt.Errorf("no StatefulSets found for pod %v because it has no labels", pod.Name) | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	for _, m := range s.Store.List() { | ||||||
|  | 		ps = *m.(*apps.StatefulSet) | ||||||
|  | 		if ps.Namespace != pod.Namespace { | ||||||
|  | 			continue | ||||||
|  | 		} | ||||||
|  | 		selector, err = metav1.LabelSelectorAsSelector(ps.Spec.Selector) | ||||||
|  | 		if err != nil { | ||||||
|  | 			err = fmt.Errorf("invalid selector: %v", err) | ||||||
|  | 			return | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		// If a StatefulSet with a nil or empty selector creeps in, it should match nothing, not everything. | ||||||
|  | 		if selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) { | ||||||
|  | 			continue | ||||||
|  | 		} | ||||||
|  | 		psList = append(psList, ps) | ||||||
|  | 	} | ||||||
|  | 	if len(psList) == 0 { | ||||||
|  | 		err = fmt.Errorf("could not find StatefulSet for pod %s in namespace %s with labels: %v", pod.Name, pod.Namespace, pod.Labels) | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // StoreToCertificateRequestLister gives a store List and Exists methods. The store must contain only CertificateRequests. | ||||||
|  | type StoreToCertificateRequestLister struct { | ||||||
|  | 	cache.Store | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Exists checks if the given csr exists in the store. | ||||||
|  | func (s *StoreToCertificateRequestLister) Exists(csr *certificates.CertificateSigningRequest) (bool, error) { | ||||||
|  | 	_, exists, err := s.Store.Get(csr) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return false, err | ||||||
|  | 	} | ||||||
|  | 	return exists, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // StoreToCertificateRequestLister lists all csrs in the store. | ||||||
|  | func (s *StoreToCertificateRequestLister) List() (csrs certificates.CertificateSigningRequestList, err error) { | ||||||
|  | 	for _, c := range s.Store.List() { | ||||||
|  | 		csrs.Items = append(csrs.Items, *(c.(*certificates.CertificateSigningRequest))) | ||||||
|  | 	} | ||||||
|  | 	return csrs, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type StoreToPodDisruptionBudgetLister struct { | ||||||
|  | 	cache.Store | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // GetPodPodDisruptionBudgets returns a list of PodDisruptionBudgets matching a pod.  Returns an error only if no matching PodDisruptionBudgets are found. | ||||||
|  | func (s *StoreToPodDisruptionBudgetLister) GetPodPodDisruptionBudgets(pod *v1.Pod) (pdbList []policy.PodDisruptionBudget, err error) { | ||||||
|  | 	var selector labels.Selector | ||||||
|  |  | ||||||
|  | 	if len(pod.Labels) == 0 { | ||||||
|  | 		err = fmt.Errorf("no PodDisruptionBudgets found for pod %v because it has no labels", pod.Name) | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	for _, m := range s.Store.List() { | ||||||
|  | 		pdb, ok := m.(*policy.PodDisruptionBudget) | ||||||
|  | 		if !ok { | ||||||
|  | 			glog.Errorf("Unexpected: %v is not a PodDisruptionBudget", m) | ||||||
|  | 			continue | ||||||
|  | 		} | ||||||
|  | 		if pdb.Namespace != pod.Namespace { | ||||||
|  | 			continue | ||||||
|  | 		} | ||||||
|  | 		selector, err = metav1.LabelSelectorAsSelector(pdb.Spec.Selector) | ||||||
|  | 		if err != nil { | ||||||
|  | 			glog.Warningf("invalid selector: %v", err) | ||||||
|  | 			// TODO(mml): add an event to the PDB | ||||||
|  | 			continue | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		// If a PDB with a nil or empty selector creeps in, it should match nothing, not everything. | ||||||
|  | 		if selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) { | ||||||
|  | 			continue | ||||||
|  | 		} | ||||||
|  | 		pdbList = append(pdbList, *pdb) | ||||||
|  | 	} | ||||||
|  | 	if len(pdbList) == 0 { | ||||||
|  | 		err = fmt.Errorf("could not find PodDisruptionBudget for pod %s in namespace %s with labels: %v", pod.Name, pod.Namespace, pod.Labels) | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // StorageClassLister knows how to list storage classes | ||||||
|  | type StorageClassLister interface { | ||||||
|  | 	List(selector labels.Selector) (ret []*storage.StorageClass, err error) | ||||||
|  | 	Get(name string) (*storage.StorageClass, error) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // storageClassLister implements StorageClassLister | ||||||
|  | type storageClassLister struct { | ||||||
|  | 	indexer cache.Indexer | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // NewStorageClassLister returns a new lister. | ||||||
|  | func NewStorageClassLister(indexer cache.Indexer) StorageClassLister { | ||||||
|  | 	return &storageClassLister{indexer: indexer} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // List returns a list of storage classes | ||||||
|  | func (s *storageClassLister) List(selector labels.Selector) (ret []*storage.StorageClass, err error) { | ||||||
|  | 	err = cache.ListAll(s.indexer, selector, func(m interface{}) { | ||||||
|  | 		ret = append(ret, m.(*storage.StorageClass)) | ||||||
|  | 	}) | ||||||
|  | 	return ret, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Get returns storage class with name 'name'. | ||||||
|  | func (s *storageClassLister) Get(name string) (*storage.StorageClass, error) { | ||||||
|  | 	key := &storage.StorageClass{ObjectMeta: metav1.ObjectMeta{Name: name}} | ||||||
|  | 	obj, exists, err := s.indexer.Get(key) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	if !exists { | ||||||
|  | 		return nil, errors.NewNotFound(storageinternal.Resource("storageclass"), name) | ||||||
|  | 	} | ||||||
|  | 	return obj.(*storage.StorageClass), nil | ||||||
|  | } | ||||||
| @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and | |||||||
| limitations under the License. | limitations under the License. | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| package cache | package listers | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| @@ -24,6 +24,7 @@ import ( | |||||||
| 	"k8s.io/apimachinery/pkg/labels" | 	"k8s.io/apimachinery/pkg/labels" | ||||||
| 	"k8s.io/kubernetes/pkg/api" | 	"k8s.io/kubernetes/pkg/api" | ||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| //  TODO: generate these classes and methods for all resources of interest using | //  TODO: generate these classes and methods for all resources of interest using | ||||||
| @@ -39,11 +40,11 @@ import ( | |||||||
| 
 | 
 | ||||||
| // StoreToPodLister helps list pods | // StoreToPodLister helps list pods | ||||||
| type StoreToPodLister struct { | type StoreToPodLister struct { | ||||||
| 	Indexer Indexer | 	Indexer cache.Indexer | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s *StoreToPodLister) List(selector labels.Selector) (ret []*v1.Pod, err error) { | func (s *StoreToPodLister) List(selector labels.Selector) (ret []*v1.Pod, err error) { | ||||||
| 	err = ListAll(s.Indexer, selector, func(m interface{}) { | 	err = cache.ListAll(s.Indexer, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*v1.Pod)) | 		ret = append(ret, m.(*v1.Pod)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -54,12 +55,12 @@ func (s *StoreToPodLister) Pods(namespace string) storePodsNamespacer { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type storePodsNamespacer struct { | type storePodsNamespacer struct { | ||||||
| 	Indexer   Indexer | 	Indexer   cache.Indexer | ||||||
| 	namespace string | 	namespace string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s storePodsNamespacer) List(selector labels.Selector) (ret []*v1.Pod, err error) { | func (s storePodsNamespacer) List(selector labels.Selector) (ret []*v1.Pod, err error) { | ||||||
| 	err = ListAllByNamespace(s.Indexer, s.namespace, selector, func(m interface{}) { | 	err = cache.ListAllByNamespace(s.Indexer, s.namespace, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*v1.Pod)) | 		ret = append(ret, m.(*v1.Pod)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -78,11 +79,11 @@ func (s storePodsNamespacer) Get(name string) (*v1.Pod, error) { | |||||||
| 
 | 
 | ||||||
| // StoreToServiceLister helps list services | // StoreToServiceLister helps list services | ||||||
| type StoreToServiceLister struct { | type StoreToServiceLister struct { | ||||||
| 	Indexer Indexer | 	Indexer cache.Indexer | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s *StoreToServiceLister) List(selector labels.Selector) (ret []*v1.Service, err error) { | func (s *StoreToServiceLister) List(selector labels.Selector) (ret []*v1.Service, err error) { | ||||||
| 	err = ListAll(s.Indexer, selector, func(m interface{}) { | 	err = cache.ListAll(s.Indexer, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*v1.Service)) | 		ret = append(ret, m.(*v1.Service)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -93,12 +94,12 @@ func (s *StoreToServiceLister) Services(namespace string) storeServicesNamespace | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type storeServicesNamespacer struct { | type storeServicesNamespacer struct { | ||||||
| 	indexer   Indexer | 	indexer   cache.Indexer | ||||||
| 	namespace string | 	namespace string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s storeServicesNamespacer) List(selector labels.Selector) (ret []*v1.Service, err error) { | func (s storeServicesNamespacer) List(selector labels.Selector) (ret []*v1.Service, err error) { | ||||||
| 	err = ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { | 	err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*v1.Service)) | 		ret = append(ret, m.(*v1.Service)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -140,11 +141,11 @@ func (s *StoreToServiceLister) GetPodServices(pod *v1.Pod) (services []*v1.Servi | |||||||
| 
 | 
 | ||||||
| // StoreToReplicationControllerLister helps list rcs | // StoreToReplicationControllerLister helps list rcs | ||||||
| type StoreToReplicationControllerLister struct { | type StoreToReplicationControllerLister struct { | ||||||
| 	Indexer Indexer | 	Indexer cache.Indexer | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s *StoreToReplicationControllerLister) List(selector labels.Selector) (ret []*v1.ReplicationController, err error) { | func (s *StoreToReplicationControllerLister) List(selector labels.Selector) (ret []*v1.ReplicationController, err error) { | ||||||
| 	err = ListAll(s.Indexer, selector, func(m interface{}) { | 	err = cache.ListAll(s.Indexer, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*v1.ReplicationController)) | 		ret = append(ret, m.(*v1.ReplicationController)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -155,12 +156,12 @@ func (s *StoreToReplicationControllerLister) ReplicationControllers(namespace st | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type storeReplicationControllersNamespacer struct { | type storeReplicationControllersNamespacer struct { | ||||||
| 	indexer   Indexer | 	indexer   cache.Indexer | ||||||
| 	namespace string | 	namespace string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s storeReplicationControllersNamespacer) List(selector labels.Selector) (ret []*v1.ReplicationController, err error) { | func (s storeReplicationControllersNamespacer) List(selector labels.Selector) (ret []*v1.ReplicationController, err error) { | ||||||
| 	err = ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { | 	err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*v1.ReplicationController)) | 		ret = append(ret, m.(*v1.ReplicationController)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -185,7 +186,7 @@ func (s *StoreToReplicationControllerLister) GetPodControllers(pod *v1.Pod) (con | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	key := &v1.ReplicationController{ObjectMeta: metav1.ObjectMeta{Namespace: pod.Namespace}} | 	key := &v1.ReplicationController{ObjectMeta: metav1.ObjectMeta{Namespace: pod.Namespace}} | ||||||
| 	items, err := s.Indexer.Index(NamespaceIndex, key) | 	items, err := s.Indexer.Index(cache.NamespaceIndex, key) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| @@ -208,11 +209,11 @@ func (s *StoreToReplicationControllerLister) GetPodControllers(pod *v1.Pod) (con | |||||||
| 
 | 
 | ||||||
| // StoreToServiceAccountLister helps list service accounts | // StoreToServiceAccountLister helps list service accounts | ||||||
| type StoreToServiceAccountLister struct { | type StoreToServiceAccountLister struct { | ||||||
| 	Indexer Indexer | 	Indexer cache.Indexer | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s *StoreToServiceAccountLister) List(selector labels.Selector) (ret []*v1.ServiceAccount, err error) { | func (s *StoreToServiceAccountLister) List(selector labels.Selector) (ret []*v1.ServiceAccount, err error) { | ||||||
| 	err = ListAll(s.Indexer, selector, func(m interface{}) { | 	err = cache.ListAll(s.Indexer, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*v1.ServiceAccount)) | 		ret = append(ret, m.(*v1.ServiceAccount)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -223,12 +224,12 @@ func (s *StoreToServiceAccountLister) ServiceAccounts(namespace string) storeSer | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type storeServiceAccountsNamespacer struct { | type storeServiceAccountsNamespacer struct { | ||||||
| 	indexer   Indexer | 	indexer   cache.Indexer | ||||||
| 	namespace string | 	namespace string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s storeServiceAccountsNamespacer) List(selector labels.Selector) (ret []*v1.ServiceAccount, err error) { | func (s storeServiceAccountsNamespacer) List(selector labels.Selector) (ret []*v1.ServiceAccount, err error) { | ||||||
| 	err = ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { | 	err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*v1.ServiceAccount)) | 		ret = append(ret, m.(*v1.ServiceAccount)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -247,11 +248,11 @@ func (s storeServiceAccountsNamespacer) Get(name string) (*v1.ServiceAccount, er | |||||||
| 
 | 
 | ||||||
| // StoreToLimitRangeLister helps list limit ranges | // StoreToLimitRangeLister helps list limit ranges | ||||||
| type StoreToLimitRangeLister struct { | type StoreToLimitRangeLister struct { | ||||||
| 	Indexer Indexer | 	Indexer cache.Indexer | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s *StoreToLimitRangeLister) List(selector labels.Selector) (ret []*v1.LimitRange, err error) { | func (s *StoreToLimitRangeLister) List(selector labels.Selector) (ret []*v1.LimitRange, err error) { | ||||||
| 	err = ListAll(s.Indexer, selector, func(m interface{}) { | 	err = cache.ListAll(s.Indexer, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*v1.LimitRange)) | 		ret = append(ret, m.(*v1.LimitRange)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -259,12 +260,12 @@ func (s *StoreToLimitRangeLister) List(selector labels.Selector) (ret []*v1.Limi | |||||||
| 
 | 
 | ||||||
| // StoreToPersistentVolumeClaimLister helps list pvcs | // StoreToPersistentVolumeClaimLister helps list pvcs | ||||||
| type StoreToPersistentVolumeClaimLister struct { | type StoreToPersistentVolumeClaimLister struct { | ||||||
| 	Indexer Indexer | 	Indexer cache.Indexer | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // List returns all persistentvolumeclaims that match the specified selector | // List returns all persistentvolumeclaims that match the specified selector | ||||||
| func (s *StoreToPersistentVolumeClaimLister) List(selector labels.Selector) (ret []*v1.PersistentVolumeClaim, err error) { | func (s *StoreToPersistentVolumeClaimLister) List(selector labels.Selector) (ret []*v1.PersistentVolumeClaim, err error) { | ||||||
| 	err = ListAll(s.Indexer, selector, func(m interface{}) { | 	err = cache.ListAll(s.Indexer, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*v1.PersistentVolumeClaim)) | 		ret = append(ret, m.(*v1.PersistentVolumeClaim)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -275,12 +276,12 @@ func (s *StoreToLimitRangeLister) LimitRanges(namespace string) storeLimitRanges | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type storeLimitRangesNamespacer struct { | type storeLimitRangesNamespacer struct { | ||||||
| 	indexer   Indexer | 	indexer   cache.Indexer | ||||||
| 	namespace string | 	namespace string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s storeLimitRangesNamespacer) List(selector labels.Selector) (ret []*v1.LimitRange, err error) { | func (s storeLimitRangesNamespacer) List(selector labels.Selector) (ret []*v1.LimitRange, err error) { | ||||||
| 	err = ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { | 	err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*v1.LimitRange)) | 		ret = append(ret, m.(*v1.LimitRange)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -303,12 +304,12 @@ func (s *StoreToPersistentVolumeClaimLister) PersistentVolumeClaims(namespace st | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type storePersistentVolumeClaimsNamespacer struct { | type storePersistentVolumeClaimsNamespacer struct { | ||||||
| 	Indexer   Indexer | 	Indexer   cache.Indexer | ||||||
| 	namespace string | 	namespace string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s storePersistentVolumeClaimsNamespacer) List(selector labels.Selector) (ret []*v1.PersistentVolumeClaim, err error) { | func (s storePersistentVolumeClaimsNamespacer) List(selector labels.Selector) (ret []*v1.PersistentVolumeClaim, err error) { | ||||||
| 	err = ListAllByNamespace(s.Indexer, s.namespace, selector, func(m interface{}) { | 	err = cache.ListAllByNamespace(s.Indexer, s.namespace, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*v1.PersistentVolumeClaim)) | 		ret = append(ret, m.(*v1.PersistentVolumeClaim)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -327,12 +328,12 @@ func (s storePersistentVolumeClaimsNamespacer) Get(name string) (*v1.PersistentV | |||||||
| 
 | 
 | ||||||
| // IndexerToNamespaceLister gives an Indexer List method | // IndexerToNamespaceLister gives an Indexer List method | ||||||
| type IndexerToNamespaceLister struct { | type IndexerToNamespaceLister struct { | ||||||
| 	Indexer | 	cache.Indexer | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // List returns a list of namespaces | // List returns a list of namespaces | ||||||
| func (i *IndexerToNamespaceLister) List(selector labels.Selector) (ret []*v1.Namespace, err error) { | func (i *IndexerToNamespaceLister) List(selector labels.Selector) (ret []*v1.Namespace, err error) { | ||||||
| 	err = ListAll(i.Indexer, selector, func(m interface{}) { | 	err = cache.ListAll(i.Indexer, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*v1.Namespace)) | 		ret = append(ret, m.(*v1.Namespace)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and | |||||||
| limitations under the License. | limitations under the License. | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| package cache | package listers | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| @@ -25,6 +25,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	extensionsinternal "k8s.io/kubernetes/pkg/apis/extensions" | 	extensionsinternal "k8s.io/kubernetes/pkg/apis/extensions" | ||||||
| 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| //  TODO: generate these classes and methods for all resources of interest using | //  TODO: generate these classes and methods for all resources of interest using | ||||||
| @@ -40,11 +41,11 @@ import ( | |||||||
| 
 | 
 | ||||||
| // StoreToDeploymentLister helps list deployments | // StoreToDeploymentLister helps list deployments | ||||||
| type StoreToDeploymentLister struct { | type StoreToDeploymentLister struct { | ||||||
| 	Indexer Indexer | 	Indexer cache.Indexer | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s *StoreToDeploymentLister) List(selector labels.Selector) (ret []*extensions.Deployment, err error) { | func (s *StoreToDeploymentLister) List(selector labels.Selector) (ret []*extensions.Deployment, err error) { | ||||||
| 	err = ListAll(s.Indexer, selector, func(m interface{}) { | 	err = cache.ListAll(s.Indexer, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*extensions.Deployment)) | 		ret = append(ret, m.(*extensions.Deployment)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -55,12 +56,12 @@ func (s *StoreToDeploymentLister) Deployments(namespace string) storeDeployments | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type storeDeploymentsNamespacer struct { | type storeDeploymentsNamespacer struct { | ||||||
| 	Indexer   Indexer | 	Indexer   cache.Indexer | ||||||
| 	namespace string | 	namespace string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s storeDeploymentsNamespacer) List(selector labels.Selector) (ret []*extensions.Deployment, err error) { | func (s storeDeploymentsNamespacer) List(selector labels.Selector) (ret []*extensions.Deployment, err error) { | ||||||
| 	err = ListAllByNamespace(s.Indexer, s.namespace, selector, func(m interface{}) { | 	err = cache.ListAllByNamespace(s.Indexer, s.namespace, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*extensions.Deployment)) | 		ret = append(ret, m.(*extensions.Deployment)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -141,11 +142,11 @@ func (s *StoreToDeploymentLister) GetDeploymentsForPod(pod *v1.Pod) (deployments | |||||||
| 
 | 
 | ||||||
| // StoreToReplicaSetLister helps list replicasets | // StoreToReplicaSetLister helps list replicasets | ||||||
| type StoreToReplicaSetLister struct { | type StoreToReplicaSetLister struct { | ||||||
| 	Indexer Indexer | 	Indexer cache.Indexer | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s *StoreToReplicaSetLister) List(selector labels.Selector) (ret []*extensions.ReplicaSet, err error) { | func (s *StoreToReplicaSetLister) List(selector labels.Selector) (ret []*extensions.ReplicaSet, err error) { | ||||||
| 	err = ListAll(s.Indexer, selector, func(m interface{}) { | 	err = cache.ListAll(s.Indexer, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*extensions.ReplicaSet)) | 		ret = append(ret, m.(*extensions.ReplicaSet)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -156,12 +157,12 @@ func (s *StoreToReplicaSetLister) ReplicaSets(namespace string) storeReplicaSets | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type storeReplicaSetsNamespacer struct { | type storeReplicaSetsNamespacer struct { | ||||||
| 	Indexer   Indexer | 	Indexer   cache.Indexer | ||||||
| 	namespace string | 	namespace string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s storeReplicaSetsNamespacer) List(selector labels.Selector) (ret []*extensions.ReplicaSet, err error) { | func (s storeReplicaSetsNamespacer) List(selector labels.Selector) (ret []*extensions.ReplicaSet, err error) { | ||||||
| 	err = ListAllByNamespace(s.Indexer, s.namespace, selector, func(m interface{}) { | 	err = cache.ListAllByNamespace(s.Indexer, s.namespace, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*extensions.ReplicaSet)) | 		ret = append(ret, m.(*extensions.ReplicaSet)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -14,12 +14,13 @@ See the License for the specific language governing permissions and | |||||||
| limitations under the License. | limitations under the License. | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| package cache | package listers | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"k8s.io/apimachinery/pkg/api/errors" | 	"k8s.io/apimachinery/pkg/api/errors" | ||||||
| 	"k8s.io/apimachinery/pkg/labels" | 	"k8s.io/apimachinery/pkg/labels" | ||||||
| 	rbac "k8s.io/kubernetes/pkg/apis/rbac" | 	rbac "k8s.io/kubernetes/pkg/apis/rbac" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| //  TODO: generate these classes and methods for all resources of interest using | //  TODO: generate these classes and methods for all resources of interest using | ||||||
| @@ -33,16 +34,16 @@ import ( | |||||||
| // l := clusterRoleLister{s} | // l := clusterRoleLister{s} | ||||||
| // l.List() | // l.List() | ||||||
| 
 | 
 | ||||||
| func NewClusterRoleLister(indexer Indexer) ClusterRoleLister { | func NewClusterRoleLister(indexer cache.Indexer) ClusterRoleLister { | ||||||
| 	return &clusterRoleLister{indexer: indexer} | 	return &clusterRoleLister{indexer: indexer} | ||||||
| } | } | ||||||
| func NewClusterRoleBindingLister(indexer Indexer) ClusterRoleBindingLister { | func NewClusterRoleBindingLister(indexer cache.Indexer) ClusterRoleBindingLister { | ||||||
| 	return &clusterRoleBindingLister{indexer: indexer} | 	return &clusterRoleBindingLister{indexer: indexer} | ||||||
| } | } | ||||||
| func NewRoleLister(indexer Indexer) RoleLister { | func NewRoleLister(indexer cache.Indexer) RoleLister { | ||||||
| 	return &roleLister{indexer: indexer} | 	return &roleLister{indexer: indexer} | ||||||
| } | } | ||||||
| func NewRoleBindingLister(indexer Indexer) RoleBindingLister { | func NewRoleBindingLister(indexer cache.Indexer) RoleBindingLister { | ||||||
| 	return &roleBindingLister{indexer: indexer} | 	return &roleBindingLister{indexer: indexer} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @@ -70,11 +71,11 @@ type ClusterRoleLister interface { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type clusterRoleLister struct { | type clusterRoleLister struct { | ||||||
| 	indexer Indexer | 	indexer cache.Indexer | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s *clusterRoleLister) List(selector labels.Selector) (ret []*rbac.ClusterRole, err error) { | func (s *clusterRoleLister) List(selector labels.Selector) (ret []*rbac.ClusterRole, err error) { | ||||||
| 	err = ListAll(s.indexer, selector, func(m interface{}) { | 	err = cache.ListAll(s.indexer, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*rbac.ClusterRole)) | 		ret = append(ret, m.(*rbac.ClusterRole)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -102,11 +103,11 @@ type ClusterRoleBindingLister interface { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type clusterRoleBindingLister struct { | type clusterRoleBindingLister struct { | ||||||
| 	indexer Indexer | 	indexer cache.Indexer | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s *clusterRoleBindingLister) List(selector labels.Selector) (ret []*rbac.ClusterRoleBinding, err error) { | func (s *clusterRoleBindingLister) List(selector labels.Selector) (ret []*rbac.ClusterRoleBinding, err error) { | ||||||
| 	err = ListAll(s.indexer, selector, func(m interface{}) { | 	err = cache.ListAll(s.indexer, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*rbac.ClusterRoleBinding)) | 		ret = append(ret, m.(*rbac.ClusterRoleBinding)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -139,11 +140,11 @@ type RoleNamespaceLister interface { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type roleLister struct { | type roleLister struct { | ||||||
| 	indexer Indexer | 	indexer cache.Indexer | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s *roleLister) List(selector labels.Selector) (ret []*rbac.Role, err error) { | func (s *roleLister) List(selector labels.Selector) (ret []*rbac.Role, err error) { | ||||||
| 	err = ListAll(s.indexer, selector, func(m interface{}) { | 	err = cache.ListAll(s.indexer, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*rbac.Role)) | 		ret = append(ret, m.(*rbac.Role)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -158,12 +159,12 @@ func (s roleLister) GetRole(namespace, name string) (*rbac.Role, error) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type roleNamespaceLister struct { | type roleNamespaceLister struct { | ||||||
| 	indexer   Indexer | 	indexer   cache.Indexer | ||||||
| 	namespace string | 	namespace string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s roleNamespaceLister) List(selector labels.Selector) (ret []*rbac.Role, err error) { | func (s roleNamespaceLister) List(selector labels.Selector) (ret []*rbac.Role, err error) { | ||||||
| 	err = ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { | 	err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*rbac.Role)) | 		ret = append(ret, m.(*rbac.Role)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -192,11 +193,11 @@ type RoleBindingNamespaceLister interface { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type roleBindingLister struct { | type roleBindingLister struct { | ||||||
| 	indexer Indexer | 	indexer cache.Indexer | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s *roleBindingLister) List(selector labels.Selector) (ret []*rbac.RoleBinding, err error) { | func (s *roleBindingLister) List(selector labels.Selector) (ret []*rbac.RoleBinding, err error) { | ||||||
| 	err = ListAll(s.indexer, selector, func(m interface{}) { | 	err = cache.ListAll(s.indexer, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*rbac.RoleBinding)) | 		ret = append(ret, m.(*rbac.RoleBinding)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -211,12 +212,12 @@ func (s roleBindingLister) ListRoleBindings(namespace string) ([]*rbac.RoleBindi | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type roleBindingNamespaceLister struct { | type roleBindingNamespaceLister struct { | ||||||
| 	indexer   Indexer | 	indexer   cache.Indexer | ||||||
| 	namespace string | 	namespace string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s roleBindingNamespaceLister) List(selector labels.Selector) (ret []*rbac.RoleBinding, err error) { | func (s roleBindingNamespaceLister) List(selector labels.Selector) (ret []*rbac.RoleBinding, err error) { | ||||||
| 	err = ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { | 	err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { | ||||||
| 		ret = append(ret, m.(*rbac.RoleBinding)) | 		ret = append(ret, m.(*rbac.RoleBinding)) | ||||||
| 	}) | 	}) | ||||||
| 	return ret, err | 	return ret, err | ||||||
| @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and | |||||||
| limitations under the License. | limitations under the License. | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| package cache | package listers | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| @@ -25,10 +25,11 @@ import ( | |||||||
| 	"k8s.io/apimachinery/pkg/util/sets" | 	"k8s.io/apimachinery/pkg/util/sets" | ||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func TestStoreToNodeLister(t *testing.T) { | func TestStoreToNodeLister(t *testing.T) { | ||||||
| 	store := NewStore(MetaNamespaceKeyFunc) | 	store := cache.NewStore(cache.MetaNamespaceKeyFunc) | ||||||
| 	ids := sets.NewString("foo", "bar", "baz") | 	ids := sets.NewString("foo", "bar", "baz") | ||||||
| 	for id := range ids { | 	for id := range ids { | ||||||
| 		store.Add(&v1.Node{ObjectMeta: metav1.ObjectMeta{Name: id}}) | 		store.Add(&v1.Node{ObjectMeta: metav1.ObjectMeta{Name: id}}) | ||||||
| @@ -49,7 +50,7 @@ func TestStoreToNodeLister(t *testing.T) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestStoreToNodeConditionLister(t *testing.T) { | func TestStoreToNodeConditionLister(t *testing.T) { | ||||||
| 	store := NewStore(MetaNamespaceKeyFunc) | 	store := cache.NewStore(cache.MetaNamespaceKeyFunc) | ||||||
| 	nodes := []*v1.Node{ | 	nodes := []*v1.Node{ | ||||||
| 		{ | 		{ | ||||||
| 			ObjectMeta: metav1.ObjectMeta{Name: "foo"}, | 			ObjectMeta: metav1.ObjectMeta{Name: "foo"}, | ||||||
| @@ -246,11 +247,11 @@ func TestStoreToReplicationControllerLister(t *testing.T) { | |||||||
| 			if c.onlyIfIndexedByNamespace && !withIndex { | 			if c.onlyIfIndexedByNamespace && !withIndex { | ||||||
| 				continue | 				continue | ||||||
| 			} | 			} | ||||||
| 			var store Indexer | 			var store cache.Indexer | ||||||
| 			if withIndex { | 			if withIndex { | ||||||
| 				store = NewIndexer(MetaNamespaceKeyFunc, Indexers{NamespaceIndex: MetaNamespaceIndexFunc}) | 				store = cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) | ||||||
| 			} else { | 			} else { | ||||||
| 				store = NewIndexer(MetaNamespaceKeyFunc, Indexers{}) | 				store = cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{}) | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			for _, r := range c.inRCs { | 			for _, r := range c.inRCs { | ||||||
| @@ -279,7 +280,7 @@ func TestStoreToReplicationControllerLister(t *testing.T) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestStoreToReplicaSetLister(t *testing.T) { | func TestStoreToReplicaSetLister(t *testing.T) { | ||||||
| 	store := NewIndexer(MetaNamespaceKeyFunc, Indexers{NamespaceIndex: MetaNamespaceIndexFunc}) | 	store := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) | ||||||
| 	lister := StoreToReplicaSetLister{store} | 	lister := StoreToReplicaSetLister{store} | ||||||
| 	testCases := []struct { | 	testCases := []struct { | ||||||
| 		inRSs      []*extensions.ReplicaSet | 		inRSs      []*extensions.ReplicaSet | ||||||
| @@ -391,7 +392,7 @@ func TestStoreToReplicaSetLister(t *testing.T) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestStoreToDaemonSetLister(t *testing.T) { | func TestStoreToDaemonSetLister(t *testing.T) { | ||||||
| 	store := NewStore(MetaNamespaceKeyFunc) | 	store := cache.NewStore(cache.MetaNamespaceKeyFunc) | ||||||
| 	lister := StoreToDaemonSetLister{store} | 	lister := StoreToDaemonSetLister{store} | ||||||
| 	testCases := []struct { | 	testCases := []struct { | ||||||
| 		inDSs             []*extensions.DaemonSet | 		inDSs             []*extensions.DaemonSet | ||||||
| @@ -520,9 +521,9 @@ func TestStoreToPodLister(t *testing.T) { | |||||||
| 	// We test with and without a namespace index, because StoreToPodLister has | 	// We test with and without a namespace index, because StoreToPodLister has | ||||||
| 	// special logic to work on namespaces even when no namespace index is | 	// special logic to work on namespaces even when no namespace index is | ||||||
| 	// present. | 	// present. | ||||||
| 	stores := []Indexer{ | 	stores := []cache.Indexer{ | ||||||
| 		NewIndexer(MetaNamespaceKeyFunc, Indexers{NamespaceIndex: MetaNamespaceIndexFunc}), | 		cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}), | ||||||
| 		NewIndexer(MetaNamespaceKeyFunc, Indexers{}), | 		cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{}), | ||||||
| 	} | 	} | ||||||
| 	for _, store := range stores { | 	for _, store := range stores { | ||||||
| 		ids := []string{"foo", "bar", "baz"} | 		ids := []string{"foo", "bar", "baz"} | ||||||
| @@ -582,7 +583,7 @@ func TestStoreToPodLister(t *testing.T) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestStoreToServiceLister(t *testing.T) { | func TestStoreToServiceLister(t *testing.T) { | ||||||
| 	store := NewIndexer(MetaNamespaceKeyFunc, Indexers{NamespaceIndex: MetaNamespaceIndexFunc}) | 	store := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) | ||||||
| 	store.Add(&v1.Service{ | 	store.Add(&v1.Service{ | ||||||
| 		ObjectMeta: metav1.ObjectMeta{Name: "foo"}, | 		ObjectMeta: metav1.ObjectMeta{Name: "foo"}, | ||||||
| 		Spec: v1.ServiceSpec{ | 		Spec: v1.ServiceSpec{ | ||||||
| @@ -25,6 +25,7 @@ go_library( | |||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/certificates/v1beta1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/certificates/v1beta1:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/record:go_default_library", |         "//pkg/client/record:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/util/workqueue:go_default_library", |         "//pkg/util/workqueue:go_default_library", | ||||||
|   | |||||||
| @@ -29,6 +29,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
| 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/record" | 	"k8s.io/kubernetes/pkg/client/record" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	"k8s.io/kubernetes/pkg/util/workqueue" | 	"k8s.io/kubernetes/pkg/util/workqueue" | ||||||
| @@ -49,7 +50,7 @@ type CertificateController struct { | |||||||
|  |  | ||||||
| 	// CSR framework and store | 	// CSR framework and store | ||||||
| 	csrController cache.Controller | 	csrController cache.Controller | ||||||
| 	csrStore      cache.StoreToCertificateRequestLister | 	csrStore      listers.StoreToCertificateRequestLister | ||||||
|  |  | ||||||
| 	syncHandler func(csrKey string) error | 	syncHandler func(csrKey string) error | ||||||
|  |  | ||||||
|   | |||||||
| @@ -23,6 +23,7 @@ go_library( | |||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/extensions/v1beta1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/extensions/v1beta1:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/record:go_default_library", |         "//pkg/client/record:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/controller/informers:go_default_library", |         "//pkg/controller/informers:go_default_library", | ||||||
|   | |||||||
| @@ -35,6 +35,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
| 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | ||||||
| 	unversionedextensions "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/extensions/v1beta1" | 	unversionedextensions "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/extensions/v1beta1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/record" | 	"k8s.io/kubernetes/pkg/client/record" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	"k8s.io/kubernetes/pkg/controller/informers" | 	"k8s.io/kubernetes/pkg/controller/informers" | ||||||
| @@ -74,11 +75,11 @@ type DaemonSetsController struct { | |||||||
| 	// A TTLCache of pod creates/deletes each ds expects to see | 	// A TTLCache of pod creates/deletes each ds expects to see | ||||||
| 	expectations controller.ControllerExpectationsInterface | 	expectations controller.ControllerExpectationsInterface | ||||||
| 	// A store of daemon sets | 	// A store of daemon sets | ||||||
| 	dsStore *cache.StoreToDaemonSetLister | 	dsStore *listers.StoreToDaemonSetLister | ||||||
| 	// A store of pods | 	// A store of pods | ||||||
| 	podStore *cache.StoreToPodLister | 	podStore *listers.StoreToPodLister | ||||||
| 	// A store of nodes | 	// A store of nodes | ||||||
| 	nodeStore *cache.StoreToNodeLister | 	nodeStore *listers.StoreToNodeLister | ||||||
| 	// dsStoreSynced returns true if the daemonset store has been synced at least once. | 	// dsStoreSynced returns true if the daemonset store has been synced at least once. | ||||||
| 	// Added as a member to the struct to allow injection for testing. | 	// Added as a member to the struct to allow injection for testing. | ||||||
| 	dsStoreSynced cache.InformerSynced | 	dsStoreSynced cache.InformerSynced | ||||||
|   | |||||||
| @@ -26,6 +26,7 @@ go_library( | |||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/record:go_default_library", |         "//pkg/client/record:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/controller/deployment/util:go_default_library", |         "//pkg/controller/deployment/util:go_default_library", | ||||||
|   | |||||||
| @@ -40,6 +40,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
| 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/record" | 	"k8s.io/kubernetes/pkg/client/record" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	"k8s.io/kubernetes/pkg/controller/deployment/util" | 	"k8s.io/kubernetes/pkg/controller/deployment/util" | ||||||
| @@ -77,11 +78,11 @@ type DeploymentController struct { | |||||||
| 	enqueueDeployment func(deployment *extensions.Deployment) | 	enqueueDeployment func(deployment *extensions.Deployment) | ||||||
|  |  | ||||||
| 	// A store of deployments, populated by the dController | 	// A store of deployments, populated by the dController | ||||||
| 	dLister *cache.StoreToDeploymentLister | 	dLister *listers.StoreToDeploymentLister | ||||||
| 	// A store of ReplicaSets, populated by the rsController | 	// A store of ReplicaSets, populated by the rsController | ||||||
| 	rsLister *cache.StoreToReplicaSetLister | 	rsLister *listers.StoreToReplicaSetLister | ||||||
| 	// A store of pods, populated by the podController | 	// A store of pods, populated by the podController | ||||||
| 	podLister *cache.StoreToPodLister | 	podLister *listers.StoreToPodLister | ||||||
|  |  | ||||||
| 	// dListerSynced returns true if the Deployment store has been synced at least once. | 	// dListerSynced returns true if the Deployment store has been synced at least once. | ||||||
| 	// Added as a member to the struct to allow injection for testing. | 	// Added as a member to the struct to allow injection for testing. | ||||||
|   | |||||||
| @@ -22,10 +22,10 @@ go_library( | |||||||
|         "//pkg/api/v1:go_default_library", |         "//pkg/api/v1:go_default_library", | ||||||
|         "//pkg/apis/extensions:go_default_library", |         "//pkg/apis/extensions:go_default_library", | ||||||
|         "//pkg/apis/extensions/v1beta1:go_default_library", |         "//pkg/apis/extensions/v1beta1:go_default_library", | ||||||
|         "//pkg/client/cache:go_default_library", |  | ||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/extensions/v1beta1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/extensions/v1beta1:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/retry:go_default_library", |         "//pkg/client/retry:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/util/hash:go_default_library", |         "//pkg/util/hash:go_default_library", | ||||||
|   | |||||||
| @@ -37,8 +37,8 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	internalextensions "k8s.io/kubernetes/pkg/apis/extensions" | 	internalextensions "k8s.io/kubernetes/pkg/apis/extensions" | ||||||
| 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" |  | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	intstrutil "k8s.io/kubernetes/pkg/util/intstr" | 	intstrutil "k8s.io/kubernetes/pkg/util/intstr" | ||||||
| 	labelsutil "k8s.io/kubernetes/pkg/util/labels" | 	labelsutil "k8s.io/kubernetes/pkg/util/labels" | ||||||
| @@ -684,7 +684,7 @@ func WaitForPodsHashPopulated(c clientset.Interface, desiredGeneration int64, na | |||||||
|  |  | ||||||
| // LabelPodsWithHash labels all pods in the given podList with the new hash label. | // LabelPodsWithHash labels all pods in the given podList with the new hash label. | ||||||
| // The returned bool value can be used to tell if all pods are actually labeled. | // The returned bool value can be used to tell if all pods are actually labeled. | ||||||
| func LabelPodsWithHash(podList *v1.PodList, c clientset.Interface, podLister *cache.StoreToPodLister, namespace, name, hash string) error { | func LabelPodsWithHash(podList *v1.PodList, c clientset.Interface, podLister *listers.StoreToPodLister, namespace, name, hash string) error { | ||||||
| 	for _, pod := range podList.Items { | 	for _, pod := range podList.Items { | ||||||
| 		// Only label the pod that doesn't already have the new hash | 		// Only label the pod that doesn't already have the new hash | ||||||
| 		if pod.Labels[extensions.DefaultDeploymentUniqueLabelKey] != hash { | 		if pod.Labels[extensions.DefaultDeploymentUniqueLabelKey] != hash { | ||||||
|   | |||||||
| @@ -25,8 +25,8 @@ import ( | |||||||
| 	errorsutil "k8s.io/apimachinery/pkg/util/errors" | 	errorsutil "k8s.io/apimachinery/pkg/util/errors" | ||||||
| 	"k8s.io/kubernetes/pkg/api" | 	"k8s.io/kubernetes/pkg/api" | ||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" |  | ||||||
| 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/retry" | 	"k8s.io/kubernetes/pkg/client/retry" | ||||||
| 	hashutil "k8s.io/kubernetes/pkg/util/hash" | 	hashutil "k8s.io/kubernetes/pkg/util/hash" | ||||||
| ) | ) | ||||||
| @@ -56,7 +56,7 @@ type updatePodFunc func(pod *v1.Pod) error | |||||||
|  |  | ||||||
| // UpdatePodWithRetries updates a pod with given applyUpdate function. Note that pod not found error is ignored. | // UpdatePodWithRetries updates a pod with given applyUpdate function. Note that pod not found error is ignored. | ||||||
| // The returned bool value can be used to tell if the pod is actually updated. | // The returned bool value can be used to tell if the pod is actually updated. | ||||||
| func UpdatePodWithRetries(podClient v1core.PodInterface, podLister *cache.StoreToPodLister, namespace, name string, applyUpdate updatePodFunc) (*v1.Pod, error) { | func UpdatePodWithRetries(podClient v1core.PodInterface, podLister *listers.StoreToPodLister, namespace, name string, applyUpdate updatePodFunc) (*v1.Pod, error) { | ||||||
| 	var pod *v1.Pod | 	var pod *v1.Pod | ||||||
|  |  | ||||||
| 	retryErr := retry.RetryOnConflict(retry.DefaultBackoff, func() error { | 	retryErr := retry.RetryOnConflict(retry.DefaultBackoff, func() error { | ||||||
|   | |||||||
| @@ -25,8 +25,8 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/api" | 	"k8s.io/kubernetes/pkg/api" | ||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" |  | ||||||
| 	unversionedextensions "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/extensions/v1beta1" | 	unversionedextensions "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/extensions/v1beta1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/retry" | 	"k8s.io/kubernetes/pkg/client/retry" | ||||||
| 	labelsutil "k8s.io/kubernetes/pkg/util/labels" | 	labelsutil "k8s.io/kubernetes/pkg/util/labels" | ||||||
| ) | ) | ||||||
| @@ -37,7 +37,7 @@ type updateRSFunc func(rs *extensions.ReplicaSet) error | |||||||
|  |  | ||||||
| // UpdateRSWithRetries updates a RS with given applyUpdate function. Note that RS not found error is ignored. | // UpdateRSWithRetries updates a RS with given applyUpdate function. Note that RS not found error is ignored. | ||||||
| // The returned bool value can be used to tell if the RS is actually updated. | // The returned bool value can be used to tell if the RS is actually updated. | ||||||
| func UpdateRSWithRetries(rsClient unversionedextensions.ReplicaSetInterface, rsLister *cache.StoreToReplicaSetLister, namespace, name string, applyUpdate updateRSFunc) (*extensions.ReplicaSet, error) { | func UpdateRSWithRetries(rsClient unversionedextensions.ReplicaSetInterface, rsLister *listers.StoreToReplicaSetLister, namespace, name string, applyUpdate updateRSFunc) (*extensions.ReplicaSet, error) { | ||||||
| 	var rs *extensions.ReplicaSet | 	var rs *extensions.ReplicaSet | ||||||
|  |  | ||||||
| 	retryErr := retry.RetryOnConflict(retry.DefaultBackoff, func() error { | 	retryErr := retry.RetryOnConflict(retry.DefaultBackoff, func() error { | ||||||
|   | |||||||
| @@ -22,6 +22,7 @@ go_library( | |||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/policy/v1beta1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/policy/v1beta1:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/record:go_default_library", |         "//pkg/client/record:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/util/intstr:go_default_library", |         "//pkg/util/intstr:go_default_library", | ||||||
| @@ -48,6 +49,7 @@ go_test( | |||||||
|         "//pkg/apis/extensions/v1beta1:go_default_library", |         "//pkg/apis/extensions/v1beta1:go_default_library", | ||||||
|         "//pkg/apis/policy/v1beta1:go_default_library", |         "//pkg/apis/policy/v1beta1:go_default_library", | ||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/record:go_default_library", |         "//pkg/client/record:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/util/intstr:go_default_library", |         "//pkg/util/intstr:go_default_library", | ||||||
|   | |||||||
| @@ -36,6 +36,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
| 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | ||||||
| 	policyclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/policy/v1beta1" | 	policyclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/policy/v1beta1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/record" | 	"k8s.io/kubernetes/pkg/client/record" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	"k8s.io/kubernetes/pkg/util/intstr" | 	"k8s.io/kubernetes/pkg/util/intstr" | ||||||
| @@ -64,26 +65,26 @@ type DisruptionController struct { | |||||||
|  |  | ||||||
| 	pdbStore      cache.Store | 	pdbStore      cache.Store | ||||||
| 	pdbController cache.Controller | 	pdbController cache.Controller | ||||||
| 	pdbLister     cache.StoreToPodDisruptionBudgetLister | 	pdbLister     listers.StoreToPodDisruptionBudgetLister | ||||||
|  |  | ||||||
| 	podController cache.Controller | 	podController cache.Controller | ||||||
| 	podLister     cache.StoreToPodLister | 	podLister     listers.StoreToPodLister | ||||||
|  |  | ||||||
| 	rcIndexer    cache.Indexer | 	rcIndexer    cache.Indexer | ||||||
| 	rcController cache.Controller | 	rcController cache.Controller | ||||||
| 	rcLister     cache.StoreToReplicationControllerLister | 	rcLister     listers.StoreToReplicationControllerLister | ||||||
|  |  | ||||||
| 	rsStore      cache.Store | 	rsStore      cache.Store | ||||||
| 	rsController cache.Controller | 	rsController cache.Controller | ||||||
| 	rsLister     cache.StoreToReplicaSetLister | 	rsLister     listers.StoreToReplicaSetLister | ||||||
|  |  | ||||||
| 	dIndexer    cache.Indexer | 	dIndexer    cache.Indexer | ||||||
| 	dController cache.Controller | 	dController cache.Controller | ||||||
| 	dLister     cache.StoreToDeploymentLister | 	dLister     listers.StoreToDeploymentLister | ||||||
|  |  | ||||||
| 	ssStore      cache.Store | 	ssStore      cache.Store | ||||||
| 	ssController cache.Controller | 	ssController cache.Controller | ||||||
| 	ssLister     cache.StoreToStatefulSetLister | 	ssLister     listers.StoreToStatefulSetLister | ||||||
|  |  | ||||||
| 	// PodDisruptionBudget keys that need to be synced. | 	// PodDisruptionBudget keys that need to be synced. | ||||||
| 	queue        workqueue.RateLimitingInterface | 	queue        workqueue.RateLimitingInterface | ||||||
|   | |||||||
| @@ -30,6 +30,7 @@ import ( | |||||||
| 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | ||||||
| 	policy "k8s.io/kubernetes/pkg/apis/policy/v1beta1" | 	policy "k8s.io/kubernetes/pkg/apis/policy/v1beta1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/record" | 	"k8s.io/kubernetes/pkg/client/record" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	"k8s.io/kubernetes/pkg/util/intstr" | 	"k8s.io/kubernetes/pkg/util/intstr" | ||||||
| @@ -87,12 +88,12 @@ func newFakeDisruptionController() (*DisruptionController, *pdbStates) { | |||||||
| 	ps := &pdbStates{} | 	ps := &pdbStates{} | ||||||
|  |  | ||||||
| 	dc := &DisruptionController{ | 	dc := &DisruptionController{ | ||||||
| 		pdbLister:   cache.StoreToPodDisruptionBudgetLister{Store: cache.NewStore(controller.KeyFunc)}, | 		pdbLister:   listers.StoreToPodDisruptionBudgetLister{Store: cache.NewStore(controller.KeyFunc)}, | ||||||
| 		podLister:   cache.StoreToPodLister{Indexer: cache.NewIndexer(controller.KeyFunc, cache.Indexers{})}, | 		podLister:   listers.StoreToPodLister{Indexer: cache.NewIndexer(controller.KeyFunc, cache.Indexers{})}, | ||||||
| 		rcLister:    cache.StoreToReplicationControllerLister{Indexer: cache.NewIndexer(controller.KeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})}, | 		rcLister:    listers.StoreToReplicationControllerLister{Indexer: cache.NewIndexer(controller.KeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})}, | ||||||
| 		rsLister:    cache.StoreToReplicaSetLister{Indexer: cache.NewIndexer(controller.KeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})}, | 		rsLister:    listers.StoreToReplicaSetLister{Indexer: cache.NewIndexer(controller.KeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})}, | ||||||
| 		dLister:     cache.StoreToDeploymentLister{Indexer: cache.NewIndexer(controller.KeyFunc, cache.Indexers{})}, | 		dLister:     listers.StoreToDeploymentLister{Indexer: cache.NewIndexer(controller.KeyFunc, cache.Indexers{})}, | ||||||
| 		ssLister:    cache.StoreToStatefulSetLister{Store: cache.NewStore(controller.KeyFunc)}, | 		ssLister:    listers.StoreToStatefulSetLister{Store: cache.NewStore(controller.KeyFunc)}, | ||||||
| 		getUpdater:  func() updater { return ps.Set }, | 		getUpdater:  func() updater { return ps.Set }, | ||||||
| 		broadcaster: record.NewBroadcaster(), | 		broadcaster: record.NewBroadcaster(), | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -21,6 +21,7 @@ go_library( | |||||||
|         "//pkg/api/v1/pod:go_default_library", |         "//pkg/api/v1/pod:go_default_library", | ||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/controller/informers:go_default_library", |         "//pkg/controller/informers:go_default_library", | ||||||
|         "//pkg/util/metrics:go_default_library", |         "//pkg/util/metrics:go_default_library", | ||||||
|   | |||||||
| @@ -36,6 +36,7 @@ import ( | |||||||
| 	utilpod "k8s.io/kubernetes/pkg/api/v1/pod" | 	utilpod "k8s.io/kubernetes/pkg/api/v1/pod" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	"k8s.io/kubernetes/pkg/controller/informers" | 	"k8s.io/kubernetes/pkg/controller/informers" | ||||||
| 	"k8s.io/kubernetes/pkg/util/metrics" | 	"k8s.io/kubernetes/pkg/util/metrics" | ||||||
| @@ -128,8 +129,8 @@ func NewEndpointControllerFromClient(client *clientset.Clientset, resyncPeriod c | |||||||
| type EndpointController struct { | type EndpointController struct { | ||||||
| 	client clientset.Interface | 	client clientset.Interface | ||||||
|  |  | ||||||
| 	serviceStore cache.StoreToServiceLister | 	serviceStore listers.StoreToServiceLister | ||||||
| 	podStore     cache.StoreToPodLister | 	podStore     listers.StoreToPodLister | ||||||
|  |  | ||||||
| 	// internalPodInformer is used to hold a personal informer.  If we're using | 	// internalPodInformer is used to hold a personal informer.  If we're using | ||||||
| 	// a normal shared informer, then the informer will be started for us.  If | 	// a normal shared informer, then the informer will be started for us.  If | ||||||
|   | |||||||
| @@ -31,6 +31,7 @@ go_library( | |||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/internalclientset:go_default_library", |         "//pkg/client/clientset_generated/internalclientset:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/listers/batch/v1:go_default_library", |         "//pkg/client/listers/batch/v1:go_default_library", | ||||||
|         "//pkg/client/listers/core/internalversion:go_default_library", |         "//pkg/client/listers/core/internalversion:go_default_library", | ||||||
|         "//vendor:github.com/golang/glog", |         "//vendor:github.com/golang/glog", | ||||||
|   | |||||||
| @@ -27,6 +27,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	coreinternallisters "k8s.io/kubernetes/pkg/client/listers/core/internalversion" | 	coreinternallisters "k8s.io/kubernetes/pkg/client/listers/core/internalversion" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -34,7 +35,7 @@ import ( | |||||||
| // Interface provides constructor for informer and lister for pods | // Interface provides constructor for informer and lister for pods | ||||||
| type PodInformer interface { | type PodInformer interface { | ||||||
| 	Informer() cache.SharedIndexInformer | 	Informer() cache.SharedIndexInformer | ||||||
| 	Lister() *cache.StoreToPodLister | 	Lister() *listers.StoreToPodLister | ||||||
| } | } | ||||||
|  |  | ||||||
| type podInformer struct { | type podInformer struct { | ||||||
| @@ -59,9 +60,9 @@ func (f *podInformer) Informer() cache.SharedIndexInformer { | |||||||
| } | } | ||||||
|  |  | ||||||
| // Lister returns lister for podInformer | // Lister returns lister for podInformer | ||||||
| func (f *podInformer) Lister() *cache.StoreToPodLister { | func (f *podInformer) Lister() *listers.StoreToPodLister { | ||||||
| 	informer := f.Informer() | 	informer := f.Informer() | ||||||
| 	return &cache.StoreToPodLister{Indexer: informer.GetIndexer()} | 	return &listers.StoreToPodLister{Indexer: informer.GetIndexer()} | ||||||
| } | } | ||||||
|  |  | ||||||
| //***************************************************************************** | //***************************************************************************** | ||||||
| @@ -70,7 +71,7 @@ func (f *podInformer) Lister() *cache.StoreToPodLister { | |||||||
| // Interface provides constructor for informer and lister for namsespaces | // Interface provides constructor for informer and lister for namsespaces | ||||||
| type NamespaceInformer interface { | type NamespaceInformer interface { | ||||||
| 	Informer() cache.SharedIndexInformer | 	Informer() cache.SharedIndexInformer | ||||||
| 	Lister() *cache.IndexerToNamespaceLister | 	Lister() *listers.IndexerToNamespaceLister | ||||||
| } | } | ||||||
|  |  | ||||||
| type namespaceInformer struct { | type namespaceInformer struct { | ||||||
| @@ -95,9 +96,9 @@ func (f *namespaceInformer) Informer() cache.SharedIndexInformer { | |||||||
| } | } | ||||||
|  |  | ||||||
| // Lister returns lister for namespaceInformer | // Lister returns lister for namespaceInformer | ||||||
| func (f *namespaceInformer) Lister() *cache.IndexerToNamespaceLister { | func (f *namespaceInformer) Lister() *listers.IndexerToNamespaceLister { | ||||||
| 	informer := f.Informer() | 	informer := f.Informer() | ||||||
| 	return &cache.IndexerToNamespaceLister{Indexer: informer.GetIndexer()} | 	return &listers.IndexerToNamespaceLister{Indexer: informer.GetIndexer()} | ||||||
| } | } | ||||||
|  |  | ||||||
| //***************************************************************************** | //***************************************************************************** | ||||||
| @@ -142,7 +143,7 @@ func (f *internalNamespaceInformer) Lister() coreinternallisters.NamespaceLister | |||||||
| // Interface provides constructor for informer and lister for nodes | // Interface provides constructor for informer and lister for nodes | ||||||
| type NodeInformer interface { | type NodeInformer interface { | ||||||
| 	Informer() cache.SharedIndexInformer | 	Informer() cache.SharedIndexInformer | ||||||
| 	Lister() *cache.StoreToNodeLister | 	Lister() *listers.StoreToNodeLister | ||||||
| } | } | ||||||
|  |  | ||||||
| type nodeInformer struct { | type nodeInformer struct { | ||||||
| @@ -167,9 +168,9 @@ func (f *nodeInformer) Informer() cache.SharedIndexInformer { | |||||||
| } | } | ||||||
|  |  | ||||||
| // Lister returns lister for nodeInformer | // Lister returns lister for nodeInformer | ||||||
| func (f *nodeInformer) Lister() *cache.StoreToNodeLister { | func (f *nodeInformer) Lister() *listers.StoreToNodeLister { | ||||||
| 	informer := f.Informer() | 	informer := f.Informer() | ||||||
| 	return &cache.StoreToNodeLister{Store: informer.GetStore()} | 	return &listers.StoreToNodeLister{Store: informer.GetStore()} | ||||||
| } | } | ||||||
|  |  | ||||||
| //***************************************************************************** | //***************************************************************************** | ||||||
| @@ -178,7 +179,7 @@ func (f *nodeInformer) Lister() *cache.StoreToNodeLister { | |||||||
| // Interface provides constructor for informer and lister for persistent volume claims | // Interface provides constructor for informer and lister for persistent volume claims | ||||||
| type PVCInformer interface { | type PVCInformer interface { | ||||||
| 	Informer() cache.SharedIndexInformer | 	Informer() cache.SharedIndexInformer | ||||||
| 	Lister() *cache.StoreToPersistentVolumeClaimLister | 	Lister() *listers.StoreToPersistentVolumeClaimLister | ||||||
| } | } | ||||||
|  |  | ||||||
| type pvcInformer struct { | type pvcInformer struct { | ||||||
| @@ -203,9 +204,9 @@ func (f *pvcInformer) Informer() cache.SharedIndexInformer { | |||||||
| } | } | ||||||
|  |  | ||||||
| // Lister returns lister for pvcInformer | // Lister returns lister for pvcInformer | ||||||
| func (f *pvcInformer) Lister() *cache.StoreToPersistentVolumeClaimLister { | func (f *pvcInformer) Lister() *listers.StoreToPersistentVolumeClaimLister { | ||||||
| 	informer := f.Informer() | 	informer := f.Informer() | ||||||
| 	return &cache.StoreToPersistentVolumeClaimLister{Indexer: informer.GetIndexer()} | 	return &listers.StoreToPersistentVolumeClaimLister{Indexer: informer.GetIndexer()} | ||||||
| } | } | ||||||
|  |  | ||||||
| //***************************************************************************** | //***************************************************************************** | ||||||
| @@ -214,7 +215,7 @@ func (f *pvcInformer) Lister() *cache.StoreToPersistentVolumeClaimLister { | |||||||
| // Interface provides constructor for informer and lister for persistent volumes | // Interface provides constructor for informer and lister for persistent volumes | ||||||
| type PVInformer interface { | type PVInformer interface { | ||||||
| 	Informer() cache.SharedIndexInformer | 	Informer() cache.SharedIndexInformer | ||||||
| 	Lister() *cache.StoreToPVFetcher | 	Lister() *listers.StoreToPVFetcher | ||||||
| } | } | ||||||
|  |  | ||||||
| type pvInformer struct { | type pvInformer struct { | ||||||
| @@ -239,9 +240,9 @@ func (f *pvInformer) Informer() cache.SharedIndexInformer { | |||||||
| } | } | ||||||
|  |  | ||||||
| // Lister returns lister for pvInformer | // Lister returns lister for pvInformer | ||||||
| func (f *pvInformer) Lister() *cache.StoreToPVFetcher { | func (f *pvInformer) Lister() *listers.StoreToPVFetcher { | ||||||
| 	informer := f.Informer() | 	informer := f.Informer() | ||||||
| 	return &cache.StoreToPVFetcher{Store: informer.GetStore()} | 	return &listers.StoreToPVFetcher{Store: informer.GetStore()} | ||||||
| } | } | ||||||
|  |  | ||||||
| //***************************************************************************** | //***************************************************************************** | ||||||
| @@ -250,7 +251,7 @@ func (f *pvInformer) Lister() *cache.StoreToPVFetcher { | |||||||
| // Interface provides constructor for informer and lister for limit ranges. | // Interface provides constructor for informer and lister for limit ranges. | ||||||
| type LimitRangeInformer interface { | type LimitRangeInformer interface { | ||||||
| 	Informer() cache.SharedIndexInformer | 	Informer() cache.SharedIndexInformer | ||||||
| 	Lister() *cache.StoreToLimitRangeLister | 	Lister() *listers.StoreToLimitRangeLister | ||||||
| } | } | ||||||
|  |  | ||||||
| type limitRangeInformer struct { | type limitRangeInformer struct { | ||||||
| @@ -275,9 +276,9 @@ func (f *limitRangeInformer) Informer() cache.SharedIndexInformer { | |||||||
| } | } | ||||||
|  |  | ||||||
| // Lister returns lister for limitRangeInformer | // Lister returns lister for limitRangeInformer | ||||||
| func (f *limitRangeInformer) Lister() *cache.StoreToLimitRangeLister { | func (f *limitRangeInformer) Lister() *listers.StoreToLimitRangeLister { | ||||||
| 	informer := f.Informer() | 	informer := f.Informer() | ||||||
| 	return &cache.StoreToLimitRangeLister{Indexer: informer.GetIndexer()} | 	return &listers.StoreToLimitRangeLister{Indexer: informer.GetIndexer()} | ||||||
| } | } | ||||||
|  |  | ||||||
| //***************************************************************************** | //***************************************************************************** | ||||||
| @@ -322,7 +323,7 @@ func (f *internalLimitRangeInformer) Lister() coreinternallisters.LimitRangeList | |||||||
| // Interface provides constructor for informer and lister for replication controllers. | // Interface provides constructor for informer and lister for replication controllers. | ||||||
| type ReplicationControllerInformer interface { | type ReplicationControllerInformer interface { | ||||||
| 	Informer() cache.SharedIndexInformer | 	Informer() cache.SharedIndexInformer | ||||||
| 	Lister() *cache.StoreToReplicationControllerLister | 	Lister() *listers.StoreToReplicationControllerLister | ||||||
| } | } | ||||||
|  |  | ||||||
| type replicationControllerInformer struct { | type replicationControllerInformer struct { | ||||||
| @@ -347,9 +348,9 @@ func (f *replicationControllerInformer) Informer() cache.SharedIndexInformer { | |||||||
| } | } | ||||||
|  |  | ||||||
| // Lister returns lister for replicationControllerInformer | // Lister returns lister for replicationControllerInformer | ||||||
| func (f *replicationControllerInformer) Lister() *cache.StoreToReplicationControllerLister { | func (f *replicationControllerInformer) Lister() *listers.StoreToReplicationControllerLister { | ||||||
| 	informer := f.Informer() | 	informer := f.Informer() | ||||||
| 	return &cache.StoreToReplicationControllerLister{Indexer: informer.GetIndexer()} | 	return &listers.StoreToReplicationControllerLister{Indexer: informer.GetIndexer()} | ||||||
| } | } | ||||||
|  |  | ||||||
| //***************************************************************************** | //***************************************************************************** | ||||||
| @@ -533,7 +534,7 @@ func NewReplicationControllerInformer(client clientset.Interface, resyncPeriod t | |||||||
| // Interface provides constructor for informer and lister for ServiceAccounts | // Interface provides constructor for informer and lister for ServiceAccounts | ||||||
| type ServiceAccountInformer interface { | type ServiceAccountInformer interface { | ||||||
| 	Informer() cache.SharedIndexInformer | 	Informer() cache.SharedIndexInformer | ||||||
| 	Lister() *cache.StoreToServiceAccountLister | 	Lister() *listers.StoreToServiceAccountLister | ||||||
| } | } | ||||||
|  |  | ||||||
| type serviceAccountInformer struct { | type serviceAccountInformer struct { | ||||||
| @@ -558,9 +559,9 @@ func (f *serviceAccountInformer) Informer() cache.SharedIndexInformer { | |||||||
| } | } | ||||||
|  |  | ||||||
| // Lister returns lister for ServiceAccountInformer | // Lister returns lister for ServiceAccountInformer | ||||||
| func (f *serviceAccountInformer) Lister() *cache.StoreToServiceAccountLister { | func (f *serviceAccountInformer) Lister() *listers.StoreToServiceAccountLister { | ||||||
| 	informer := f.Informer() | 	informer := f.Informer() | ||||||
| 	return &cache.StoreToServiceAccountLister{Indexer: informer.GetIndexer()} | 	return &listers.StoreToServiceAccountLister{Indexer: informer.GetIndexer()} | ||||||
| } | } | ||||||
|  |  | ||||||
| // NewServiceAccountInformer returns a SharedIndexInformer that lists and watches all ServiceAccounts | // NewServiceAccountInformer returns a SharedIndexInformer that lists and watches all ServiceAccounts | ||||||
|   | |||||||
| @@ -24,13 +24,14 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // DaemonSetInformer is type of SharedIndexInformer which watches and lists all pods. | // DaemonSetInformer is type of SharedIndexInformer which watches and lists all pods. | ||||||
| // Interface provides constructor for informer and lister for pods | // Interface provides constructor for informer and lister for pods | ||||||
| type DaemonSetInformer interface { | type DaemonSetInformer interface { | ||||||
| 	Informer() cache.SharedIndexInformer | 	Informer() cache.SharedIndexInformer | ||||||
| 	Lister() *cache.StoreToDaemonSetLister | 	Lister() *listers.StoreToDaemonSetLister | ||||||
| } | } | ||||||
|  |  | ||||||
| type daemonSetInformer struct { | type daemonSetInformer struct { | ||||||
| @@ -64,15 +65,15 @@ func (f *daemonSetInformer) Informer() cache.SharedIndexInformer { | |||||||
| 	return informer | 	return informer | ||||||
| } | } | ||||||
|  |  | ||||||
| func (f *daemonSetInformer) Lister() *cache.StoreToDaemonSetLister { | func (f *daemonSetInformer) Lister() *listers.StoreToDaemonSetLister { | ||||||
| 	informer := f.Informer() | 	informer := f.Informer() | ||||||
| 	return &cache.StoreToDaemonSetLister{Store: informer.GetIndexer()} | 	return &listers.StoreToDaemonSetLister{Store: informer.GetIndexer()} | ||||||
| } | } | ||||||
|  |  | ||||||
| // DeploymentInformer is a type of SharedIndexInformer which watches and lists all deployments. | // DeploymentInformer is a type of SharedIndexInformer which watches and lists all deployments. | ||||||
| type DeploymentInformer interface { | type DeploymentInformer interface { | ||||||
| 	Informer() cache.SharedIndexInformer | 	Informer() cache.SharedIndexInformer | ||||||
| 	Lister() *cache.StoreToDeploymentLister | 	Lister() *listers.StoreToDeploymentLister | ||||||
| } | } | ||||||
|  |  | ||||||
| type deploymentInformer struct { | type deploymentInformer struct { | ||||||
| @@ -106,15 +107,15 @@ func (f *deploymentInformer) Informer() cache.SharedIndexInformer { | |||||||
| 	return informer | 	return informer | ||||||
| } | } | ||||||
|  |  | ||||||
| func (f *deploymentInformer) Lister() *cache.StoreToDeploymentLister { | func (f *deploymentInformer) Lister() *listers.StoreToDeploymentLister { | ||||||
| 	informer := f.Informer() | 	informer := f.Informer() | ||||||
| 	return &cache.StoreToDeploymentLister{Indexer: informer.GetIndexer()} | 	return &listers.StoreToDeploymentLister{Indexer: informer.GetIndexer()} | ||||||
| } | } | ||||||
|  |  | ||||||
| // ReplicaSetInformer is a type of SharedIndexInformer which watches and lists all replicasets. | // ReplicaSetInformer is a type of SharedIndexInformer which watches and lists all replicasets. | ||||||
| type ReplicaSetInformer interface { | type ReplicaSetInformer interface { | ||||||
| 	Informer() cache.SharedIndexInformer | 	Informer() cache.SharedIndexInformer | ||||||
| 	Lister() *cache.StoreToReplicaSetLister | 	Lister() *listers.StoreToReplicaSetLister | ||||||
| } | } | ||||||
|  |  | ||||||
| type replicaSetInformer struct { | type replicaSetInformer struct { | ||||||
| @@ -148,7 +149,7 @@ func (f *replicaSetInformer) Informer() cache.SharedIndexInformer { | |||||||
| 	return informer | 	return informer | ||||||
| } | } | ||||||
|  |  | ||||||
| func (f *replicaSetInformer) Lister() *cache.StoreToReplicaSetLister { | func (f *replicaSetInformer) Lister() *listers.StoreToReplicaSetLister { | ||||||
| 	informer := f.Informer() | 	informer := f.Informer() | ||||||
| 	return &cache.StoreToReplicaSetLister{Indexer: informer.GetIndexer()} | 	return &listers.StoreToReplicaSetLister{Indexer: informer.GetIndexer()} | ||||||
| } | } | ||||||
|   | |||||||
| @@ -25,11 +25,12 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	"k8s.io/kubernetes/pkg/apis/rbac" | 	"k8s.io/kubernetes/pkg/apis/rbac" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| type ClusterRoleInformer interface { | type ClusterRoleInformer interface { | ||||||
| 	Informer() cache.SharedIndexInformer | 	Informer() cache.SharedIndexInformer | ||||||
| 	Lister() cache.ClusterRoleLister | 	Lister() listers.ClusterRoleLister | ||||||
| } | } | ||||||
|  |  | ||||||
| type clusterRoleInformer struct { | type clusterRoleInformer struct { | ||||||
| @@ -63,13 +64,13 @@ func (f *clusterRoleInformer) Informer() cache.SharedIndexInformer { | |||||||
| 	return informer | 	return informer | ||||||
| } | } | ||||||
|  |  | ||||||
| func (f *clusterRoleInformer) Lister() cache.ClusterRoleLister { | func (f *clusterRoleInformer) Lister() listers.ClusterRoleLister { | ||||||
| 	return cache.NewClusterRoleLister(f.Informer().GetIndexer()) | 	return listers.NewClusterRoleLister(f.Informer().GetIndexer()) | ||||||
| } | } | ||||||
|  |  | ||||||
| type ClusterRoleBindingInformer interface { | type ClusterRoleBindingInformer interface { | ||||||
| 	Informer() cache.SharedIndexInformer | 	Informer() cache.SharedIndexInformer | ||||||
| 	Lister() cache.ClusterRoleBindingLister | 	Lister() listers.ClusterRoleBindingLister | ||||||
| } | } | ||||||
|  |  | ||||||
| type clusterRoleBindingInformer struct { | type clusterRoleBindingInformer struct { | ||||||
| @@ -103,13 +104,13 @@ func (f *clusterRoleBindingInformer) Informer() cache.SharedIndexInformer { | |||||||
| 	return informer | 	return informer | ||||||
| } | } | ||||||
|  |  | ||||||
| func (f *clusterRoleBindingInformer) Lister() cache.ClusterRoleBindingLister { | func (f *clusterRoleBindingInformer) Lister() listers.ClusterRoleBindingLister { | ||||||
| 	return cache.NewClusterRoleBindingLister(f.Informer().GetIndexer()) | 	return listers.NewClusterRoleBindingLister(f.Informer().GetIndexer()) | ||||||
| } | } | ||||||
|  |  | ||||||
| type RoleInformer interface { | type RoleInformer interface { | ||||||
| 	Informer() cache.SharedIndexInformer | 	Informer() cache.SharedIndexInformer | ||||||
| 	Lister() cache.RoleLister | 	Lister() listers.RoleLister | ||||||
| } | } | ||||||
|  |  | ||||||
| type roleInformer struct { | type roleInformer struct { | ||||||
| @@ -143,13 +144,13 @@ func (f *roleInformer) Informer() cache.SharedIndexInformer { | |||||||
| 	return informer | 	return informer | ||||||
| } | } | ||||||
|  |  | ||||||
| func (f *roleInformer) Lister() cache.RoleLister { | func (f *roleInformer) Lister() listers.RoleLister { | ||||||
| 	return cache.NewRoleLister(f.Informer().GetIndexer()) | 	return listers.NewRoleLister(f.Informer().GetIndexer()) | ||||||
| } | } | ||||||
|  |  | ||||||
| type RoleBindingInformer interface { | type RoleBindingInformer interface { | ||||||
| 	Informer() cache.SharedIndexInformer | 	Informer() cache.SharedIndexInformer | ||||||
| 	Lister() cache.RoleBindingLister | 	Lister() listers.RoleBindingLister | ||||||
| } | } | ||||||
|  |  | ||||||
| type roleBindingInformer struct { | type roleBindingInformer struct { | ||||||
| @@ -183,8 +184,8 @@ func (f *roleBindingInformer) Informer() cache.SharedIndexInformer { | |||||||
| 	return informer | 	return informer | ||||||
| } | } | ||||||
|  |  | ||||||
| func (f *roleBindingInformer) Lister() cache.RoleBindingLister { | func (f *roleBindingInformer) Lister() listers.RoleBindingLister { | ||||||
| 	return cache.NewRoleBindingLister(f.Informer().GetIndexer()) | 	return listers.NewRoleBindingLister(f.Informer().GetIndexer()) | ||||||
| } | } | ||||||
|  |  | ||||||
| func convertListOptionsOrDie(in v1.ListOptions) api.ListOptions { | func convertListOptionsOrDie(in v1.ListOptions) api.ListOptions { | ||||||
|   | |||||||
| @@ -24,13 +24,14 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	storage "k8s.io/kubernetes/pkg/apis/storage/v1beta1" | 	storage "k8s.io/kubernetes/pkg/apis/storage/v1beta1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // StorageClassInformer is type of SharedIndexInformer which watches and lists all storage classes. | // StorageClassInformer is type of SharedIndexInformer which watches and lists all storage classes. | ||||||
| // Interface provides constructor for informer and lister for storage classes | // Interface provides constructor for informer and lister for storage classes | ||||||
| type StorageClassInformer interface { | type StorageClassInformer interface { | ||||||
| 	Informer() cache.SharedIndexInformer | 	Informer() cache.SharedIndexInformer | ||||||
| 	Lister() cache.StorageClassLister | 	Lister() listers.StorageClassLister | ||||||
| } | } | ||||||
|  |  | ||||||
| type storageClassInformer struct { | type storageClassInformer struct { | ||||||
| @@ -64,7 +65,7 @@ func (f *storageClassInformer) Informer() cache.SharedIndexInformer { | |||||||
| 	return informer | 	return informer | ||||||
| } | } | ||||||
|  |  | ||||||
| func (f *storageClassInformer) Lister() cache.StorageClassLister { | func (f *storageClassInformer) Lister() listers.StorageClassLister { | ||||||
| 	informer := f.Informer() | 	informer := f.Informer() | ||||||
| 	return cache.NewStorageClassLister(informer.GetIndexer()) | 	return listers.NewStorageClassLister(informer.GetIndexer()) | ||||||
| } | } | ||||||
|   | |||||||
| @@ -22,6 +22,7 @@ go_library( | |||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/listers/batch/v1:go_default_library", |         "//pkg/client/listers/batch/v1:go_default_library", | ||||||
|         "//pkg/client/record:go_default_library", |         "//pkg/client/record:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|   | |||||||
| @@ -32,6 +32,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
| 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	batchv1listers "k8s.io/kubernetes/pkg/client/listers/batch/v1" | 	batchv1listers "k8s.io/kubernetes/pkg/client/listers/batch/v1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/record" | 	"k8s.io/kubernetes/pkg/client/record" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| @@ -63,7 +64,7 @@ type JobController struct { | |||||||
| 	jobLister batchv1listers.JobLister | 	jobLister batchv1listers.JobLister | ||||||
|  |  | ||||||
| 	// A store of pods, populated by the podController | 	// A store of pods, populated by the podController | ||||||
| 	podStore cache.StoreToPodLister | 	podStore listers.StoreToPodLister | ||||||
|  |  | ||||||
| 	// Jobs that need to be updated | 	// Jobs that need to be updated | ||||||
| 	queue workqueue.RateLimitingInterface | 	queue workqueue.RateLimitingInterface | ||||||
|   | |||||||
| @@ -26,6 +26,7 @@ go_library( | |||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/record:go_default_library", |         "//pkg/client/record:go_default_library", | ||||||
|         "//pkg/cloudprovider:go_default_library", |         "//pkg/cloudprovider:go_default_library", | ||||||
|         "//pkg/controller/informers:go_default_library", |         "//pkg/controller/informers:go_default_library", | ||||||
|   | |||||||
| @@ -29,6 +29,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/record" | 	"k8s.io/kubernetes/pkg/client/record" | ||||||
| 	"k8s.io/kubernetes/pkg/cloudprovider" | 	"k8s.io/kubernetes/pkg/cloudprovider" | ||||||
| 	"k8s.io/kubernetes/pkg/kubelet/util/format" | 	"k8s.io/kubernetes/pkg/kubelet/util/format" | ||||||
| @@ -45,7 +46,7 @@ const ( | |||||||
|  |  | ||||||
| // deletePods will delete all pods from master running on given node, and return true | // deletePods will delete all pods from master running on given node, and return true | ||||||
| // if any pods were deleted, or were found pending deletion. | // if any pods were deleted, or were found pending deletion. | ||||||
| func deletePods(kubeClient clientset.Interface, recorder record.EventRecorder, nodeName, nodeUID string, daemonStore cache.StoreToDaemonSetLister) (bool, error) { | func deletePods(kubeClient clientset.Interface, recorder record.EventRecorder, nodeName, nodeUID string, daemonStore listers.StoreToDaemonSetLister) (bool, error) { | ||||||
| 	remaining := false | 	remaining := false | ||||||
| 	selector := fields.OneTermEqualSelector(api.PodHostField, nodeName).String() | 	selector := fields.OneTermEqualSelector(api.PodHostField, nodeName).String() | ||||||
| 	options := v1.ListOptions{FieldSelector: selector} | 	options := v1.ListOptions{FieldSelector: selector} | ||||||
|   | |||||||
| @@ -36,6 +36,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
| 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/record" | 	"k8s.io/kubernetes/pkg/client/record" | ||||||
| 	"k8s.io/kubernetes/pkg/cloudprovider" | 	"k8s.io/kubernetes/pkg/cloudprovider" | ||||||
| 	"k8s.io/kubernetes/pkg/controller/informers" | 	"k8s.io/kubernetes/pkg/controller/informers" | ||||||
| @@ -135,9 +136,9 @@ type NodeController struct { | |||||||
| 	nodeInformer       informers.NodeInformer | 	nodeInformer       informers.NodeInformer | ||||||
| 	daemonSetInformer  informers.DaemonSetInformer | 	daemonSetInformer  informers.DaemonSetInformer | ||||||
|  |  | ||||||
| 	podStore       cache.StoreToPodLister | 	podStore       listers.StoreToPodLister | ||||||
| 	nodeStore      cache.StoreToNodeLister | 	nodeStore      listers.StoreToNodeLister | ||||||
| 	daemonSetStore cache.StoreToDaemonSetLister | 	daemonSetStore listers.StoreToDaemonSetLister | ||||||
| 	// allocate/recycle CIDRs for node if allocateNodeCIDRs == true | 	// allocate/recycle CIDRs for node if allocateNodeCIDRs == true | ||||||
| 	cidrAllocator CIDRAllocator | 	cidrAllocator CIDRAllocator | ||||||
|  |  | ||||||
|   | |||||||
| @@ -19,6 +19,7 @@ go_library( | |||||||
|         "//pkg/api/v1:go_default_library", |         "//pkg/api/v1:go_default_library", | ||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/controller/informers:go_default_library", |         "//pkg/controller/informers:go_default_library", | ||||||
|         "//pkg/util/metrics:go_default_library", |         "//pkg/util/metrics:go_default_library", | ||||||
|   | |||||||
| @@ -28,6 +28,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	"k8s.io/kubernetes/pkg/controller/informers" | 	"k8s.io/kubernetes/pkg/controller/informers" | ||||||
| 	"k8s.io/kubernetes/pkg/util/metrics" | 	"k8s.io/kubernetes/pkg/util/metrics" | ||||||
| @@ -49,7 +50,7 @@ type PodGCController struct { | |||||||
| 	// will be null | 	// will be null | ||||||
| 	internalPodInformer cache.SharedIndexInformer | 	internalPodInformer cache.SharedIndexInformer | ||||||
|  |  | ||||||
| 	podStore      cache.StoreToPodLister | 	podStore      listers.StoreToPodLister | ||||||
| 	podController cache.Controller | 	podController cache.Controller | ||||||
|  |  | ||||||
| 	deletePod              func(namespace, name string) error | 	deletePod              func(namespace, name string) error | ||||||
|   | |||||||
| @@ -24,6 +24,7 @@ go_library( | |||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/extensions/v1beta1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/extensions/v1beta1:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/record:go_default_library", |         "//pkg/client/record:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/controller/informers:go_default_library", |         "//pkg/controller/informers:go_default_library", | ||||||
| @@ -53,6 +54,7 @@ go_test( | |||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/fake:go_default_library", |         "//pkg/client/clientset_generated/clientset/fake:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/testing/core:go_default_library", |         "//pkg/client/testing/core:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/controller/informers:go_default_library", |         "//pkg/controller/informers:go_default_library", | ||||||
|   | |||||||
| @@ -39,6 +39,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
| 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/record" | 	"k8s.io/kubernetes/pkg/client/record" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	"k8s.io/kubernetes/pkg/controller/informers" | 	"k8s.io/kubernetes/pkg/controller/informers" | ||||||
| @@ -75,9 +76,9 @@ type ReplicaSetController struct { | |||||||
| 	expectations *controller.UIDTrackingControllerExpectations | 	expectations *controller.UIDTrackingControllerExpectations | ||||||
|  |  | ||||||
| 	// A store of ReplicaSets, populated by the rsController | 	// A store of ReplicaSets, populated by the rsController | ||||||
| 	rsLister *cache.StoreToReplicaSetLister | 	rsLister *listers.StoreToReplicaSetLister | ||||||
| 	// A store of pods, populated by the podController | 	// A store of pods, populated by the podController | ||||||
| 	podLister *cache.StoreToPodLister | 	podLister *listers.StoreToPodLister | ||||||
| 	// podListerSynced returns true if the pod store has been synced at least once. | 	// podListerSynced returns true if the pod store has been synced at least once. | ||||||
| 	// Added as a member to the struct to allow injection for testing. | 	// Added as a member to the struct to allow injection for testing. | ||||||
| 	podListerSynced cache.InformerSynced | 	podListerSynced cache.InformerSynced | ||||||
|   | |||||||
| @@ -43,6 +43,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset/fake" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset/fake" | ||||||
| 	fakeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/fake" | 	fakeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/fake" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/testing/core" | 	"k8s.io/kubernetes/pkg/client/testing/core" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	"k8s.io/kubernetes/pkg/controller/informers" | 	"k8s.io/kubernetes/pkg/controller/informers" | ||||||
| @@ -53,8 +54,8 @@ import ( | |||||||
| func testNewReplicaSetControllerFromClient(client clientset.Interface, stopCh chan struct{}, burstReplicas int, lookupCacheSize int) *ReplicaSetController { | func testNewReplicaSetControllerFromClient(client clientset.Interface, stopCh chan struct{}, burstReplicas int, lookupCacheSize int) *ReplicaSetController { | ||||||
| 	informers := informers.NewSharedInformerFactory(client, nil, controller.NoResyncPeriodFunc()) | 	informers := informers.NewSharedInformerFactory(client, nil, controller.NoResyncPeriodFunc()) | ||||||
| 	ret := NewReplicaSetController(informers.ReplicaSets(), informers.Pods(), client, burstReplicas, lookupCacheSize, false) | 	ret := NewReplicaSetController(informers.ReplicaSets(), informers.Pods(), client, burstReplicas, lookupCacheSize, false) | ||||||
| 	ret.podLister = &cache.StoreToPodLister{Indexer: cache.NewIndexer(cache.DeletionHandlingMetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})} | 	ret.podLister = &listers.StoreToPodLister{Indexer: cache.NewIndexer(cache.DeletionHandlingMetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})} | ||||||
| 	ret.rsLister = &cache.StoreToReplicaSetLister{Indexer: cache.NewIndexer(cache.DeletionHandlingMetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})} | 	ret.rsLister = &listers.StoreToReplicaSetLister{Indexer: cache.NewIndexer(cache.DeletionHandlingMetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})} | ||||||
| 	informers.Start(stopCh) | 	informers.Start(stopCh) | ||||||
| 	return ret | 	return ret | ||||||
| } | } | ||||||
|   | |||||||
| @@ -21,6 +21,7 @@ go_library( | |||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/record:go_default_library", |         "//pkg/client/record:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/controller/informers:go_default_library", |         "//pkg/controller/informers:go_default_library", | ||||||
|   | |||||||
| @@ -36,6 +36,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
| 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/record" | 	"k8s.io/kubernetes/pkg/client/record" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	"k8s.io/kubernetes/pkg/controller/informers" | 	"k8s.io/kubernetes/pkg/controller/informers" | ||||||
| @@ -82,9 +83,9 @@ type ReplicationManager struct { | |||||||
| 	expectations *controller.UIDTrackingControllerExpectations | 	expectations *controller.UIDTrackingControllerExpectations | ||||||
|  |  | ||||||
| 	// A store of replication controllers, populated by the rcController | 	// A store of replication controllers, populated by the rcController | ||||||
| 	rcLister cache.StoreToReplicationControllerLister | 	rcLister listers.StoreToReplicationControllerLister | ||||||
| 	// A store of pods, populated by the podController | 	// A store of pods, populated by the podController | ||||||
| 	podLister cache.StoreToPodLister | 	podLister listers.StoreToPodLister | ||||||
| 	// Watches changes to all pods | 	// Watches changes to all pods | ||||||
| 	podController cache.Controller | 	podController cache.Controller | ||||||
| 	// podListerSynced returns true if the pod store has been synced at least once. | 	// podListerSynced returns true if the pod store has been synced at least once. | ||||||
|   | |||||||
| @@ -19,6 +19,7 @@ go_library( | |||||||
|         "//pkg/api/v1:go_default_library", |         "//pkg/api/v1:go_default_library", | ||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/cloudprovider:go_default_library", |         "//pkg/cloudprovider:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/util/metrics:go_default_library", |         "//pkg/util/metrics:go_default_library", | ||||||
|   | |||||||
| @@ -32,6 +32,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/cloudprovider" | 	"k8s.io/kubernetes/pkg/cloudprovider" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	"k8s.io/kubernetes/pkg/util/metrics" | 	"k8s.io/kubernetes/pkg/util/metrics" | ||||||
| @@ -55,7 +56,7 @@ type RouteController struct { | |||||||
| 	clusterCIDR *net.IPNet | 	clusterCIDR *net.IPNet | ||||||
| 	// Node framework and store | 	// Node framework and store | ||||||
| 	nodeController cache.Controller | 	nodeController cache.Controller | ||||||
| 	nodeStore      cache.StoreToNodeLister | 	nodeStore      listers.StoreToNodeLister | ||||||
| } | } | ||||||
|  |  | ||||||
| func New(routes cloudprovider.Routes, kubeClient clientset.Interface, clusterName string, clusterCIDR *net.IPNet) *RouteController { | func New(routes cloudprovider.Routes, kubeClient clientset.Interface, clusterName string, clusterCIDR *net.IPNet) *RouteController { | ||||||
|   | |||||||
| @@ -20,6 +20,7 @@ go_library( | |||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/record:go_default_library", |         "//pkg/client/record:go_default_library", | ||||||
|         "//pkg/cloudprovider:go_default_library", |         "//pkg/cloudprovider:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|   | |||||||
| @@ -35,6 +35,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
| 	unversionedcore "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | 	unversionedcore "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/record" | 	"k8s.io/kubernetes/pkg/client/record" | ||||||
| 	"k8s.io/kubernetes/pkg/cloudprovider" | 	"k8s.io/kubernetes/pkg/cloudprovider" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| @@ -85,12 +86,12 @@ type ServiceController struct { | |||||||
| 	zone             cloudprovider.Zone | 	zone             cloudprovider.Zone | ||||||
| 	cache            *serviceCache | 	cache            *serviceCache | ||||||
| 	// A store of services, populated by the serviceController | 	// A store of services, populated by the serviceController | ||||||
| 	serviceStore cache.StoreToServiceLister | 	serviceStore listers.StoreToServiceLister | ||||||
| 	// Watches changes to all services | 	// Watches changes to all services | ||||||
| 	serviceController cache.Controller | 	serviceController cache.Controller | ||||||
| 	eventBroadcaster  record.EventBroadcaster | 	eventBroadcaster  record.EventBroadcaster | ||||||
| 	eventRecorder     record.EventRecorder | 	eventRecorder     record.EventRecorder | ||||||
| 	nodeLister        cache.StoreToNodeLister | 	nodeLister        listers.StoreToNodeLister | ||||||
| 	// services that need to be synced | 	// services that need to be synced | ||||||
| 	workingQueue workqueue.DelayingInterface | 	workingQueue workqueue.DelayingInterface | ||||||
| } | } | ||||||
| @@ -114,7 +115,7 @@ func New(cloud cloudprovider.Interface, kubeClient clientset.Interface, clusterN | |||||||
| 		cache:            &serviceCache{serviceMap: make(map[string]*cachedService)}, | 		cache:            &serviceCache{serviceMap: make(map[string]*cachedService)}, | ||||||
| 		eventBroadcaster: broadcaster, | 		eventBroadcaster: broadcaster, | ||||||
| 		eventRecorder:    recorder, | 		eventRecorder:    recorder, | ||||||
| 		nodeLister: cache.StoreToNodeLister{ | 		nodeLister: listers.StoreToNodeLister{ | ||||||
| 			Store: cache.NewStore(cache.MetaNamespaceKeyFunc), | 			Store: cache.NewStore(cache.MetaNamespaceKeyFunc), | ||||||
| 		}, | 		}, | ||||||
| 		workingQueue: workqueue.NewDelayingQueue(), | 		workingQueue: workqueue.NewDelayingQueue(), | ||||||
| @@ -600,7 +601,7 @@ func includeNodeFromNodeList(node *v1.Node) bool { | |||||||
| 	return !node.Spec.Unschedulable | 	return !node.Spec.Unschedulable | ||||||
| } | } | ||||||
|  |  | ||||||
| func getNodeConditionPredicate() cache.NodeConditionPredicate { | func getNodeConditionPredicate() listers.NodeConditionPredicate { | ||||||
| 	return func(node *v1.Node) bool { | 	return func(node *v1.Node) bool { | ||||||
| 		// We add the master to the node list, but its unschedulable.  So we use this to filter | 		// We add the master to the node list, but its unschedulable.  So we use this to filter | ||||||
| 		// the master. | 		// the master. | ||||||
|   | |||||||
| @@ -22,6 +22,7 @@ go_library( | |||||||
|         "//pkg/api/v1:go_default_library", |         "//pkg/api/v1:go_default_library", | ||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/retry:go_default_library", |         "//pkg/client/retry:go_default_library", | ||||||
|         "//pkg/controller/informers:go_default_library", |         "//pkg/controller/informers:go_default_library", | ||||||
|         "//pkg/genericapiserver/registry/generic:go_default_library", |         "//pkg/genericapiserver/registry/generic:go_default_library", | ||||||
| @@ -62,6 +63,7 @@ go_test( | |||||||
|         "//pkg/api/v1:go_default_library", |         "//pkg/api/v1:go_default_library", | ||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/fake:go_default_library", |         "//pkg/client/clientset_generated/clientset/fake:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/testing/core:go_default_library", |         "//pkg/client/testing/core:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/controller/informers:go_default_library", |         "//pkg/controller/informers:go_default_library", | ||||||
|   | |||||||
| @@ -30,6 +30,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/controller/informers" | 	"k8s.io/kubernetes/pkg/controller/informers" | ||||||
| 	"k8s.io/kubernetes/pkg/util/metrics" | 	"k8s.io/kubernetes/pkg/util/metrics" | ||||||
| 	"k8s.io/kubernetes/pkg/util/workqueue" | 	"k8s.io/kubernetes/pkg/util/workqueue" | ||||||
| @@ -105,8 +106,8 @@ type ServiceAccountsController struct { | |||||||
| 	// To allow injection for testing. | 	// To allow injection for testing. | ||||||
| 	syncHandler func(key string) error | 	syncHandler func(key string) error | ||||||
|  |  | ||||||
| 	saLister *cache.StoreToServiceAccountLister | 	saLister *listers.StoreToServiceAccountLister | ||||||
| 	nsLister *cache.IndexerToNamespaceLister | 	nsLister *listers.IndexerToNamespaceLister | ||||||
|  |  | ||||||
| 	saSynced cache.InformerSynced | 	saSynced cache.InformerSynced | ||||||
| 	nsSynced cache.InformerSynced | 	nsSynced cache.InformerSynced | ||||||
|   | |||||||
| @@ -25,6 +25,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset/fake" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset/fake" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/testing/core" | 	"k8s.io/kubernetes/pkg/client/testing/core" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	"k8s.io/kubernetes/pkg/controller/informers" | 	"k8s.io/kubernetes/pkg/controller/informers" | ||||||
| @@ -165,8 +166,8 @@ func TestServiceAccountCreation(t *testing.T) { | |||||||
| 			{ObjectMeta: metav1.ObjectMeta{Name: managedName}}, | 			{ObjectMeta: metav1.ObjectMeta{Name: managedName}}, | ||||||
| 		} | 		} | ||||||
| 		controller := NewServiceAccountsController(informers.ServiceAccounts(), informers.Namespaces(), client, options) | 		controller := NewServiceAccountsController(informers.ServiceAccounts(), informers.Namespaces(), client, options) | ||||||
| 		controller.saLister = &cache.StoreToServiceAccountLister{Indexer: cache.NewIndexer(cache.DeletionHandlingMetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})} | 		controller.saLister = &listers.StoreToServiceAccountLister{Indexer: cache.NewIndexer(cache.DeletionHandlingMetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})} | ||||||
| 		controller.nsLister = &cache.IndexerToNamespaceLister{Indexer: cache.NewIndexer(cache.DeletionHandlingMetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})} | 		controller.nsLister = &listers.IndexerToNamespaceLister{Indexer: cache.NewIndexer(cache.DeletionHandlingMetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})} | ||||||
| 		controller.saSynced = alwaysReady | 		controller.saSynced = alwaysReady | ||||||
| 		controller.nsSynced = alwaysReady | 		controller.nsSynced = alwaysReady | ||||||
|  |  | ||||||
|   | |||||||
| @@ -28,6 +28,7 @@ go_library( | |||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/apps/v1beta1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/apps/v1beta1:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/record:go_default_library", |         "//pkg/client/record:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/util/workqueue:go_default_library", |         "//pkg/util/workqueue:go_default_library", | ||||||
| @@ -66,6 +67,7 @@ go_test( | |||||||
|         "//pkg/client/clientset_generated/clientset/fake:go_default_library", |         "//pkg/client/clientset_generated/clientset/fake:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/apps/v1beta1:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/apps/v1beta1:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset/typed/apps/v1beta1/fake:go_default_library", |         "//pkg/client/clientset_generated/clientset/typed/apps/v1beta1/fake:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/testing/core:go_default_library", |         "//pkg/client/testing/core:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", |         "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", | ||||||
|   | |||||||
| @@ -28,6 +28,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
| 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | 	v1core "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/record" | 	"k8s.io/kubernetes/pkg/client/record" | ||||||
|  |  | ||||||
| 	"k8s.io/apimachinery/pkg/runtime" | 	"k8s.io/apimachinery/pkg/runtime" | ||||||
| @@ -59,7 +60,7 @@ type StatefulSetController struct { | |||||||
| 	newSyncer func(*pcb) *petSyncer | 	newSyncer func(*pcb) *petSyncer | ||||||
|  |  | ||||||
| 	// podStore is a cache of watched pods. | 	// podStore is a cache of watched pods. | ||||||
| 	podStore cache.StoreToPodLister | 	podStore listers.StoreToPodLister | ||||||
|  |  | ||||||
| 	// podStoreSynced returns true if the pod store has synced at least once. | 	// podStoreSynced returns true if the pod store has synced at least once. | ||||||
| 	podStoreSynced func() bool | 	podStoreSynced func() bool | ||||||
| @@ -67,7 +68,7 @@ type StatefulSetController struct { | |||||||
| 	podController cache.Controller | 	podController cache.Controller | ||||||
|  |  | ||||||
| 	// A store of StatefulSets, populated by the psController. | 	// A store of StatefulSets, populated by the psController. | ||||||
| 	psStore cache.StoreToStatefulSetLister | 	psStore listers.StoreToStatefulSetLister | ||||||
| 	// Watches changes to all StatefulSets. | 	// Watches changes to all StatefulSets. | ||||||
| 	psController cache.Controller | 	psController cache.Controller | ||||||
|  |  | ||||||
|   | |||||||
| @@ -29,6 +29,7 @@ import ( | |||||||
| 	fakeinternal "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/fake" | 	fakeinternal "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/fake" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/apps/v1beta1" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/apps/v1beta1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/apps/v1beta1/fake" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/apps/v1beta1/fake" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -38,8 +39,8 @@ func newFakeStatefulSetController() (*StatefulSetController, *fakePetClient) { | |||||||
| 		kubeClient:       nil, | 		kubeClient:       nil, | ||||||
| 		blockingPetStore: newUnHealthyPetTracker(fpc), | 		blockingPetStore: newUnHealthyPetTracker(fpc), | ||||||
| 		podStoreSynced:   func() bool { return true }, | 		podStoreSynced:   func() bool { return true }, | ||||||
| 		psStore:          cache.StoreToStatefulSetLister{Store: cache.NewStore(controller.KeyFunc)}, | 		psStore:          listers.StoreToStatefulSetLister{Store: cache.NewStore(controller.KeyFunc)}, | ||||||
| 		podStore:         cache.StoreToPodLister{Indexer: cache.NewIndexer(controller.KeyFunc, cache.Indexers{})}, | 		podStore:         listers.StoreToPodLister{Indexer: cache.NewIndexer(controller.KeyFunc, cache.Indexers{})}, | ||||||
| 		newSyncer: func(blockingPet *pcb) *petSyncer { | 		newSyncer: func(blockingPet *pcb) *petSyncer { | ||||||
| 			return &petSyncer{fpc, blockingPet} | 			return &petSyncer{fpc, blockingPet} | ||||||
| 		}, | 		}, | ||||||
|   | |||||||
| @@ -45,6 +45,7 @@ go_library( | |||||||
|         "//pkg/capabilities:go_default_library", |         "//pkg/capabilities:go_default_library", | ||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/client/record:go_default_library", |         "//pkg/client/record:go_default_library", | ||||||
|         "//pkg/cloudprovider:go_default_library", |         "//pkg/cloudprovider:go_default_library", | ||||||
|         "//pkg/fieldpath:go_default_library", |         "//pkg/fieldpath:go_default_library", | ||||||
|   | |||||||
| @@ -50,6 +50,7 @@ import ( | |||||||
| 	componentconfigv1alpha1 "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" | 	componentconfigv1alpha1 "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/client/record" | 	"k8s.io/kubernetes/pkg/client/record" | ||||||
| 	"k8s.io/kubernetes/pkg/cloudprovider" | 	"k8s.io/kubernetes/pkg/cloudprovider" | ||||||
| 	internalapi "k8s.io/kubernetes/pkg/kubelet/api" | 	internalapi "k8s.io/kubernetes/pkg/kubelet/api" | ||||||
| @@ -383,7 +384,7 @@ func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Kub | |||||||
| 		serviceLW := cache.NewListWatchFromClient(kubeClient.Core().RESTClient(), "services", v1.NamespaceAll, fields.Everything()) | 		serviceLW := cache.NewListWatchFromClient(kubeClient.Core().RESTClient(), "services", v1.NamespaceAll, fields.Everything()) | ||||||
| 		cache.NewReflector(serviceLW, &v1.Service{}, serviceStore, 0).Run() | 		cache.NewReflector(serviceLW, &v1.Service{}, serviceStore, 0).Run() | ||||||
| 	} | 	} | ||||||
| 	serviceLister := &cache.StoreToServiceLister{Indexer: serviceStore} | 	serviceLister := &listers.StoreToServiceLister{Indexer: serviceStore} | ||||||
|  |  | ||||||
| 	nodeStore := cache.NewStore(cache.MetaNamespaceKeyFunc) | 	nodeStore := cache.NewStore(cache.MetaNamespaceKeyFunc) | ||||||
| 	if kubeClient != nil { | 	if kubeClient != nil { | ||||||
| @@ -391,7 +392,7 @@ func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Kub | |||||||
| 		nodeLW := cache.NewListWatchFromClient(kubeClient.Core().RESTClient(), "nodes", v1.NamespaceAll, fieldSelector) | 		nodeLW := cache.NewListWatchFromClient(kubeClient.Core().RESTClient(), "nodes", v1.NamespaceAll, fieldSelector) | ||||||
| 		cache.NewReflector(nodeLW, &v1.Node{}, nodeStore, 0).Run() | 		cache.NewReflector(nodeLW, &v1.Node{}, nodeStore, 0).Run() | ||||||
| 	} | 	} | ||||||
| 	nodeLister := &cache.StoreToNodeLister{Store: nodeStore} | 	nodeLister := &listers.StoreToNodeLister{Store: nodeStore} | ||||||
| 	nodeInfo := &predicates.CachedNodeInfo{StoreToNodeLister: nodeLister} | 	nodeInfo := &predicates.CachedNodeInfo{StoreToNodeLister: nodeLister} | ||||||
|  |  | ||||||
| 	// TODO: get the real node object of ourself, | 	// TODO: get the real node object of ourself, | ||||||
|   | |||||||
| @@ -19,7 +19,7 @@ go_library( | |||||||
|     tags = ["automanaged"], |     tags = ["automanaged"], | ||||||
|     deps = [ |     deps = [ | ||||||
|         "//pkg/api/v1:go_default_library", |         "//pkg/api/v1:go_default_library", | ||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/kubelet/qos:go_default_library", |         "//pkg/kubelet/qos:go_default_library", | ||||||
|         "//pkg/util/workqueue:go_default_library", |         "//pkg/util/workqueue:go_default_library", | ||||||
|         "//plugin/pkg/scheduler/algorithm:go_default_library", |         "//plugin/pkg/scheduler/algorithm:go_default_library", | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ import ( | |||||||
| 	"k8s.io/apimachinery/pkg/labels" | 	"k8s.io/apimachinery/pkg/labels" | ||||||
| 	utilruntime "k8s.io/apimachinery/pkg/util/runtime" | 	utilruntime "k8s.io/apimachinery/pkg/util/runtime" | ||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/kubelet/qos" | 	"k8s.io/kubernetes/pkg/kubelet/qos" | ||||||
| 	"k8s.io/kubernetes/pkg/util/workqueue" | 	"k8s.io/kubernetes/pkg/util/workqueue" | ||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" | 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" | ||||||
| @@ -64,7 +64,7 @@ type PersistentVolumeClaimInfo interface { | |||||||
|  |  | ||||||
| // CachedPersistentVolumeClaimInfo implements PersistentVolumeClaimInfo | // CachedPersistentVolumeClaimInfo implements PersistentVolumeClaimInfo | ||||||
| type CachedPersistentVolumeClaimInfo struct { | type CachedPersistentVolumeClaimInfo struct { | ||||||
| 	*cache.StoreToPersistentVolumeClaimLister | 	*listers.StoreToPersistentVolumeClaimLister | ||||||
| } | } | ||||||
|  |  | ||||||
| // GetPersistentVolumeClaimInfo fetches the claim in specified namespace with specified name | // GetPersistentVolumeClaimInfo fetches the claim in specified namespace with specified name | ||||||
| @@ -73,7 +73,7 @@ func (c *CachedPersistentVolumeClaimInfo) GetPersistentVolumeClaimInfo(namespace | |||||||
| } | } | ||||||
|  |  | ||||||
| type CachedNodeInfo struct { | type CachedNodeInfo struct { | ||||||
| 	*cache.StoreToNodeLister | 	*listers.StoreToNodeLister | ||||||
| } | } | ||||||
|  |  | ||||||
| // GetNodeInfo returns cached data for the node 'id'. | // GetNodeInfo returns cached data for the node 'id'. | ||||||
|   | |||||||
| @@ -20,6 +20,7 @@ go_library( | |||||||
|         "//pkg/apis/extensions/v1beta1:go_default_library", |         "//pkg/apis/extensions/v1beta1:go_default_library", | ||||||
|         "//pkg/client/cache:go_default_library", |         "//pkg/client/cache:go_default_library", | ||||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", |         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||||
|  |         "//pkg/client/legacylisters:go_default_library", | ||||||
|         "//pkg/controller/informers:go_default_library", |         "//pkg/controller/informers:go_default_library", | ||||||
|         "//plugin/pkg/scheduler:go_default_library", |         "//plugin/pkg/scheduler:go_default_library", | ||||||
|         "//plugin/pkg/scheduler/algorithm:go_default_library", |         "//plugin/pkg/scheduler/algorithm:go_default_library", | ||||||
|   | |||||||
| @@ -34,6 +34,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	"k8s.io/kubernetes/pkg/client/cache" | 	"k8s.io/kubernetes/pkg/client/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
|  | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/controller/informers" | 	"k8s.io/kubernetes/pkg/controller/informers" | ||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler" | 	"k8s.io/kubernetes/plugin/pkg/scheduler" | ||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" | 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" | ||||||
| @@ -59,21 +60,21 @@ type ConfigFactory struct { | |||||||
| 	// queue for pods that need scheduling | 	// queue for pods that need scheduling | ||||||
| 	podQueue *cache.FIFO | 	podQueue *cache.FIFO | ||||||
| 	// a means to list all known scheduled pods. | 	// a means to list all known scheduled pods. | ||||||
| 	scheduledPodLister *cache.StoreToPodLister | 	scheduledPodLister *listers.StoreToPodLister | ||||||
| 	// a means to list all known scheduled pods and pods assumed to have been scheduled. | 	// a means to list all known scheduled pods and pods assumed to have been scheduled. | ||||||
| 	podLister algorithm.PodLister | 	podLister algorithm.PodLister | ||||||
| 	// a means to list all nodes | 	// a means to list all nodes | ||||||
| 	nodeLister *cache.StoreToNodeLister | 	nodeLister *listers.StoreToNodeLister | ||||||
| 	// a means to list all PersistentVolumes | 	// a means to list all PersistentVolumes | ||||||
| 	pVLister *cache.StoreToPVFetcher | 	pVLister *listers.StoreToPVFetcher | ||||||
| 	// a means to list all PersistentVolumeClaims | 	// a means to list all PersistentVolumeClaims | ||||||
| 	pVCLister *cache.StoreToPersistentVolumeClaimLister | 	pVCLister *listers.StoreToPersistentVolumeClaimLister | ||||||
| 	// a means to list all services | 	// a means to list all services | ||||||
| 	serviceLister *cache.StoreToServiceLister | 	serviceLister *listers.StoreToServiceLister | ||||||
| 	// a means to list all controllers | 	// a means to list all controllers | ||||||
| 	controllerLister *cache.StoreToReplicationControllerLister | 	controllerLister *listers.StoreToReplicationControllerLister | ||||||
| 	// a means to list all replicasets | 	// a means to list all replicasets | ||||||
| 	replicaSetLister *cache.StoreToReplicaSetLister | 	replicaSetLister *listers.StoreToReplicaSetLister | ||||||
|  |  | ||||||
| 	// Close this to stop all reflectors | 	// Close this to stop all reflectors | ||||||
| 	StopEverything chan struct{} | 	StopEverything chan struct{} | ||||||
| @@ -117,16 +118,16 @@ func NewConfigFactory(client clientset.Interface, schedulerName string, hardPodA | |||||||
| 	c := &ConfigFactory{ | 	c := &ConfigFactory{ | ||||||
| 		client:             client, | 		client:             client, | ||||||
| 		podQueue:           cache.NewFIFO(cache.MetaNamespaceKeyFunc), | 		podQueue:           cache.NewFIFO(cache.MetaNamespaceKeyFunc), | ||||||
| 		scheduledPodLister: &cache.StoreToPodLister{}, | 		scheduledPodLister: &listers.StoreToPodLister{}, | ||||||
| 		informerFactory:    informerFactory, | 		informerFactory:    informerFactory, | ||||||
| 		// Only nodes in the "Ready" condition with status == "True" are schedulable | 		// Only nodes in the "Ready" condition with status == "True" are schedulable | ||||||
| 		nodeLister:                     &cache.StoreToNodeLister{}, | 		nodeLister:                     &listers.StoreToNodeLister{}, | ||||||
| 		pVLister:                       &cache.StoreToPVFetcher{Store: cache.NewStore(cache.MetaNamespaceKeyFunc)}, | 		pVLister:                       &listers.StoreToPVFetcher{Store: cache.NewStore(cache.MetaNamespaceKeyFunc)}, | ||||||
| 		pVCLister:                      pvcInformer.Lister(), | 		pVCLister:                      pvcInformer.Lister(), | ||||||
| 		pvcPopulator:                   pvcInformer.Informer().GetController(), | 		pvcPopulator:                   pvcInformer.Informer().GetController(), | ||||||
| 		serviceLister:                  &cache.StoreToServiceLister{Indexer: cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})}, | 		serviceLister:                  &listers.StoreToServiceLister{Indexer: cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})}, | ||||||
| 		controllerLister:               &cache.StoreToReplicationControllerLister{Indexer: cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})}, | 		controllerLister:               &listers.StoreToReplicationControllerLister{Indexer: cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})}, | ||||||
| 		replicaSetLister:               &cache.StoreToReplicaSetLister{Indexer: cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})}, | 		replicaSetLister:               &listers.StoreToReplicaSetLister{Indexer: cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})}, | ||||||
| 		schedulerCache:                 schedulerCache, | 		schedulerCache:                 schedulerCache, | ||||||
| 		StopEverything:                 stopEverything, | 		StopEverything:                 stopEverything, | ||||||
| 		schedulerName:                  schedulerName, | 		schedulerName:                  schedulerName, | ||||||
| @@ -515,7 +516,7 @@ func (f *ConfigFactory) ResponsibleForPod(pod *v1.Pod) bool { | |||||||
| 	return f.schedulerName == pod.Spec.SchedulerName | 	return f.schedulerName == pod.Spec.SchedulerName | ||||||
| } | } | ||||||
|  |  | ||||||
| func getNodeConditionPredicate() cache.NodeConditionPredicate { | func getNodeConditionPredicate() listers.NodeConditionPredicate { | ||||||
| 	return func(node *v1.Node) bool { | 	return func(node *v1.Node) bool { | ||||||
| 		for i := range node.Status.Conditions { | 		for i := range node.Status.Conditions { | ||||||
| 			cond := &node.Status.Conditions[i] | 			cond := &node.Status.Conditions[i] | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 deads2k
					deads2k