move listers out of cache to reduce import tree

This commit is contained in:
deads2k 2017-01-20 14:10:59 -05:00
parent 54ff406702
commit 1ce0637b27
62 changed files with 660 additions and 526 deletions

View File

@ -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",

View File

@ -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

View File

@ -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",

View File

@ -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

View File

@ -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

View File

@ -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",

View File

@ -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",

View File

@ -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
}

View 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"],
)

View 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
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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{

View File

@ -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",

View File

@ -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

View File

@ -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",

View File

@ -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

View File

@ -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",

View File

@ -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.

View File

@ -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",

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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",

View File

@ -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

View File

@ -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(),
} }

View File

@ -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",

View File

@ -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

View File

@ -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",

View File

@ -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

View File

@ -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()}
} }

View File

@ -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 {

View File

@ -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())
} }

View File

@ -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",

View File

@ -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

View File

@ -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",

View File

@ -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}

View File

@ -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

View File

@ -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",

View File

@ -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

View File

@ -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",

View File

@ -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

View File

@ -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
} }

View File

@ -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",

View File

@ -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.

View File

@ -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",

View File

@ -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 {

View File

@ -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",

View File

@ -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.

View File

@ -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",

View File

@ -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

View File

@ -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

View File

@ -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",

View File

@ -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

View File

@ -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}
}, },

View File

@ -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",

View File

@ -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,

View File

@ -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",

View File

@ -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'.

View File

@ -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",

View File

@ -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]