github.com/jenkins-x/jx-api@v0.0.24/pkg/client/informers/externalversions/jenkins.io/v1/release.go (about) 1 // Code generated by informer-gen. DO NOT EDIT. 2 3 package v1 4 5 import ( 6 time "time" 7 8 jenkinsiov1 "github.com/jenkins-x/jx-api/pkg/apis/jenkins.io/v1" 9 versioned "github.com/jenkins-x/jx-api/pkg/client/clientset/versioned" 10 internalinterfaces "github.com/jenkins-x/jx-api/pkg/client/informers/externalversions/internalinterfaces" 11 v1 "github.com/jenkins-x/jx-api/pkg/client/listers/jenkins.io/v1" 12 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 13 runtime "k8s.io/apimachinery/pkg/runtime" 14 watch "k8s.io/apimachinery/pkg/watch" 15 cache "k8s.io/client-go/tools/cache" 16 ) 17 18 // ReleaseInformer provides access to a shared informer and lister for 19 // Releases. 20 type ReleaseInformer interface { 21 Informer() cache.SharedIndexInformer 22 Lister() v1.ReleaseLister 23 } 24 25 type releaseInformer struct { 26 factory internalinterfaces.SharedInformerFactory 27 tweakListOptions internalinterfaces.TweakListOptionsFunc 28 namespace string 29 } 30 31 // NewReleaseInformer constructs a new informer for Release type. 32 // Always prefer using an informer factory to get a shared informer instead of getting an independent 33 // one. This reduces memory footprint and number of connections to the server. 34 func NewReleaseInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { 35 return NewFilteredReleaseInformer(client, namespace, resyncPeriod, indexers, nil) 36 } 37 38 // NewFilteredReleaseInformer constructs a new informer for Release type. 39 // Always prefer using an informer factory to get a shared informer instead of getting an independent 40 // one. This reduces memory footprint and number of connections to the server. 41 func NewFilteredReleaseInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { 42 return cache.NewSharedIndexInformer( 43 &cache.ListWatch{ 44 ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { 45 if tweakListOptions != nil { 46 tweakListOptions(&options) 47 } 48 return client.JenkinsV1().Releases(namespace).List(options) 49 }, 50 WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { 51 if tweakListOptions != nil { 52 tweakListOptions(&options) 53 } 54 return client.JenkinsV1().Releases(namespace).Watch(options) 55 }, 56 }, 57 &jenkinsiov1.Release{}, 58 resyncPeriod, 59 indexers, 60 ) 61 } 62 63 func (f *releaseInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { 64 return NewFilteredReleaseInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) 65 } 66 67 func (f *releaseInformer) Informer() cache.SharedIndexInformer { 68 return f.factory.InformerFor(&jenkinsiov1.Release{}, f.defaultInformer) 69 } 70 71 func (f *releaseInformer) Lister() v1.ReleaseLister { 72 return v1.NewReleaseLister(f.Informer().GetIndexer()) 73 }