1
2
3 package externalversions
4
5 import (
6 "fmt"
7
8 v1 "github.com/openshift/api/operator/v1"
9 v1alpha1 "github.com/openshift/api/operator/v1alpha1"
10 schema "k8s.io/apimachinery/pkg/runtime/schema"
11 cache "k8s.io/client-go/tools/cache"
12 )
13
14
15
16 type GenericInformer interface {
17 Informer() cache.SharedIndexInformer
18 Lister() cache.GenericLister
19 }
20
21 type genericInformer struct {
22 informer cache.SharedIndexInformer
23 resource schema.GroupResource
24 }
25
26
27 func (f *genericInformer) Informer() cache.SharedIndexInformer {
28 return f.informer
29 }
30
31
32 func (f *genericInformer) Lister() cache.GenericLister {
33 return cache.NewGenericLister(f.Informer().GetIndexer(), f.resource)
34 }
35
36
37
38 func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {
39 switch resource {
40
41 case v1.SchemeGroupVersion.WithResource("authentications"):
42 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().Authentications().Informer()}, nil
43 case v1.SchemeGroupVersion.WithResource("csisnapshotcontrollers"):
44 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().CSISnapshotControllers().Informer()}, nil
45 case v1.SchemeGroupVersion.WithResource("cloudcredentials"):
46 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().CloudCredentials().Informer()}, nil
47 case v1.SchemeGroupVersion.WithResource("clustercsidrivers"):
48 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().ClusterCSIDrivers().Informer()}, nil
49 case v1.SchemeGroupVersion.WithResource("configs"):
50 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().Configs().Informer()}, nil
51 case v1.SchemeGroupVersion.WithResource("consoles"):
52 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().Consoles().Informer()}, nil
53 case v1.SchemeGroupVersion.WithResource("dnses"):
54 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().DNSes().Informer()}, nil
55 case v1.SchemeGroupVersion.WithResource("etcds"):
56 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().Etcds().Informer()}, nil
57 case v1.SchemeGroupVersion.WithResource("ingresscontrollers"):
58 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().IngressControllers().Informer()}, nil
59 case v1.SchemeGroupVersion.WithResource("kubeapiservers"):
60 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().KubeAPIServers().Informer()}, nil
61 case v1.SchemeGroupVersion.WithResource("kubecontrollermanagers"):
62 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().KubeControllerManagers().Informer()}, nil
63 case v1.SchemeGroupVersion.WithResource("kubeschedulers"):
64 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().KubeSchedulers().Informer()}, nil
65 case v1.SchemeGroupVersion.WithResource("kubestorageversionmigrators"):
66 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().KubeStorageVersionMigrators().Informer()}, nil
67 case v1.SchemeGroupVersion.WithResource("networks"):
68 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().Networks().Informer()}, nil
69 case v1.SchemeGroupVersion.WithResource("openshiftapiservers"):
70 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().OpenShiftAPIServers().Informer()}, nil
71 case v1.SchemeGroupVersion.WithResource("openshiftcontrollermanagers"):
72 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().OpenShiftControllerManagers().Informer()}, nil
73 case v1.SchemeGroupVersion.WithResource("servicecas"):
74 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().ServiceCAs().Informer()}, nil
75 case v1.SchemeGroupVersion.WithResource("servicecatalogapiservers"):
76 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().ServiceCatalogAPIServers().Informer()}, nil
77 case v1.SchemeGroupVersion.WithResource("servicecatalogcontrollermanagers"):
78 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().ServiceCatalogControllerManagers().Informer()}, nil
79 case v1.SchemeGroupVersion.WithResource("storages"):
80 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1().Storages().Informer()}, nil
81
82
83 case v1alpha1.SchemeGroupVersion.WithResource("imagecontentsourcepolicies"):
84 return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1alpha1().ImageContentSourcePolicies().Informer()}, nil
85
86 }
87
88 return nil, fmt.Errorf("no informer found for %v", resource)
89 }
90
View as plain text