...
1
2
3 package externalversions
4
5 import (
6 "fmt"
7
8 v1 "github.com/openshift/api/apps/v1"
9 schema "k8s.io/apimachinery/pkg/runtime/schema"
10 cache "k8s.io/client-go/tools/cache"
11 )
12
13
14
15 type GenericInformer interface {
16 Informer() cache.SharedIndexInformer
17 Lister() cache.GenericLister
18 }
19
20 type genericInformer struct {
21 informer cache.SharedIndexInformer
22 resource schema.GroupResource
23 }
24
25
26 func (f *genericInformer) Informer() cache.SharedIndexInformer {
27 return f.informer
28 }
29
30
31 func (f *genericInformer) Lister() cache.GenericLister {
32 return cache.NewGenericLister(f.Informer().GetIndexer(), f.resource)
33 }
34
35
36
37 func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {
38 switch resource {
39
40 case v1.SchemeGroupVersion.WithResource("deploymentconfigs"):
41 return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().DeploymentConfigs().Informer()}, nil
42
43 }
44
45 return nil, fmt.Errorf("no informer found for %v", resource)
46 }
47
View as plain text