From 2ccc9fa859829141b2cca8307bd410e5f71b1355 Mon Sep 17 00:00:00 2001 From: Michal Fojtik Date: Thu, 18 Aug 2016 18:19:50 +0200 Subject: [PATCH] Add Get() to cache listers --- pkg/client/cache/listers.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/pkg/client/cache/listers.go b/pkg/client/cache/listers.go index 8abde96c4ac..aef1c50b893 100644 --- a/pkg/client/cache/listers.go +++ b/pkg/client/cache/listers.go @@ -21,6 +21,7 @@ import ( "github.com/golang/glog" "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/batch" @@ -113,6 +114,17 @@ func (s storePodsNamespacer) List(selector labels.Selector) (api.PodList, error) return pods, nil } +func (s storePodsNamespacer) Get(name string) (*api.Pod, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(api.Resource("pod"), name) + } + return obj.(*api.Pod), nil +} + // Exists returns true if a pod matching the namespace/name of the given pod exists in the store. func (s *StoreToPodLister) Exists(pod *api.Pod) (bool, error) { _, exists, err := s.Indexer.Get(pod) @@ -232,6 +244,17 @@ func (s storeReplicationControllersNamespacer) List(selector labels.Selector) ([ return controllers, nil } +func (s storeReplicationControllersNamespacer) Get(name string) (*api.ReplicationController, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(api.Resource("replicationcontroller"), name) + } + return obj.(*api.ReplicationController), nil +} + // GetPodControllers returns a list of replication controllers managing a pod. Returns an error only if no matching controllers are found. func (s *StoreToReplicationControllerLister) GetPodControllers(pod *api.Pod) (controllers []api.ReplicationController, err error) { var selector labels.Selector @@ -360,6 +383,17 @@ func (s storeReplicaSetsNamespacer) List(selector labels.Selector) (rss []extens return } +func (s storeReplicaSetsNamespacer) Get(name string) (*extensions.ReplicaSet, error) { + obj, exists, err := s.store.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(extensions.Resource("replicaset"), name) + } + return obj.(*extensions.ReplicaSet), nil +} + func (s *StoreToReplicaSetLister) ReplicaSets(namespace string) storeReplicaSetsNamespacer { return storeReplicaSetsNamespacer{s.Store, namespace} }