mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-07-25 14:06:46 +00:00
code-generator/cmd/informer-gen/generators: wrap the LW with WatchList semantics
This commit is contained in:
@@ -78,31 +78,32 @@ func (g *informerGenerator) GenerateType(c *generator.Context, t *types.Type, w
|
||||
}
|
||||
|
||||
m := map[string]interface{}{
|
||||
"apiScheme": c.Universe.Type(apiScheme),
|
||||
"cacheIndexers": c.Universe.Type(cacheIndexers),
|
||||
"cacheListWatch": c.Universe.Type(cacheListWatch),
|
||||
"cacheMetaNamespaceIndexFunc": c.Universe.Function(cacheMetaNamespaceIndexFunc),
|
||||
"cacheNamespaceIndex": c.Universe.Variable(cacheNamespaceIndex),
|
||||
"cacheNewSharedIndexInformer": c.Universe.Function(cacheNewSharedIndexInformer),
|
||||
"cacheSharedIndexInformer": c.Universe.Type(cacheSharedIndexInformer),
|
||||
"clientSetInterface": clientSetInterface,
|
||||
"contextContext": c.Universe.Type(contextContext),
|
||||
"contextBackground": c.Universe.Function(contextBackgroundFunc),
|
||||
"group": namer.IC(g.groupGoName),
|
||||
"informerFor": informerFor,
|
||||
"interfacesTweakListOptionsFunc": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "TweakListOptionsFunc"}),
|
||||
"interfacesSharedInformerFactory": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "SharedInformerFactory"}),
|
||||
"listOptions": c.Universe.Type(listOptions),
|
||||
"lister": c.Universe.Type(types.Name{Package: listerPackage, Name: t.Name.Name + "Lister"}),
|
||||
"namespaceAll": c.Universe.Type(metav1NamespaceAll),
|
||||
"namespaced": !tags.NonNamespaced,
|
||||
"newLister": c.Universe.Function(types.Name{Package: listerPackage, Name: "New" + t.Name.Name + "Lister"}),
|
||||
"runtimeObject": c.Universe.Type(runtimeObject),
|
||||
"timeDuration": c.Universe.Type(timeDuration),
|
||||
"type": t,
|
||||
"v1ListOptions": c.Universe.Type(v1ListOptions),
|
||||
"version": namer.IC(g.groupVersion.Version.String()),
|
||||
"watchInterface": c.Universe.Type(watchInterface),
|
||||
"apiScheme": c.Universe.Type(apiScheme),
|
||||
"cacheIndexers": c.Universe.Type(cacheIndexers),
|
||||
"cacheListWatch": c.Universe.Type(cacheListWatch),
|
||||
"cacheMetaNamespaceIndexFunc": c.Universe.Function(cacheMetaNamespaceIndexFunc),
|
||||
"cacheNamespaceIndex": c.Universe.Variable(cacheNamespaceIndex),
|
||||
"cacheNewSharedIndexInformer": c.Universe.Function(cacheNewSharedIndexInformer),
|
||||
"cacheSharedIndexInformer": c.Universe.Type(cacheSharedIndexInformer),
|
||||
"cacheToListWatcherWithWatchListSemantics": c.Universe.Function(cacheToListWatcherWithWatchListSemanticsFunc),
|
||||
"clientSetInterface": clientSetInterface,
|
||||
"contextContext": c.Universe.Type(contextContext),
|
||||
"contextBackground": c.Universe.Function(contextBackgroundFunc),
|
||||
"group": namer.IC(g.groupGoName),
|
||||
"informerFor": informerFor,
|
||||
"interfacesTweakListOptionsFunc": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "TweakListOptionsFunc"}),
|
||||
"interfacesSharedInformerFactory": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "SharedInformerFactory"}),
|
||||
"listOptions": c.Universe.Type(listOptions),
|
||||
"lister": c.Universe.Type(types.Name{Package: listerPackage, Name: t.Name.Name + "Lister"}),
|
||||
"namespaceAll": c.Universe.Type(metav1NamespaceAll),
|
||||
"namespaced": !tags.NonNamespaced,
|
||||
"newLister": c.Universe.Function(types.Name{Package: listerPackage, Name: "New" + t.Name.Name + "Lister"}),
|
||||
"runtimeObject": c.Universe.Type(runtimeObject),
|
||||
"timeDuration": c.Universe.Type(timeDuration),
|
||||
"type": t,
|
||||
"v1ListOptions": c.Universe.Type(v1ListOptions),
|
||||
"version": namer.IC(g.groupVersion.Version.String()),
|
||||
"watchInterface": c.Universe.Type(watchInterface),
|
||||
}
|
||||
|
||||
sw.Do(typeInformerInterface, m)
|
||||
@@ -148,7 +149,7 @@ var typeFilteredInformerPublicConstructor = `
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewFiltered$.type|public$Informer(client $.clientSetInterface|raw$$if .namespaced$, namespace string$end$, resyncPeriod $.timeDuration|raw$, indexers $.cacheIndexers|raw$, tweakListOptions $.interfacesTweakListOptionsFunc|raw$) $.cacheSharedIndexInformer|raw$ {
|
||||
return $.cacheNewSharedIndexInformer|raw$(
|
||||
&$.cacheListWatch|raw${
|
||||
$.cacheToListWatcherWithWatchListSemantics|raw$(&$.cacheListWatch|raw${
|
||||
ListFunc: func(options $.v1ListOptions|raw$) ($.runtimeObject|raw$, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
@@ -173,7 +174,7 @@ func NewFiltered$.type|public$Informer(client $.clientSetInterface|raw$$if .name
|
||||
}
|
||||
return client.$.group$$.version$().$.type|publicPlural$($if .namespaced$namespace$end$).Watch(ctx, options)
|
||||
},
|
||||
},
|
||||
}, client),
|
||||
&$.type|raw${},
|
||||
resyncPeriod,
|
||||
indexers,
|
||||
|
||||
@@ -19,28 +19,29 @@ package generators
|
||||
import "k8s.io/gengo/v2/types"
|
||||
|
||||
var (
|
||||
apiScheme = types.Name{Package: "k8s.io/kubernetes/pkg/api/legacyscheme", Name: "Scheme"}
|
||||
cacheGenericLister = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "GenericLister"}
|
||||
cacheIndexers = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "Indexers"}
|
||||
cacheListWatch = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "ListWatch"}
|
||||
cacheMetaNamespaceIndexFunc = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "MetaNamespaceIndexFunc"}
|
||||
cacheNamespaceIndex = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "NamespaceIndex"}
|
||||
cacheNewGenericLister = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "NewGenericLister"}
|
||||
cacheNewSharedIndexInformer = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "NewSharedIndexInformer"}
|
||||
cacheSharedIndexInformer = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "SharedIndexInformer"}
|
||||
cacheTransformFunc = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "TransformFunc"}
|
||||
contextBackgroundFunc = types.Name{Package: "context", Name: "Background"}
|
||||
contextContext = types.Name{Package: "context", Name: "Context"}
|
||||
fmtErrorfFunc = types.Name{Package: "fmt", Name: "Errorf"}
|
||||
listOptions = types.Name{Package: "k8s.io/kubernetes/pkg/apis/core", Name: "ListOptions"}
|
||||
reflectType = types.Name{Package: "reflect", Name: "Type"}
|
||||
runtimeObject = types.Name{Package: "k8s.io/apimachinery/pkg/runtime", Name: "Object"}
|
||||
schemaGroupResource = types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupResource"}
|
||||
schemaGroupVersionResource = types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupVersionResource"}
|
||||
syncMutex = types.Name{Package: "sync", Name: "Mutex"}
|
||||
timeDuration = types.Name{Package: "time", Name: "Duration"}
|
||||
v1ListOptions = types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ListOptions"}
|
||||
metav1NamespaceAll = types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "NamespaceAll"}
|
||||
metav1Object = types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "Object"}
|
||||
watchInterface = types.Name{Package: "k8s.io/apimachinery/pkg/watch", Name: "Interface"}
|
||||
apiScheme = types.Name{Package: "k8s.io/kubernetes/pkg/api/legacyscheme", Name: "Scheme"}
|
||||
cacheGenericLister = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "GenericLister"}
|
||||
cacheIndexers = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "Indexers"}
|
||||
cacheListWatch = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "ListWatch"}
|
||||
cacheMetaNamespaceIndexFunc = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "MetaNamespaceIndexFunc"}
|
||||
cacheNamespaceIndex = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "NamespaceIndex"}
|
||||
cacheNewGenericLister = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "NewGenericLister"}
|
||||
cacheNewSharedIndexInformer = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "NewSharedIndexInformer"}
|
||||
cacheSharedIndexInformer = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "SharedIndexInformer"}
|
||||
cacheTransformFunc = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "TransformFunc"}
|
||||
cacheToListWatcherWithWatchListSemanticsFunc = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "ToListWatcherWithWatchListSemantics"}
|
||||
contextBackgroundFunc = types.Name{Package: "context", Name: "Background"}
|
||||
contextContext = types.Name{Package: "context", Name: "Context"}
|
||||
fmtErrorfFunc = types.Name{Package: "fmt", Name: "Errorf"}
|
||||
listOptions = types.Name{Package: "k8s.io/kubernetes/pkg/apis/core", Name: "ListOptions"}
|
||||
reflectType = types.Name{Package: "reflect", Name: "Type"}
|
||||
runtimeObject = types.Name{Package: "k8s.io/apimachinery/pkg/runtime", Name: "Object"}
|
||||
schemaGroupResource = types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupResource"}
|
||||
schemaGroupVersionResource = types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupVersionResource"}
|
||||
syncMutex = types.Name{Package: "sync", Name: "Mutex"}
|
||||
timeDuration = types.Name{Package: "time", Name: "Duration"}
|
||||
v1ListOptions = types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ListOptions"}
|
||||
metav1NamespaceAll = types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "NamespaceAll"}
|
||||
metav1Object = types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "Object"}
|
||||
watchInterface = types.Name{Package: "k8s.io/apimachinery/pkg/watch", Name: "Interface"}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user