...
1
2
3 package externalversions
4
5 import (
6 "fmt"
7
8 v1 "github.com/openshift/api/oauth/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("oauthaccesstokens"):
41 return &genericInformer{resource: resource.GroupResource(), informer: f.Oauth().V1().OAuthAccessTokens().Informer()}, nil
42 case v1.SchemeGroupVersion.WithResource("oauthauthorizetokens"):
43 return &genericInformer{resource: resource.GroupResource(), informer: f.Oauth().V1().OAuthAuthorizeTokens().Informer()}, nil
44 case v1.SchemeGroupVersion.WithResource("oauthclients"):
45 return &genericInformer{resource: resource.GroupResource(), informer: f.Oauth().V1().OAuthClients().Informer()}, nil
46 case v1.SchemeGroupVersion.WithResource("oauthclientauthorizations"):
47 return &genericInformer{resource: resource.GroupResource(), informer: f.Oauth().V1().OAuthClientAuthorizations().Informer()}, nil
48 case v1.SchemeGroupVersion.WithResource("useroauthaccesstokens"):
49 return &genericInformer{resource: resource.GroupResource(), informer: f.Oauth().V1().UserOAuthAccessTokens().Informer()}, nil
50
51 }
52
53 return nil, fmt.Errorf("no informer found for %v", resource)
54 }
55
View as plain text