@@ -38,12 +38,11 @@ import (
3838// NameSystems returns the name system used by the generators in this package.
3939func NameSystems (pluralExceptions map [string ]string ) namer.NameSystems {
4040 return namer.NameSystems {
41- "public" : namer .NewPublicNamer (0 ),
42- "private" : namer .NewPrivateNamer (0 ),
43- "raw" : namer .NewRawNamer ("" , nil ),
44- "publicPlural" : namer .NewPublicPluralNamer (pluralExceptions ),
45- "allLowercasePlural" : namer .NewAllLowercasePluralNamer (pluralExceptions ),
46- "lowercaseSingular" : & lowercaseSingularNamer {},
41+ "public" : namer .NewPublicNamer (0 ),
42+ "private" : namer .NewPrivateNamer (0 ),
43+ "raw" : namer .NewRawNamer ("" , nil ),
44+ "publicPlural" : namer .NewPublicPluralNamer (pluralExceptions ),
45+ "lowercaseSingular" : & lowercaseSingularNamer {},
4746 }
4847}
4948
@@ -82,21 +81,17 @@ func GetTargets(context *generator.Context, args *args.Args) []generator.Target
8281 }
8382
8483 var gv clientgentypes.GroupVersion
85- var internalGVPkg string
8684
8785 if internal {
8886 lastSlash := strings .LastIndex (p .Path , "/" )
8987 if lastSlash == - 1 {
9088 klog .Fatalf ("error constructing internal group version for package %q" , p .Path )
9189 }
9290 gv .Group = clientgentypes .Group (p .Path [lastSlash + 1 :])
93- internalGVPkg = p .Path
9491 } else {
9592 parts := strings .Split (p .Path , "/" )
9693 gv .Group = clientgentypes .Group (parts [len (parts )- 2 ])
9794 gv .Version = clientgentypes .Version (parts [len (parts )- 1 ])
98-
99- internalGVPkg = strings .Join (parts [0 :len (parts )- 1 ], "/" )
10095 }
10196 groupPackageName := strings .ToLower (gv .Group .NonEmpty ())
10297
@@ -124,6 +119,7 @@ func GetTargets(context *generator.Context, args *args.Args) []generator.Target
124119 subdir := []string {groupPackageName , strings .ToLower (gv .Version .NonEmpty ())}
125120 outputDir := filepath .Join (args .OutputDir , filepath .Join (subdir ... ))
126121 outputPkg := path .Join (args .OutputPkg , path .Join (subdir ... ))
122+
127123 targetList = append (targetList , & generator.SimpleTarget {
128124 PkgName : strings .ToLower (gv .Version .NonEmpty ()),
129125 PkgPath : outputPkg ,
@@ -155,13 +151,12 @@ func GetTargets(context *generator.Context, args *args.Args) []generator.Target
155151 },
156152 outputPackage : outputPkg ,
157153 groupVersion : gv ,
158- internalGVPkg : internalGVPkg ,
159154 typeToGenerate : t ,
160155 imports : imports .NewImportTrackerForPackage (outputPkg ),
161- objectMeta : objectMeta ,
162156 singleClusterListersPkg : singleClusterListersPkg ,
163157 })
164158 }
159+
165160 return generators
166161 },
167162 })
@@ -196,16 +191,13 @@ func isInternal(m types.Member) bool {
196191 return ! strings .Contains (m .Tags , "json" )
197192}
198193
199- // listerGenerator produces a file of listers for a given GroupVersion and
200- // type.
194+ // listerGenerator produces a file of listers for a given GroupVersion and type.
201195type listerGenerator struct {
202196 generator.GoGenerator
203197 outputPackage string
204198 groupVersion clientgentypes.GroupVersion
205- internalGVPkg string
206199 typeToGenerate * types.Type
207200 imports namer.ImportTracker
208- objectMeta * types.Type
209201 singleClusterListersPkg string
210202}
211203
@@ -222,12 +214,13 @@ func (g *listerGenerator) Namers(c *generator.Context) namer.NameSystems {
222214}
223215
224216func (g * listerGenerator ) Imports (c * generator.Context ) (imports []string ) {
225- // gvAlias := util.GroupVersionAliasFromPackage(g.singleClusterListersPkg)
226-
227217 imports = append (imports , g .imports .ImportLines ()... )
228218 imports = append (imports ,
229219 `"github.com/kcp-dev/logicalcluster/v3"` ,
230220 `kcplisters "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/listers"` ,
221+ `"k8s.io/apimachinery/pkg/labels"` ,
222+ `"k8s.io/client-go/tools/cache"` ,
223+ `"k8s.io/client-go/listers"` ,
231224 )
232225 return
233226}
@@ -248,27 +241,14 @@ func (g *listerGenerator) GenerateType(c *generator.Context, t *types.Type, w io
248241
249242 klog .V (5 ).Infof ("processing type %v" , t )
250243 m := map [string ]interface {}{
251- "namespaced" : ! tags .NonNamespaced ,
252- "Resource" : c .Universe .Function (types.Name {Package : t .Name .Package , Name : "Resource" }),
253- "labelsSelector" : c .Universe .Function (types.Name {Package : "k8s.io/apimachinery/pkg/labels" , Name : "Selector" }),
254- "listersResourceClusterIndexer" : c .Universe .Function (types.Name {Package : "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/listers" , Name : "ResourceClusterIndexer" }),
255- "listersResourceIndexer" : c .Universe .Function (types.Name {Package : "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/listers" , Name : "ResourceIndexer" }),
256- "kubeListersResourceIndexer" : c .Universe .Function (types.Name {Package : "k8s.io/client-go/listers" , Name : "ResourceIndexer" }),
257- "kubeListersNew" : c .Universe .Function (types.Name {Package : "k8s.io/client-go/listers" , Name : "New" }),
258- "kubeListersNewNamespaced" : c .Universe .Function (types.Name {Package : "k8s.io/client-go/listers" , Name : "NewNamespaced" }),
259- "listersNew" : c .Universe .Function (types.Name {Package : "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/listers" , Name : "New" }),
260- "listersNewCluster" : c .Universe .Function (types.Name {Package : "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/listers" , Name : "NewCluster" }),
261- "listersNewNamespaced" : c .Universe .Function (types.Name {Package : "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/listers" , Name : "NewNamespaced" }),
262- "cacheIndexer" : c .Universe .Type (types.Name {Package : "k8s.io/client-go/tools/cache" , Name : "Indexer" }),
263- "type" : t ,
264- "listerInterface" : c .Universe .Type (types.Name {Package : interfacesPkg , Name : t .Name .Name + "Lister" }),
265- "namespaceListerInterface" : c .Universe .Type (types.Name {Package : interfacesPkg , Name : t .Name .Name + "NamespaceLister" }),
266- "objectMeta" : g .objectMeta ,
267- "groupVersion" : util .GroupVersionAliasFromPackage (g .singleClusterListersPkg ),
244+ "type" : t ,
245+ "namespaced" : ! tags .NonNamespaced ,
246+ "Resource" : c .Universe .Function (types.Name {Package : t .Name .Package , Name : "Resource" }),
247+ "listerInterface" : c .Universe .Type (types.Name {Package : interfacesPkg , Name : t .Name .Name + "Lister" }),
248+ "namespaceListerInterface" : c .Universe .Type (types.Name {Package : interfacesPkg , Name : t .Name .Name + "NamespaceLister" }),
268249 }
269250
270251 sw .Do (typeClusterListerInterface , m )
271-
272252 sw .Do (typeListerStruct , m )
273253
274254 // no external interfaces provided, so we generate our own
@@ -299,7 +279,7 @@ var typeClusterListerInterface = `
299279type $.type|public$ClusterLister interface {
300280 // List lists all $.type|publicPlural$ in the indexer.
301281 // Objects returned here must be treated as read-only.
302- List(selector $.labelsSelector|raw$ ) (ret []*$.type|raw$, err error)
282+ List(selector labels.Selector ) (ret []*$.type|raw$, err error)
303283 // Cluster returns a lister that can list and get $.type|publicPlural$ in one workspace.
304284 Cluster(clusterName logicalcluster.Name) $.listerInterface|raw$
305285 $.type|public$ClusterListerExpansion
@@ -308,7 +288,7 @@ type $.type|public$ClusterLister interface {
308288// $.type|private$ClusterLister implements the $.type|public$ClusterLister interface.
309289type $.type|private$ClusterLister struct {
310290 kcplisters.ResourceClusterIndexer[*$.type|raw$]
311- indexer $.cacheIndexer|raw$
291+ indexer cache.Indexer
312292}
313293
314294var _ $.type|public$ClusterLister = new($.type|private$ClusterLister)
@@ -323,18 +303,18 @@ $if .namespaced -$
323303$end -$
324304func New$.type|public$ClusterLister(indexer cache.Indexer) *$.type|private$ClusterLister {
325305 return &$.type|private$ClusterLister{
326- $.listersNewCluster|raw$ [*$.type|raw$](indexer, $.Resource|raw$("$.type|lowercaseSingular$")),
306+ kcplisters.NewCluster [*$.type|raw$](indexer, $.Resource|raw$("$.type|lowercaseSingular$")),
327307 indexer,
328308 }
329309}
330310
331311// Cluster scopes the lister to one workspace, allowing users to list and get $.type|publicPlural$.
332312func (l *$.type|private$ClusterLister) Cluster(clusterName logicalcluster.Name) $.listerInterface|raw$ {
333313 return &$.type|private$Lister{
334- $.listersNew|raw$ [*$.type|raw$](l.indexer, clusterName, $.Resource|raw$("$.type|lowercaseSingular$")),
335- l.indexer,
314+ kcplisters.New [*$.type|raw$](l.indexer, clusterName, $.Resource|raw$("$.type|lowercaseSingular$")),
315+ l.indexer,
336316 clusterName,
337- }
317+ }
338318}
339319`
340320
@@ -348,7 +328,7 @@ $end -$
348328type $.listerInterface|raw$ interface {
349329 // List lists all $.type|publicPlural$ in the indexer.
350330 // Objects returned here must be treated as read-only.
351- List(selector $.labelsSelector|raw$ ) (ret []*$.type|raw$, err error)
331+ List(selector labels.Selector ) (ret []*$.type|raw$, err error)
352332$if .namespaced -$
353333 // $.type|publicPlural$ returns a lister that can list and get $.type|publicPlural$ in one workspace and namespace.
354334 $.type|publicPlural$(namespace string) $.namespaceListerInterface|raw$
@@ -366,7 +346,7 @@ var typeListerStruct = `
366346// or scope down to a $.namespaceListerInterface|raw$ for one namespace.
367347type $.type|private$Lister struct {
368348 kcplisters.ResourceIndexer[*$.type|raw$]
369- indexer $.cacheIndexer|raw$
349+ indexer cache.Indexer
370350 clusterName logicalcluster.Name
371351}
372352
@@ -386,7 +366,7 @@ var namespaceListerInterface = `
386366type $.namespaceListerInterface|raw$ interface {
387367 // List lists all $.type|publicPlural$ in the indexer.
388368 // Objects returned here must be treated as read-only.
389- List(selector $.labelsSelector|raw$ ) (ret []*$.type|raw$, err error)
369+ List(selector labels.Selector ) (ret []*$.type|raw$, err error)
390370 // Get retrieves the $.type|public$ from the indexer for a given workspace, namespace and name.
391371 // Objects returned here must be treated as read-only.
392372 Get(name string) (*$.type|raw$, error)
@@ -398,17 +378,17 @@ var namespaceListerStruct = `
398378// $.type|private$NamespaceLister implements the $.namespaceListerInterface|raw$
399379// interface.
400380type $.type|private$NamespaceLister struct {
401- $.listersResourceIndexer|raw$ [*$.type|raw$]
381+ kcplisters.ResourceIndexer [*$.type|raw$]
402382}
403383
404384var _ $.namespaceListerInterface|raw$ = new($.type|private$NamespaceLister)
405385`
406386
407387var namespaceListerConstructor = `
408388// new$.type|public$NamespaceLister returns a new $.namespaceListerInterface|raw$.
409- func new$.type|public$NamespaceLister(indexer $.listersResourceIndexer|raw$ [*$.type|raw$], namespace string) $.namespaceListerInterface|raw$ {
389+ func new$.type|public$NamespaceLister(indexer kcplisters.ResourceIndexer [*$.type|raw$], namespace string) $.namespaceListerInterface|raw$ {
410390 return &$.type|private$NamespaceLister{
411- $.listersNewNamespaced|raw$ (indexer, namespace),
391+ kcplisters.NewNamespaced (indexer, namespace),
412392 }
413393}
414394`
@@ -423,22 +403,22 @@ $if .namespaced -$
423403$end -$
424404func New$.type|public$Lister(indexer cache.Indexer) $.listerInterface|raw$ {
425405 return &$.type|private$ScopedLister{
426- $.kubeListersNew|raw$ [*$.type|raw$](indexer, $.Resource|raw$("$.type|lowercaseSingular$")),
406+ listers.New [*$.type|raw$](indexer, $.Resource|raw$("$.type|lowercaseSingular$")),
427407 indexer,
428408 }
429409}
430410
431411// $.type|private$ScopedLister can list all $.type|publicPlural$ inside a workspace
432412// or scope down to a $.namespaceListerInterface|raw$$if .namespaced$ for one namespace$end$.
433413type $.type|private$ScopedLister struct {
434- $.kubeListersResourceIndexer|raw$ [*$.type|raw$]
435- indexer $.cacheIndexer|raw$
414+ listers.ResourceIndexer [*$.type|raw$]
415+ indexer cache.Indexer
436416}
437417
438418$if .namespaced -$
439419// $.type|publicPlural$ returns an object that can list and get $.type|publicPlural$ in one namespace.
440420func (l *$.type|private$ScopedLister) $.type|publicPlural$(namespace string) $.namespaceListerInterface|raw$ {
441- return $.kubeListersNewNamespaced|raw$ (l.ResourceIndexer, namespace)
421+ return listers.NewNamespaced (l.ResourceIndexer, namespace)
442422}
443423$end -$
444424`
0 commit comments