github.com/jenkins-x/jx-api@v0.0.24/pkg/client/informers/externalversions/jenkins.io/v1/scheduler.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  // SchedulerInformer provides access to a shared informer and lister for
    19  // Schedulers.
    20  type SchedulerInformer interface {
    21  	Informer() cache.SharedIndexInformer
    22  	Lister() v1.SchedulerLister
    23  }
    24  
    25  type schedulerInformer struct {
    26  	factory          internalinterfaces.SharedInformerFactory
    27  	tweakListOptions internalinterfaces.TweakListOptionsFunc
    28  	namespace        string
    29  }
    30  
    31  // NewSchedulerInformer constructs a new informer for Scheduler 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 NewSchedulerInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
    35  	return NewFilteredSchedulerInformer(client, namespace, resyncPeriod, indexers, nil)
    36  }
    37  
    38  // NewFilteredSchedulerInformer constructs a new informer for Scheduler 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 NewFilteredSchedulerInformer(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().Schedulers(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().Schedulers(namespace).Watch(options)
    55  			},
    56  		},
    57  		&jenkinsiov1.Scheduler{},
    58  		resyncPeriod,
    59  		indexers,
    60  	)
    61  }
    62  
    63  func (f *schedulerInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
    64  	return NewFilteredSchedulerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
    65  }
    66  
    67  func (f *schedulerInformer) Informer() cache.SharedIndexInformer {
    68  	return f.factory.InformerFor(&jenkinsiov1.Scheduler{}, f.defaultInformer)
    69  }
    70  
    71  func (f *schedulerInformer) Lister() v1.SchedulerLister {
    72  	return v1.NewSchedulerLister(f.Informer().GetIndexer())
    73  }