@@ -38,12 +38,11 @@ import (
38
38
// NameSystems returns the name system used by the generators in this package.
39
39
func NameSystems (pluralExceptions map [string ]string ) namer.NameSystems {
40
40
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 {},
47
46
}
48
47
}
49
48
@@ -82,21 +81,17 @@ func GetTargets(context *generator.Context, args *args.Args) []generator.Target
82
81
}
83
82
84
83
var gv clientgentypes.GroupVersion
85
- var internalGVPkg string
86
84
87
85
if internal {
88
86
lastSlash := strings .LastIndex (p .Path , "/" )
89
87
if lastSlash == - 1 {
90
88
klog .Fatalf ("error constructing internal group version for package %q" , p .Path )
91
89
}
92
90
gv .Group = clientgentypes .Group (p .Path [lastSlash + 1 :])
93
- internalGVPkg = p .Path
94
91
} else {
95
92
parts := strings .Split (p .Path , "/" )
96
93
gv .Group = clientgentypes .Group (parts [len (parts )- 2 ])
97
94
gv .Version = clientgentypes .Version (parts [len (parts )- 1 ])
98
-
99
- internalGVPkg = strings .Join (parts [0 :len (parts )- 1 ], "/" )
100
95
}
101
96
groupPackageName := strings .ToLower (gv .Group .NonEmpty ())
102
97
@@ -124,6 +119,7 @@ func GetTargets(context *generator.Context, args *args.Args) []generator.Target
124
119
subdir := []string {groupPackageName , strings .ToLower (gv .Version .NonEmpty ())}
125
120
outputDir := filepath .Join (args .OutputDir , filepath .Join (subdir ... ))
126
121
outputPkg := path .Join (args .OutputPkg , path .Join (subdir ... ))
122
+
127
123
targetList = append (targetList , & generator.SimpleTarget {
128
124
PkgName : strings .ToLower (gv .Version .NonEmpty ()),
129
125
PkgPath : outputPkg ,
@@ -155,13 +151,12 @@ func GetTargets(context *generator.Context, args *args.Args) []generator.Target
155
151
},
156
152
outputPackage : outputPkg ,
157
153
groupVersion : gv ,
158
- internalGVPkg : internalGVPkg ,
159
154
typeToGenerate : t ,
160
155
imports : imports .NewImportTrackerForPackage (outputPkg ),
161
- objectMeta : objectMeta ,
162
156
singleClusterListersPkg : singleClusterListersPkg ,
163
157
})
164
158
}
159
+
165
160
return generators
166
161
},
167
162
})
@@ -196,16 +191,13 @@ func isInternal(m types.Member) bool {
196
191
return ! strings .Contains (m .Tags , "json" )
197
192
}
198
193
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.
201
195
type listerGenerator struct {
202
196
generator.GoGenerator
203
197
outputPackage string
204
198
groupVersion clientgentypes.GroupVersion
205
- internalGVPkg string
206
199
typeToGenerate * types.Type
207
200
imports namer.ImportTracker
208
- objectMeta * types.Type
209
201
singleClusterListersPkg string
210
202
}
211
203
@@ -222,12 +214,13 @@ func (g *listerGenerator) Namers(c *generator.Context) namer.NameSystems {
222
214
}
223
215
224
216
func (g * listerGenerator ) Imports (c * generator.Context ) (imports []string ) {
225
- // gvAlias := util.GroupVersionAliasFromPackage(g.singleClusterListersPkg)
226
-
227
217
imports = append (imports , g .imports .ImportLines ()... )
228
218
imports = append (imports ,
229
219
`"github.com/kcp-dev/logicalcluster/v3"` ,
230
220
`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"` ,
231
224
)
232
225
return
233
226
}
@@ -248,27 +241,14 @@ func (g *listerGenerator) GenerateType(c *generator.Context, t *types.Type, w io
248
241
249
242
klog .V (5 ).Infof ("processing type %v" , t )
250
243
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" }),
268
249
}
269
250
270
251
sw .Do (typeClusterListerInterface , m )
271
-
272
252
sw .Do (typeListerStruct , m )
273
253
274
254
// no external interfaces provided, so we generate our own
@@ -299,7 +279,7 @@ var typeClusterListerInterface = `
299
279
type $.type|public$ClusterLister interface {
300
280
// List lists all $.type|publicPlural$ in the indexer.
301
281
// 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)
303
283
// Cluster returns a lister that can list and get $.type|publicPlural$ in one workspace.
304
284
Cluster(clusterName logicalcluster.Name) $.listerInterface|raw$
305
285
$.type|public$ClusterListerExpansion
@@ -308,7 +288,7 @@ type $.type|public$ClusterLister interface {
308
288
// $.type|private$ClusterLister implements the $.type|public$ClusterLister interface.
309
289
type $.type|private$ClusterLister struct {
310
290
kcplisters.ResourceClusterIndexer[*$.type|raw$]
311
- indexer $.cacheIndexer|raw$
291
+ indexer cache.Indexer
312
292
}
313
293
314
294
var _ $.type|public$ClusterLister = new($.type|private$ClusterLister)
@@ -323,18 +303,18 @@ $if .namespaced -$
323
303
$end -$
324
304
func New$.type|public$ClusterLister(indexer cache.Indexer) *$.type|private$ClusterLister {
325
305
return &$.type|private$ClusterLister{
326
- $.listersNewCluster|raw$ [*$.type|raw$](indexer, $.Resource|raw$("$.type|lowercaseSingular$")),
306
+ kcplisters.NewCluster [*$.type|raw$](indexer, $.Resource|raw$("$.type|lowercaseSingular$")),
327
307
indexer,
328
308
}
329
309
}
330
310
331
311
// Cluster scopes the lister to one workspace, allowing users to list and get $.type|publicPlural$.
332
312
func (l *$.type|private$ClusterLister) Cluster(clusterName logicalcluster.Name) $.listerInterface|raw$ {
333
313
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,
336
316
clusterName,
337
- }
317
+ }
338
318
}
339
319
`
340
320
@@ -348,7 +328,7 @@ $end -$
348
328
type $.listerInterface|raw$ interface {
349
329
// List lists all $.type|publicPlural$ in the indexer.
350
330
// 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)
352
332
$if .namespaced -$
353
333
// $.type|publicPlural$ returns a lister that can list and get $.type|publicPlural$ in one workspace and namespace.
354
334
$.type|publicPlural$(namespace string) $.namespaceListerInterface|raw$
@@ -366,7 +346,7 @@ var typeListerStruct = `
366
346
// or scope down to a $.namespaceListerInterface|raw$ for one namespace.
367
347
type $.type|private$Lister struct {
368
348
kcplisters.ResourceIndexer[*$.type|raw$]
369
- indexer $.cacheIndexer|raw$
349
+ indexer cache.Indexer
370
350
clusterName logicalcluster.Name
371
351
}
372
352
@@ -386,7 +366,7 @@ var namespaceListerInterface = `
386
366
type $.namespaceListerInterface|raw$ interface {
387
367
// List lists all $.type|publicPlural$ in the indexer.
388
368
// 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)
390
370
// Get retrieves the $.type|public$ from the indexer for a given workspace, namespace and name.
391
371
// Objects returned here must be treated as read-only.
392
372
Get(name string) (*$.type|raw$, error)
@@ -398,17 +378,17 @@ var namespaceListerStruct = `
398
378
// $.type|private$NamespaceLister implements the $.namespaceListerInterface|raw$
399
379
// interface.
400
380
type $.type|private$NamespaceLister struct {
401
- $.listersResourceIndexer|raw$ [*$.type|raw$]
381
+ kcplisters.ResourceIndexer [*$.type|raw$]
402
382
}
403
383
404
384
var _ $.namespaceListerInterface|raw$ = new($.type|private$NamespaceLister)
405
385
`
406
386
407
387
var namespaceListerConstructor = `
408
388
// 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$ {
410
390
return &$.type|private$NamespaceLister{
411
- $.listersNewNamespaced|raw$ (indexer, namespace),
391
+ kcplisters.NewNamespaced (indexer, namespace),
412
392
}
413
393
}
414
394
`
@@ -423,22 +403,22 @@ $if .namespaced -$
423
403
$end -$
424
404
func New$.type|public$Lister(indexer cache.Indexer) $.listerInterface|raw$ {
425
405
return &$.type|private$ScopedLister{
426
- $.kubeListersNew|raw$ [*$.type|raw$](indexer, $.Resource|raw$("$.type|lowercaseSingular$")),
406
+ listers.New [*$.type|raw$](indexer, $.Resource|raw$("$.type|lowercaseSingular$")),
427
407
indexer,
428
408
}
429
409
}
430
410
431
411
// $.type|private$ScopedLister can list all $.type|publicPlural$ inside a workspace
432
412
// or scope down to a $.namespaceListerInterface|raw$$if .namespaced$ for one namespace$end$.
433
413
type $.type|private$ScopedLister struct {
434
- $.kubeListersResourceIndexer|raw$ [*$.type|raw$]
435
- indexer $.cacheIndexer|raw$
414
+ listers.ResourceIndexer [*$.type|raw$]
415
+ indexer cache.Indexer
436
416
}
437
417
438
418
$if .namespaced -$
439
419
// $.type|publicPlural$ returns an object that can list and get $.type|publicPlural$ in one namespace.
440
420
func (l *$.type|private$ScopedLister) $.type|publicPlural$(namespace string) $.namespaceListerInterface|raw$ {
441
- return $.kubeListersNewNamespaced|raw$ (l.ResourceIndexer, namespace)
421
+ return listers.NewNamespaced (l.ResourceIndexer, namespace)
442
422
}
443
423
$end -$
444
424
`
0 commit comments