Refactor code generator for deepcopy files (#2580)
* Refactor code generator for deep copy files * Add timeout to push PR workflow * Add timeout for the fission-dump command * Update helm and kind versions Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
This commit is contained in:
@@ -39,7 +39,7 @@ type CanaryConfigInformer interface {
|
||||
Lister() v1.CanaryConfigLister
|
||||
}
|
||||
|
||||
type _canaryConfigInformer struct {
|
||||
type canaryConfigInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
namespace string
|
||||
@@ -77,14 +77,14 @@ func NewFilteredCanaryConfigInformer(client versioned.Interface, namespace strin
|
||||
)
|
||||
}
|
||||
|
||||
func (f *_canaryConfigInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
func (f *canaryConfigInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewFilteredCanaryConfigInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
}
|
||||
|
||||
func (f *_canaryConfigInformer) Informer() cache.SharedIndexInformer {
|
||||
func (f *canaryConfigInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&corev1.CanaryConfig{}, f.defaultInformer)
|
||||
}
|
||||
|
||||
func (f *_canaryConfigInformer) Lister() v1.CanaryConfigLister {
|
||||
func (f *canaryConfigInformer) Lister() v1.CanaryConfigLister {
|
||||
return v1.NewCanaryConfigLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ type EnvironmentInformer interface {
|
||||
Lister() v1.EnvironmentLister
|
||||
}
|
||||
|
||||
type _environmentInformer struct {
|
||||
type environmentInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
namespace string
|
||||
@@ -77,14 +77,14 @@ func NewFilteredEnvironmentInformer(client versioned.Interface, namespace string
|
||||
)
|
||||
}
|
||||
|
||||
func (f *_environmentInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
func (f *environmentInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewFilteredEnvironmentInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
}
|
||||
|
||||
func (f *_environmentInformer) Informer() cache.SharedIndexInformer {
|
||||
func (f *environmentInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&corev1.Environment{}, f.defaultInformer)
|
||||
}
|
||||
|
||||
func (f *_environmentInformer) Lister() v1.EnvironmentLister {
|
||||
func (f *environmentInformer) Lister() v1.EnvironmentLister {
|
||||
return v1.NewEnvironmentLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ type FunctionInformer interface {
|
||||
Lister() v1.FunctionLister
|
||||
}
|
||||
|
||||
type _functionInformer struct {
|
||||
type functionInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
namespace string
|
||||
@@ -77,14 +77,14 @@ func NewFilteredFunctionInformer(client versioned.Interface, namespace string, r
|
||||
)
|
||||
}
|
||||
|
||||
func (f *_functionInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
func (f *functionInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewFilteredFunctionInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
}
|
||||
|
||||
func (f *_functionInformer) Informer() cache.SharedIndexInformer {
|
||||
func (f *functionInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&corev1.Function{}, f.defaultInformer)
|
||||
}
|
||||
|
||||
func (f *_functionInformer) Lister() v1.FunctionLister {
|
||||
func (f *functionInformer) Lister() v1.FunctionLister {
|
||||
return v1.NewFunctionLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ type HTTPTriggerInformer interface {
|
||||
Lister() v1.HTTPTriggerLister
|
||||
}
|
||||
|
||||
type _hTTPTriggerInformer struct {
|
||||
type hTTPTriggerInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
namespace string
|
||||
@@ -77,14 +77,14 @@ func NewFilteredHTTPTriggerInformer(client versioned.Interface, namespace string
|
||||
)
|
||||
}
|
||||
|
||||
func (f *_hTTPTriggerInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
func (f *hTTPTriggerInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewFilteredHTTPTriggerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
}
|
||||
|
||||
func (f *_hTTPTriggerInformer) Informer() cache.SharedIndexInformer {
|
||||
func (f *hTTPTriggerInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&corev1.HTTPTrigger{}, f.defaultInformer)
|
||||
}
|
||||
|
||||
func (f *_hTTPTriggerInformer) Lister() v1.HTTPTriggerLister {
|
||||
func (f *hTTPTriggerInformer) Lister() v1.HTTPTriggerLister {
|
||||
return v1.NewHTTPTriggerLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
@@ -55,40 +55,40 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList
|
||||
|
||||
// CanaryConfigs returns a CanaryConfigInformer.
|
||||
func (v *version) CanaryConfigs() CanaryConfigInformer {
|
||||
return &_canaryConfigInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
return &canaryConfigInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// Environments returns a EnvironmentInformer.
|
||||
func (v *version) Environments() EnvironmentInformer {
|
||||
return &_environmentInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
return &environmentInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// Functions returns a FunctionInformer.
|
||||
func (v *version) Functions() FunctionInformer {
|
||||
return &_functionInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
return &functionInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// HTTPTriggers returns a HTTPTriggerInformer.
|
||||
func (v *version) HTTPTriggers() HTTPTriggerInformer {
|
||||
return &_hTTPTriggerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
return &hTTPTriggerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// KubernetesWatchTriggers returns a KubernetesWatchTriggerInformer.
|
||||
func (v *version) KubernetesWatchTriggers() KubernetesWatchTriggerInformer {
|
||||
return &_kubernetesWatchTriggerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
return &kubernetesWatchTriggerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// MessageQueueTriggers returns a MessageQueueTriggerInformer.
|
||||
func (v *version) MessageQueueTriggers() MessageQueueTriggerInformer {
|
||||
return &_messageQueueTriggerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
return &messageQueueTriggerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// Packages returns a PackageInformer.
|
||||
func (v *version) Packages() PackageInformer {
|
||||
return &_packageInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
return &packageInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// TimeTriggers returns a TimeTriggerInformer.
|
||||
func (v *version) TimeTriggers() TimeTriggerInformer {
|
||||
return &_timeTriggerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
return &timeTriggerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ type KubernetesWatchTriggerInformer interface {
|
||||
Lister() v1.KubernetesWatchTriggerLister
|
||||
}
|
||||
|
||||
type _kubernetesWatchTriggerInformer struct {
|
||||
type kubernetesWatchTriggerInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
namespace string
|
||||
@@ -77,14 +77,14 @@ func NewFilteredKubernetesWatchTriggerInformer(client versioned.Interface, names
|
||||
)
|
||||
}
|
||||
|
||||
func (f *_kubernetesWatchTriggerInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
func (f *kubernetesWatchTriggerInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewFilteredKubernetesWatchTriggerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
}
|
||||
|
||||
func (f *_kubernetesWatchTriggerInformer) Informer() cache.SharedIndexInformer {
|
||||
func (f *kubernetesWatchTriggerInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&corev1.KubernetesWatchTrigger{}, f.defaultInformer)
|
||||
}
|
||||
|
||||
func (f *_kubernetesWatchTriggerInformer) Lister() v1.KubernetesWatchTriggerLister {
|
||||
func (f *kubernetesWatchTriggerInformer) Lister() v1.KubernetesWatchTriggerLister {
|
||||
return v1.NewKubernetesWatchTriggerLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ type MessageQueueTriggerInformer interface {
|
||||
Lister() v1.MessageQueueTriggerLister
|
||||
}
|
||||
|
||||
type _messageQueueTriggerInformer struct {
|
||||
type messageQueueTriggerInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
namespace string
|
||||
@@ -77,14 +77,14 @@ func NewFilteredMessageQueueTriggerInformer(client versioned.Interface, namespac
|
||||
)
|
||||
}
|
||||
|
||||
func (f *_messageQueueTriggerInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
func (f *messageQueueTriggerInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewFilteredMessageQueueTriggerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
}
|
||||
|
||||
func (f *_messageQueueTriggerInformer) Informer() cache.SharedIndexInformer {
|
||||
func (f *messageQueueTriggerInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&corev1.MessageQueueTrigger{}, f.defaultInformer)
|
||||
}
|
||||
|
||||
func (f *_messageQueueTriggerInformer) Lister() v1.MessageQueueTriggerLister {
|
||||
func (f *messageQueueTriggerInformer) Lister() v1.MessageQueueTriggerLister {
|
||||
return v1.NewMessageQueueTriggerLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ type PackageInformer interface {
|
||||
Lister() v1.PackageLister
|
||||
}
|
||||
|
||||
type _packageInformer struct {
|
||||
type packageInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
namespace string
|
||||
@@ -77,14 +77,14 @@ func NewFilteredPackageInformer(client versioned.Interface, namespace string, re
|
||||
)
|
||||
}
|
||||
|
||||
func (f *_packageInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
func (f *packageInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewFilteredPackageInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
}
|
||||
|
||||
func (f *_packageInformer) Informer() cache.SharedIndexInformer {
|
||||
func (f *packageInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&corev1.Package{}, f.defaultInformer)
|
||||
}
|
||||
|
||||
func (f *_packageInformer) Lister() v1.PackageLister {
|
||||
func (f *packageInformer) Lister() v1.PackageLister {
|
||||
return v1.NewPackageLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ type TimeTriggerInformer interface {
|
||||
Lister() v1.TimeTriggerLister
|
||||
}
|
||||
|
||||
type _timeTriggerInformer struct {
|
||||
type timeTriggerInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
namespace string
|
||||
@@ -77,14 +77,14 @@ func NewFilteredTimeTriggerInformer(client versioned.Interface, namespace string
|
||||
)
|
||||
}
|
||||
|
||||
func (f *_timeTriggerInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
func (f *timeTriggerInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewFilteredTimeTriggerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
}
|
||||
|
||||
func (f *_timeTriggerInformer) Informer() cache.SharedIndexInformer {
|
||||
func (f *timeTriggerInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&corev1.TimeTrigger{}, f.defaultInformer)
|
||||
}
|
||||
|
||||
func (f *_timeTriggerInformer) Lister() v1.TimeTriggerLister {
|
||||
func (f *timeTriggerInformer) Lister() v1.TimeTriggerLister {
|
||||
return v1.NewTimeTriggerLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
@@ -47,6 +47,11 @@ type sharedInformerFactory struct {
|
||||
// startedInformers is used for tracking which informers have been started.
|
||||
// This allows Start() to be called multiple times safely.
|
||||
startedInformers map[reflect.Type]bool
|
||||
// wg tracks how many goroutines were started.
|
||||
wg sync.WaitGroup
|
||||
// shuttingDown is true when Shutdown has been called. It may still be running
|
||||
// because it needs to wait for goroutines.
|
||||
shuttingDown bool
|
||||
}
|
||||
|
||||
// WithCustomResyncConfig sets a custom resync period for the specified informer types.
|
||||
@@ -107,20 +112,39 @@ func NewSharedInformerFactoryWithOptions(client versioned.Interface, defaultResy
|
||||
return factory
|
||||
}
|
||||
|
||||
// Start initializes all requested informers.
|
||||
func (f *sharedInformerFactory) Start(stopCh <-chan struct{}) {
|
||||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
|
||||
if f.shuttingDown {
|
||||
return
|
||||
}
|
||||
|
||||
for informerType, informer := range f.informers {
|
||||
if !f.startedInformers[informerType] {
|
||||
go informer.Run(stopCh)
|
||||
f.wg.Add(1)
|
||||
// We need a new variable in each loop iteration,
|
||||
// otherwise the goroutine would use the loop variable
|
||||
// and that keeps changing.
|
||||
informer := informer
|
||||
go func() {
|
||||
defer f.wg.Done()
|
||||
informer.Run(stopCh)
|
||||
}()
|
||||
f.startedInformers[informerType] = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// WaitForCacheSync waits for all started informers' cache were synced.
|
||||
func (f *sharedInformerFactory) Shutdown() {
|
||||
f.lock.Lock()
|
||||
f.shuttingDown = true
|
||||
f.lock.Unlock()
|
||||
|
||||
// Will return immediately if there is nothing to wait for.
|
||||
f.wg.Wait()
|
||||
}
|
||||
|
||||
func (f *sharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool {
|
||||
informers := func() map[reflect.Type]cache.SharedIndexInformer {
|
||||
f.lock.Lock()
|
||||
@@ -167,11 +191,58 @@ func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internal
|
||||
|
||||
// SharedInformerFactory provides shared informers for resources in all known
|
||||
// API group versions.
|
||||
//
|
||||
// It is typically used like this:
|
||||
//
|
||||
// ctx, cancel := context.Background()
|
||||
// defer cancel()
|
||||
// factory := NewSharedInformerFactory(client, resyncPeriod)
|
||||
// defer factory.WaitForStop() // Returns immediately if nothing was started.
|
||||
// genericInformer := factory.ForResource(resource)
|
||||
// typedInformer := factory.SomeAPIGroup().V1().SomeType()
|
||||
// factory.Start(ctx.Done()) // Start processing these informers.
|
||||
// synced := factory.WaitForCacheSync(ctx.Done())
|
||||
// for v, ok := range synced {
|
||||
// if !ok {
|
||||
// fmt.Fprintf(os.Stderr, "caches failed to sync: %v", v)
|
||||
// return
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // Creating informers can also be created after Start, but then
|
||||
// // Start must be called again:
|
||||
// anotherGenericInformer := factory.ForResource(resource)
|
||||
// factory.Start(ctx.Done())
|
||||
type SharedInformerFactory interface {
|
||||
internalinterfaces.SharedInformerFactory
|
||||
ForResource(resource schema.GroupVersionResource) (GenericInformer, error)
|
||||
|
||||
// Start initializes all requested informers. They are handled in goroutines
|
||||
// which run until the stop channel gets closed.
|
||||
Start(stopCh <-chan struct{})
|
||||
|
||||
// Shutdown marks a factory as shutting down. At that point no new
|
||||
// informers can be started anymore and Start will return without
|
||||
// doing anything.
|
||||
//
|
||||
// In addition, Shutdown blocks until all goroutines have terminated. For that
|
||||
// to happen, the close channel(s) that they were started with must be closed,
|
||||
// either before Shutdown gets called or while it is waiting.
|
||||
//
|
||||
// Shutdown may be called multiple times, even concurrently. All such calls will
|
||||
// block until all goroutines have terminated.
|
||||
Shutdown()
|
||||
|
||||
// WaitForCacheSync blocks until all started informers' caches were synced
|
||||
// or the stop channel gets closed.
|
||||
WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool
|
||||
|
||||
// ForResource gives generic access to a shared informer of the matching type.
|
||||
ForResource(resource schema.GroupVersionResource) (GenericInformer, error)
|
||||
|
||||
// InternalInformerFor returns the SharedIndexInformer for obj using an internal
|
||||
// client.
|
||||
InformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer
|
||||
|
||||
Core() core.Interface
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user