Skip to content

Commit 905296f

Browse files
committed
Reduce cluster-lister-gen
Signed-off-by: Nelo-T. Wallus <[email protected]>
1 parent 126a1bc commit 905296f

File tree

1 file changed

+13
-115
lines changed

1 file changed

+13
-115
lines changed

cmd/cluster-lister-gen/generators/lister.go

Lines changed: 13 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,6 @@ func (g *listerGenerator) Imports(_ *generator.Context) (imports []string) {
221221
`kcplisters "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/listers"`,
222222
`"k8s.io/apimachinery/pkg/labels"`,
223223
`"k8s.io/client-go/tools/cache"`,
224-
`"k8s.io/client-go/listers"`,
225224
)
226225
return
227226
}
@@ -250,23 +249,6 @@ func (g *listerGenerator) GenerateType(c *generator.Context, t *types.Type, w io
250249
}
251250

252251
sw.Do(typeClusterListerInterface, m)
253-
sw.Do(typeListerStruct, m)
254-
255-
// no external interfaces provided, so we generate our own
256-
if g.singleClusterListersPkg == "" {
257-
sw.Do(typeListerInterface, m)
258-
}
259-
260-
if !tags.NonNamespaced {
261-
sw.Do(typeListerNamespaceLister, m)
262-
sw.Do(namespaceListerStruct, m)
263-
264-
if g.singleClusterListersPkg == "" {
265-
sw.Do(namespaceListerInterface, m)
266-
}
267-
268-
sw.Do(namespaceListerConstructor, m)
269-
}
270252

271253
sw.Do(scopedLister, m)
272254

