Adding informers for CRD 26/93726/4
authorKiran Kamineni <kiran.k.kamineni@intel.com>
Fri, 16 Aug 2019 20:18:36 +0000 (13:18 -0700)
committerKiran Kamineni <kiran.k.kamineni@intel.com>
Wed, 28 Aug 2019 20:50:25 +0000 (13:50 -0700)
Adding generated informers for CRD
These informers will be needed when we want to
watch these CRDs from the ONAP cluster
Generated using generate-groups.sh
from the kubernetes/code-generator repo

Issue-ID: MULTICLOUD-675
Change-Id: Ib7547666efa389534f0501f8dbab14c284dd76a6
Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
src/monitor/pkg/generated/informers/externalversions/factory.go [new file with mode: 0644]
src/monitor/pkg/generated/informers/externalversions/generic.go [new file with mode: 0644]
src/monitor/pkg/generated/informers/externalversions/internalinterfaces/factory_interfaces.go [new file with mode: 0644]
src/monitor/pkg/generated/informers/externalversions/k8splugin/interface.go [new file with mode: 0644]
src/monitor/pkg/generated/informers/externalversions/k8splugin/v1alpha1/interface.go [new file with mode: 0644]
src/monitor/pkg/generated/informers/externalversions/k8splugin/v1alpha1/resourcebundlestate.go [new file with mode: 0644]

