From 83aed755563c20a87150e278320e3f122b2e234d Mon Sep 17 00:00:00 2001 From: Eric Tune Date: Wed, 7 Jan 2015 08:17:30 -0800 Subject: [PATCH] Addded a StoreToServiceLister. --- pkg/client/cache/listers.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/pkg/client/cache/listers.go b/pkg/client/cache/listers.go index feacc11e7f8..a86012778ee 100644 --- a/pkg/client/cache/listers.go +++ b/pkg/client/cache/listers.go @@ -74,5 +74,17 @@ func (s *StoreToNodeLister) GetNodeInfo(id string) (*api.Node, error) { return nil, fmt.Errorf("minion '%v' is not in cache", id) } -// TODO: add StoreToServiceLister for use in kube-proxy and kubelet. -// TODO: add StoreToServiceLister for use in kube-proxy. +// StoreToServiceLister makes a Store have the List method of the client.ServiceInterface +// The Store must contain (only) Services. +type StoreToServiceLister struct { + Store +} + +func (s *StoreToServiceLister) List() (svcs api.ServiceList, err error) { + for _, m := range s.Store.List() { + svcs.Items = append(svcs.Items, *(m.(*api.Service))) + } + return svcs, nil +} + +// TODO: add StoreToEndpointsLister for use in kube-proxy.