...
1
16
17
18
19 package externalversions
20
21 import (
22 "fmt"
23
24 v1 "github.com/k8snetworkplumbingwg/network-attachment-definition-client/pkg/apis/k8s.cni.cncf.io/v1"
25 schema "k8s.io/apimachinery/pkg/runtime/schema"
26 cache "k8s.io/client-go/tools/cache"
27 )
28
29
30
31 type GenericInformer interface {
32 Informer() cache.SharedIndexInformer
33 Lister() cache.GenericLister
34 }
35
36 type genericInformer struct {
37 informer cache.SharedIndexInformer
38 resource schema.GroupResource
39 }
40
41
42 func (f *genericInformer) Informer() cache.SharedIndexInformer {
43 return f.informer
44 }
45
46
47 func (f *genericInformer) Lister() cache.GenericLister {
48 return cache.NewGenericLister(f.Informer().GetIndexer(), f.resource)
49 }
50
51
52
53 func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {
54 switch resource {
55
56 case v1.SchemeGroupVersion.WithResource("network-attachment-definitions"):
57 return &genericInformer{resource: resource.GroupResource(), informer: f.K8sCniCncfIo().V1().NetworkAttachmentDefinitions().Informer()}, nil
58
59 }
60
61 return nil, fmt.Errorf("no informer found for %v", resource)
62 }
63
View as plain text