diff --git a/src/monitor/pkg/generated/informers/externalversions/factory.go b/src/monitor/pkg/generated/informers/externalversions/factory.go
new file mode 100644 (file)
index 0000000..6301cbf
--- /dev/null
@@ -0,0 +1,179 @@
+/*
+ * Copyright 2019 Intel Corporation, Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Code generated by informer-gen. DO NOT EDIT.
+
+package externalversions
+
+import (
+       versioned "monitor/pkg/generated/clientset/versioned"
+       internalinterfaces "monitor/pkg/generated/informers/externalversions/internalinterfaces"
+       k8splugin "monitor/pkg/generated/informers/externalversions/k8splugin"
+       reflect "reflect"
+       sync "sync"
+       time "time"
+
+       v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+       runtime "k8s.io/apimachinery/pkg/runtime"
+       schema "k8s.io/apimachinery/pkg/runtime/schema"
+       cache "k8s.io/client-go/tools/cache"
+)
+
+// SharedInformerOption defines the functional option type for SharedInformerFactory.
+type SharedInformerOption func(*sharedInformerFactory) *sharedInformerFactory
+
+type sharedInformerFactory struct {
+       client           versioned.Interface
+       namespace        string
+       tweakListOptions internalinterfaces.TweakListOptionsFunc
+       lock             sync.Mutex
+       defaultResync    time.Duration
+       customResync     map[reflect.Type]time.Duration
+
+       informers map[reflect.Type]cache.SharedIndexInformer
+       // startedInformers is used for tracking which informers have been started.
+       // This allows Start() to be called multiple times safely.
+       startedInformers map[reflect.Type]bool
+}
+
+// WithCustomResyncConfig sets a custom resync period for the specified informer types.
+func WithCustomResyncConfig(resyncConfig map[v1.Object]time.Duration) SharedInformerOption {
+       return func(factory *sharedInformerFactory) *sharedInformerFactory {
+               for k, v := range resyncConfig {
+                       factory.customResync[reflect.TypeOf(k)] = v
+               }
+               return factory
+       }
+}
+
+// WithTweakListOptions sets a custom filter on all listers of the configured SharedInformerFactory.
+func WithTweakListOptions(tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerOption {
+       return func(factory *sharedInformerFactory) *sharedInformerFactory {
+               factory.tweakListOptions = tweakListOptions
+               return factory
+       }
+}
+
+// WithNamespace limits the SharedInformerFactory to the specified namespace.
+func WithNamespace(namespace string) SharedInformerOption {
+       return func(factory *sharedInformerFactory) *sharedInformerFactory {
+               factory.namespace = namespace
+               return factory
+       }
+}
+
+// NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces.
+func NewSharedInformerFactory(client versioned.Interface, defaultResync time.Duration) SharedInformerFactory {
+       return NewSharedInformerFactoryWithOptions(client, defaultResync)
+}
+
+// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory.
+// Listers obtained via this SharedInformerFactory will be subject to the same filters
+// as specified here.
+// Deprecated: Please use NewSharedInformerFactoryWithOptions instead
+func NewFilteredSharedInformerFactory(client versioned.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory {
+       return NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions))
+}
+
+// NewSharedInformerFactoryWithOptions constructs a new instance of a SharedInformerFactory with additional options.
+func NewSharedInformerFactoryWithOptions(client versioned.Interface, defaultResync time.Duration, options ...SharedInformerOption) SharedInformerFactory {
+       factory := &sharedInformerFactory{
+               client:           client,
+               namespace:        v1.NamespaceAll,
+               defaultResync:    defaultResync,
+               informers:        make(map[reflect.Type]cache.SharedIndexInformer),
+               startedInformers: make(map[reflect.Type]bool),
+               customResync:     make(map[reflect.Type]time.Duration),
+       }
+
+       // Apply all options
+       for _, opt := range options {
+               factory = opt(factory)
+       }
+
+       return factory
+}
+
+// Start initializes all requested informers.
+func (f *sharedInformerFactory) Start(stopCh <-chan struct{}) {
+       f.lock.Lock()
+       defer f.lock.Unlock()
+
+       for informerType, informer := range f.informers {
+               if !f.startedInformers[informerType] {
+                       go informer.Run(stopCh)
+                       f.startedInformers[informerType] = true
+               }
+       }
+}
+
+// WaitForCacheSync waits for all started informers' cache were synced.
+func (f *sharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool {
+       informers := func() map[reflect.Type]cache.SharedIndexInformer {
+               f.lock.Lock()
+               defer f.lock.Unlock()
+
+               informers := map[reflect.Type]cache.SharedIndexInformer{}
+               for informerType, informer := range f.informers {
+                       if f.startedInformers[informerType] {
+                               informers[informerType] = informer
+                       }
+               }
+               return informers
+       }()
+
+       res := map[reflect.Type]bool{}
+       for informType, informer := range informers {
+               res[informType] = cache.WaitForCacheSync(stopCh, informer.HasSynced)
+       }
+       return res
+}
+
+// InternalInformerFor returns the SharedIndexInformer for obj using an internal
+// client.
+func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer {
+       f.lock.Lock()
+       defer f.lock.Unlock()
+
+       informerType := reflect.TypeOf(obj)
+       informer, exists := f.informers[informerType]
+       if exists {
+               return informer
+       }
+
+       resyncPeriod, exists := f.customResync[informerType]
+       if !exists {
+               resyncPeriod = f.defaultResync
+       }
+
+       informer = newFunc(f.client, resyncPeriod)
+       f.informers[informerType] = informer
+
+       return informer
+}
+
+// SharedInformerFactory provides shared informers for resources in all known
+// API group versions.
+type SharedInformerFactory interface {
+       internalinterfaces.SharedInformerFactory
+       ForResource(resource schema.GroupVersionResource) (GenericInformer, error)
+       WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool
+
+       K8splugin() k8splugin.Interface
+}
+
+func (f *sharedInformerFactory) K8splugin() k8splugin.Interface {
+       return k8splugin.New(f, f.namespace, f.tweakListOptions)
+}
diff --git a/src/monitor/pkg/generated/informers/externalversions/generic.go b/src/monitor/pkg/generated/informers/externalversions/generic.go
new file mode 100644 (file)
index 0000000..fd94ba1
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2019 Intel Corporation, Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Code generated by informer-gen. DO NOT EDIT.
+
+package externalversions
+
+import (
+       "fmt"
+       v1alpha1 "monitor/pkg/apis/k8splugin/v1alpha1"
+
+       schema "k8s.io/apimachinery/pkg/runtime/schema"
+       cache "k8s.io/client-go/tools/cache"
+)
+
+// GenericInformer is type of SharedIndexInformer which will locate and delegate to other
+// sharedInformers based on type
+type GenericInformer interface {
+       Informer() cache.SharedIndexInformer
+       Lister() cache.GenericLister
+}
+
+type genericInformer struct {
+       informer cache.SharedIndexInformer
+       resource schema.GroupResource
+}
+
+// Informer returns the SharedIndexInformer.
+func (f *genericInformer) Informer() cache.SharedIndexInformer {
+       return f.informer
+}
+
+// Lister returns the GenericLister.
+func (f *genericInformer) Lister() cache.GenericLister {
+       return cache.NewGenericLister(f.Informer().GetIndexer(), f.resource)
+}
+
+// ForResource gives generic access to a shared informer of the matching type
+// TODO extend this to unknown resources with a client pool
+func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {
+       switch resource {
+       // Group=k8splugin.io, Version=v1alpha1
+       case v1alpha1.SchemeGroupVersion.WithResource("resourcebundlestates"):
+               return &genericInformer{resource: resource.GroupResource(), informer: f.K8splugin().V1alpha1().ResourceBundleStates().Informer()}, nil
+
+       }
+
+       return nil, fmt.Errorf("no informer found for %v", resource)
+}
diff --git a/src/monitor/pkg/generated/informers/externalversions/internalinterfaces/factory_interfaces.go b/src/monitor/pkg/generated/informers/externalversions/internalinterfaces/factory_interfaces.go
new file mode 100644 (file)
index 0000000..107a0d4
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2019 Intel Corporation, Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Code generated by informer-gen. DO NOT EDIT.
+
+package internalinterfaces
+
+import (
+       versioned "monitor/pkg/generated/clientset/versioned"
+       time "time"
+
+       v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+       runtime "k8s.io/apimachinery/pkg/runtime"
+       cache "k8s.io/client-go/tools/cache"
+)
+
+// NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer.
+type NewInformerFunc func(versioned.Interface, time.Duration) cache.SharedIndexInformer
+
+// SharedInformerFactory a small interface to allow for adding an informer without an import cycle
+type SharedInformerFactory interface {
+       Start(stopCh <-chan struct{})
+       InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer
+}
+
+// TweakListOptionsFunc is a function that transforms a v1.ListOptions.
+type TweakListOptionsFunc func(*v1.ListOptions)
diff --git a/src/monitor/pkg/generated/informers/externalversions/k8splugin/interface.go b/src/monitor/pkg/generated/informers/externalversions/k8splugin/interface.go
new file mode 100644 (file)
index 0000000..f53c76c
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2019 Intel Corporation, Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Code generated by informer-gen. DO NOT EDIT.
+
+package k8splugin
+
+import (
+       internalinterfaces "monitor/pkg/generated/informers/externalversions/internalinterfaces"
+       v1alpha1 "monitor/pkg/generated/informers/externalversions/k8splugin/v1alpha1"
+)
+
+// Interface provides access to each of this group's versions.
+type Interface interface {
+       // V1alpha1 provides access to shared informers for resources in V1alpha1.
+       V1alpha1() v1alpha1.Interface
+}
+
+type group struct {
+       factory          internalinterfaces.SharedInformerFactory
+       namespace        string
+       tweakListOptions internalinterfaces.TweakListOptionsFunc
+}
+
+// New returns a new Interface.
+func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {
+       return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
+}
+
+// V1alpha1 returns a new v1alpha1.Interface.
+func (g *group) V1alpha1() v1alpha1.Interface {
+       return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions)
+}
diff --git a/src/monitor/pkg/generated/informers/externalversions/k8splugin/v1alpha1/interface.go b/src/monitor/pkg/generated/informers/externalversions/k8splugin/v1alpha1/interface.go
new file mode 100644 (file)
index 0000000..3b69755
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2019 Intel Corporation, Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Code generated by informer-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+       internalinterfaces "monitor/pkg/generated/informers/externalversions/internalinterfaces"
+)
+
+// Interface provides access to all the informers in this group version.
+type Interface interface {
+       // ResourceBundleStates returns a ResourceBundleStateInformer.
+       ResourceBundleStates() ResourceBundleStateInformer
+}
+
+type version struct {
+       factory          internalinterfaces.SharedInformerFactory
+       namespace        string
+       tweakListOptions internalinterfaces.TweakListOptionsFunc
+}
+
+// New returns a new Interface.
+func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {
+       return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
+}
+
+// ResourceBundleStates returns a ResourceBundleStateInformer.
+func (v *version) ResourceBundleStates() ResourceBundleStateInformer {
+       return &resourceBundleStateInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
+}
diff --git a/src/monitor/pkg/generated/informers/externalversions/k8splugin/v1alpha1/resourcebundlestate.go b/src/monitor/pkg/generated/informers/externalversions/k8splugin/v1alpha1/resourcebundlestate.go
new file mode 100644 (file)
index 0000000..8ad5cbf
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2019 Intel Corporation, Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Code generated by informer-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+       k8spluginv1alpha1 "monitor/pkg/apis/k8splugin/v1alpha1"
+       versioned "monitor/pkg/generated/clientset/versioned"
+       internalinterfaces "monitor/pkg/generated/informers/externalversions/internalinterfaces"
+       v1alpha1 "monitor/pkg/generated/listers/k8splugin/v1alpha1"
+       time "time"
+
+       v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+       runtime "k8s.io/apimachinery/pkg/runtime"
+       watch "k8s.io/apimachinery/pkg/watch"
+       cache "k8s.io/client-go/tools/cache"
+)
+
+// ResourceBundleStateInformer provides access to a shared informer and lister for
+// ResourceBundleStates.
+type ResourceBundleStateInformer interface {
+       Informer() cache.SharedIndexInformer
+       Lister() v1alpha1.ResourceBundleStateLister
+}
+
+type resourceBundleStateInformer struct {
+       factory          internalinterfaces.SharedInformerFactory
+       tweakListOptions internalinterfaces.TweakListOptionsFunc
+       namespace        string
+}
+
+// NewResourceBundleStateInformer constructs a new informer for ResourceBundleState type.
+// Always prefer using an informer factory to get a shared informer instead of getting an independent
+// one. This reduces memory footprint and number of connections to the server.
+func NewResourceBundleStateInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
+       return NewFilteredResourceBundleStateInformer(client, namespace, resyncPeriod, indexers, nil)
+}
+
+// NewFilteredResourceBundleStateInformer constructs a new informer for ResourceBundleState type.
+// Always prefer using an informer factory to get a shared informer instead of getting an independent
+// one. This reduces memory footprint and number of connections to the server.
+func NewFilteredResourceBundleStateInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
+       return cache.NewSharedIndexInformer(
+               &cache.ListWatch{
+                       ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
+                               if tweakListOptions != nil {
+                                       tweakListOptions(&options)
+                               }
+                               return client.K8spluginV1alpha1().ResourceBundleStates(namespace).List(options)
+                       },
+                       WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
+                               if tweakListOptions != nil {
+                                       tweakListOptions(&options)
+                               }
+                               return client.K8spluginV1alpha1().ResourceBundleStates(namespace).Watch(options)
+                       },
+               },
+               &k8spluginv1alpha1.ResourceBundleState{},
+               resyncPeriod,
+               indexers,
+       )
+}
+
+func (f *resourceBundleStateInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
+       return NewFilteredResourceBundleStateInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
+}
+
+func (f *resourceBundleStateInformer) Informer() cache.SharedIndexInformer {
+       return f.factory.InformerFor(&k8spluginv1alpha1.ResourceBundleState{}, f.defaultInformer)
+}
+
+func (f *resourceBundleStateInformer) Lister() v1alpha1.ResourceBundleStateLister {
+       return v1alpha1.NewResourceBundleStateLister(f.Informer().GetIndexer())
+}