@@ -289,7 +271,6 @@ type $.type|public$ClusterLister interface {
289271
// $.type|private$ClusterLister implements the $.type|public$ClusterLister interface.
290272
type $.type|private$ClusterLister struct {
291273
kcplisters.ResourceClusterIndexer[*$.type|raw$]
292-
indexer cache.Indexer
293274
}
294275
295276
var _ $.type|public$ClusterLister = new($.type|private$ClusterLister)
@@ -302,124 +283,41 @@ var _ $.type|public$ClusterLister = new($.type|private$ClusterLister)
302283
$if .namespaced -$
303284
// - has the kcpcache.ClusterAndNamespaceIndex as an index
304285
$end -$
305-
func New$.type|public$ClusterLister(indexer cache.Indexer) *$.type|private$ClusterLister {
286+
func New$.type|public$ClusterLister(indexer cache.Indexer) $.type|public$ClusterLister {
306287
return &$.type|private$ClusterLister{
307288
kcplisters.NewCluster[*$.type|raw$](indexer, $.Resource|raw$("$.type|lowercaseSingular$")),
308-
indexer,
309289
}
310290
}
311291
312-
// Cluster scopes the lister to one workspace, allowing users to list and get $.type|publicPlural$.
313292
func (l *$.type|private$ClusterLister) Cluster(clusterName logicalcluster.Name) $.listerInterface|raw$ {
314293
return &$.type|private$Lister{
315-
kcplisters.New[*$.type|raw$](l.indexer, clusterName, $.Resource|raw$("$.type|lowercaseSingular$")),
316-
l.indexer,
317-
clusterName,
294+
l.ResourceClusterIndexer.Cluster(clusterName),
318295
}
319296
}
320297
`
321298

322-
var typeListerInterface = `
323-
$if .namespaced -$
324-
// $.listerInterface|raw$ can list $.type|publicPlural$ across all namespaces, or scope down to a $.namespaceListerInterface|raw$ for one namespace.
325-
$else -$
326-
// $.listerInterface|raw$ can list all $.type|publicPlural$, or get one in particular.
327-
$end -$
328-
// All objects returned here must be treated as read-only.
329-
type $.listerInterface|raw$ interface {
330-
// List lists all $.type|publicPlural$ in the indexer.
331-
// Objects returned here must be treated as read-only.
332-
List(selector labels.Selector) (ret []*$.type|raw$, err error)
333-
$if .namespaced -$
334-
// $.type|publicPlural$ returns a lister that can list and get $.type|publicPlural$ in one workspace and namespace.
335-
$.type|publicPlural$(namespace string) $.namespaceListerInterface|raw$
336-
$else -$
337-
// Get retrieves the $.type|public$ from the indexer for a given workspace and name.
338-
// Objects returned here must be treated as read-only.
339-
Get(name string) (*$.type|raw$, error)
340-
$end -$
341-
$.type|public$ListerExpansion
342-
}
343-
`
299+
var scopedLister = `var _ $.listerInterface|raw$ = new($.type|private$Lister)
344300
345-
var typeListerStruct = `
346301
// $.type|private$Lister can list all $.type|publicPlural$ inside a workspace
347-
// or scope down to a $.namespaceListerInterface|raw$ for one namespace.
302+
// or scope down to a $.namespaceListerInterface|raw$$if .namespaced$ for one namespace$end$.
348303
type $.type|private$Lister struct {
349304
kcplisters.ResourceIndexer[*$.type|raw$]
350-
indexer cache.Indexer
351-
clusterName logicalcluster.Name
352305
}
353306
354-
var _ $.listerInterface|raw$ = new($.type|private$Lister)
355-
`
356-
357-
var typeListerNamespaceLister = `
358-
// $.type|publicPlural$ returns an object that can list and get $.type|publicPlural$ in one namespace.
359-
func (l *$.type|private$Lister) $.type|publicPlural$(namespace string) $.namespaceListerInterface|raw$ {
360-
return new$.type|public$NamespaceLister(l.ResourceIndexer, namespace)
361-
}
362-
`
363-
364-
var namespaceListerInterface = `
365-
// $.namespaceListerInterface|raw$ can list all $.type|publicPlural$, or get one in particular.
366-
// All objects returned here must be treated as read-only.
367-
type $.namespaceListerInterface|raw$ interface {
368-
// List lists all $.type|publicPlural$ in the indexer.
369-
// Objects returned here must be treated as read-only.
370-
List(selector labels.Selector) (ret []*$.type|raw$, err error)
371-
// Get retrieves the $.type|public$ from the indexer for a given workspace, namespace and name.
372-
// Objects returned here must be treated as read-only.
373-
Get(name string) (*$.type|raw$, error)
374-
$.type|public$NamespaceListerExpansion
375-
}
376-
`
377-
378-
var namespaceListerStruct = `
379-
// $.type|private$NamespaceLister implements the $.namespaceListerInterface|raw$
380-
// interface.
381-
type $.type|private$NamespaceLister struct {
382-
kcplisters.ResourceIndexer[*$.type|raw$]
383-
}
384-
385-
var _ $.namespaceListerInterface|raw$ = new($.type|private$NamespaceLister)
386-
`
387-
388-
var namespaceListerConstructor = `
389-
// new$.type|public$NamespaceLister returns a new $.namespaceListerInterface|raw$.
390-
func new$.type|public$NamespaceLister(indexer kcplisters.ResourceIndexer[*$.type|raw$], namespace string) $.namespaceListerInterface|raw$ {
391-
return &$.type|private$NamespaceLister{
392-
kcplisters.NewNamespaced(indexer, namespace),
393-
}
394-
}
395-
`
396-
397-
var scopedLister = `
398-
// New$.type|public$Lister returns a new $.listerInterface|raw$.
399-
// We assume that the indexer:
400-
// - is fed by a workspace-scoped LIST+WATCH
401-
// - uses cache.MetaNamespaceKeyFunc as the key function
402-
$if .namespaced -$
403-
// - has the cache.NamespaceIndex as an index
404-
$end -$
405-
func New$.type|public$Lister(indexer cache.Indexer) $.listerInterface|raw$ {
406-
return &$.type|private$ScopedLister{
407-
listers.New[*$.type|raw$](indexer, $.Resource|raw$("$.type|lowercaseSingular$")),
408-
indexer,
307+
// Cluster returns an object that can list and get $.type|publicPlural$
308+
// in one cluster.
309+
func (l *$.type|private$Lister) Cluster(clusterName logicalcluster.Name) $.listerInterface|raw$ {
310+
return &$.type|private$Lister{
311+
l.ResourceIndexer.Cluster(clusterName),
409312
}
410313
}
411314
412-
// $.type|private$ScopedLister can list all $.type|publicPlural$ inside a workspace
413-
// or scope down to a $.namespaceListerInterface|raw$$if .namespaced$ for one namespace$end$.
414-
type $.type|private$ScopedLister struct {
415-
listers.ResourceIndexer[*$.type|raw$]
416-
indexer cache.Indexer
417-
}
418-
419315
$if .namespaced -$
420316
// $.type|publicPlural$ returns an object that can list and get $.type|publicPlural$ in one namespace.
421-
func (l *$.type|private$ScopedLister) $.type|publicPlural$(namespace string) $.namespaceListerInterface|raw$ {
422-
return listers.NewNamespaced(l.ResourceIndexer, namespace)
317+
func (l *$.type|private$Lister) $.type|publicPlural$(namespace string) $.namespaceListerInterface|raw$ {
318+
return &$.type|private$Lister{
319+
l.ResourceIndexer.Namespace(namespace),
320+
}
423321
}
424322
$end -$
425323
`

0 commit comments

Comments
 (0)