diff options
author | 2016-09-22 08:29:50 -0300 | |
---|---|---|
committer | 2016-09-22 08:29:50 -0300 | |
commit | 3be9e58ddfc6ef0e8f3df74a14e8efad5e52545f (patch) | |
tree | 153bea5a263e923ad67f2c27f3119d3b4f1b6f33 /middleware/kubernetes/controller.go | |
parent | e0a49b73b580ba4ea1882b58318d36ff7977bbdd (diff) | |
download | coredns-3be9e58ddfc6ef0e8f3df74a14e8efad5e52545f.tar.gz coredns-3be9e58ddfc6ef0e8f3df74a14e8efad5e52545f.tar.zst coredns-3be9e58ddfc6ef0e8f3df74a14e8efad5e52545f.zip |
Revert k8s changes
Diffstat (limited to 'middleware/kubernetes/controller.go')
-rw-r--r-- | middleware/kubernetes/controller.go | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/middleware/kubernetes/controller.go b/middleware/kubernetes/controller.go index c7f9e9e48..126d415ae 100644 --- a/middleware/kubernetes/controller.go +++ b/middleware/kubernetes/controller.go @@ -55,15 +55,12 @@ func newdnsController(kubeClient *client.Client, resyncPeriod time.Duration, lse }, &api.Endpoints{}, resyncPeriod, cache.ResourceEventHandlerFuncs{}) - dns.svcLister.Indexer, dns.svcController = cache.NewIndexerInformer( + dns.svcLister.Store, dns.svcController = cache.NewInformer( &cache.ListWatch{ ListFunc: serviceListFunc(dns.client, namespace, dns.selector), WatchFunc: serviceWatchFunc(dns.client, namespace, dns.selector), }, - &api.Service{}, - resyncPeriod, - cache.ResourceEventHandlerFuncs{}, - cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) + &api.Service{}, resyncPeriod, cache.ResourceEventHandlerFuncs{}) dns.nsLister.Store, dns.nsController = cache.NewInformer( &cache.ListWatch{ @@ -166,34 +163,47 @@ func (dns *dnsController) GetNamespaceList() *api.NamespaceList { return &nsList } -func (dns *dnsController) GetServiceList() []*api.Service { - svcs, err := dns.svcLister.List(labels.Everything()) +func (dns *dnsController) GetServiceList() *api.ServiceList { + svcList, err := dns.svcLister.List() if err != nil { - return []*api.Service{} + return &api.ServiceList{} } - return svcs + + return &svcList } // GetServicesByNamespace returns a map of // namespacename :: [ kubernetesService ] func (dns *dnsController) GetServicesByNamespace() map[string][]api.Service { k8sServiceList := dns.GetServiceList() - items := make(map[string][]api.Service, len(k8sServiceList)) - for _, i := range k8sServiceList { + if k8sServiceList == nil { + return nil + } + + items := make(map[string][]api.Service, len(k8sServiceList.Items)) + for _, i := range k8sServiceList.Items { namespace := i.Namespace - items[namespace] = append(items[namespace], *i) + items[namespace] = append(items[namespace], i) } + return items } // GetServiceInNamespace returns the Service that matches // servicename in the namespace func (dns *dnsController) GetServiceInNamespace(namespace string, servicename string) *api.Service { - svcObj, err := dns.svcLister.Services(namespace).Get(servicename) + svcKey := fmt.Sprintf("%v/%v", namespace, servicename) + svcObj, svcExists, err := dns.svcLister.Store.GetByKey(svcKey) + if err != nil { // TODO(...): should return err here return nil } - return svcObj + if !svcExists { + // TODO(...): should return err here + return nil + } + + return svcObj.(*api.Service) } |