Skip to content

Commit 5be9f2c

Browse files
stttsmjudeikis
andcommitted
Fix generators with dashed group name and group name markers
Co-authored-by: Mangirdas Judeikis <Mangirdas@Judeikis.LT> On-behalf-of: SAP mangirdas.judeikis@sap.com Signed-off-by: Dr. Stefan Schimanski <stefan.schimanski@gmail.com>
1 parent 283a0e7 commit 5be9f2c

File tree

18 files changed

+245
-201
lines changed

18 files changed

+245
-201
lines changed

pkg/generators/clientgen/clientgen.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,8 @@ func (g Generator) Generate(ctx *genall.GenerationContext) error {
226226
}
227227

228228
// adapted from https://github.com/kubernetes/kubernetes/blob/8f269d6df2a57544b73d5ca35e04451373ef334c/staging/src/k8s.io/code-generator/cmd/client-gen/types/helpers.go#L87-L103
229-
func toGroupVersionInfos(groupVersionKinds map[parser.Group]map[types.PackageVersion][]parser.Kind) []types.GroupVersionInfo {
230-
var info []types.GroupVersionInfo
229+
func toGroupVersionInfos(groupVersionKinds map[parser.Group]map[types.PackageVersion][]parser.Kind) []parser.Group {
230+
var info []parser.Group
231231
for group, versions := range groupVersionKinds {
232232
for version := range versions {
233233
info = append(info, toGroupVersionInfo(group, version))
@@ -240,12 +240,12 @@ func toGroupVersionInfos(groupVersionKinds map[parser.Group]map[types.PackageVer
240240
}
241241

242242
// adapted from https://github.com/kubernetes/kubernetes/blob/8f269d6df2a57544b73d5ca35e04451373ef334c/staging/src/k8s.io/code-generator/cmd/client-gen/types/helpers.go#L87-L103
243-
func toGroupVersionInfo(group parser.Group, version types.PackageVersion) types.GroupVersionInfo {
244-
return types.GroupVersionInfo{
243+
func toGroupVersionInfo(group parser.Group, version types.PackageVersion) parser.Group {
244+
return parser.Group{
245245
Group: group.Group,
246-
Version: types.Version(namer.IC(version.Version.String())),
246+
Version: parser.Version(namer.IC(version.Version.String())),
247247
PackageAlias: strings.ToLower(group.GoName + version.Version.NonEmpty()),
248-
GroupGoName: group.GoName,
248+
GoName: group.GoName,
249249
LowerCaseGroupGoName: namer.IL(group.GoName),
250250
}
251251
}

pkg/generators/informergen/informergen.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -146,12 +146,12 @@ func (g Generator) Generate(ctx *genall.GenerationContext) error {
146146
return err
147147
}
148148

149-
gvks := map[types.Group]map[types.Version][]parser.Kind{}
149+
gvks := map[types.Group]map[parser.Version][]parser.Kind{}
150150
for group, versions := range groupVersionKinds {
151151
for version, kinds := range versions {
152152
info := toGroupVersionInfo(group, version)
153153
if _, exists := gvks[info.Group]; !exists {
154-
gvks[info.Group] = map[types.Version][]parser.Kind{}
154+
gvks[info.Group] = map[parser.Version][]parser.Kind{}
155155
}
156156
gvks[info.Group][info.Version] = kinds
157157
}
@@ -184,9 +184,9 @@ func (g Generator) Generate(ctx *genall.GenerationContext) error {
184184
"group", group.String(),
185185
)
186186

187-
var onlyVersions []types.Version
187+
var onlyVersions []parser.Version
188188
for version := range versions {
189-
onlyVersions = append(onlyVersions, types.Version(namer.IC(version.Version.String())))
189+
onlyVersions = append(onlyVersions, parser.Version(namer.IC(version.Version.String())))
190190
}
191191
sort.Slice(onlyVersions, func(i, j int) bool {
192192
return onlyVersions[i].PackageName() < onlyVersions[j].PackageName()
@@ -246,8 +246,8 @@ func (g Generator) Generate(ctx *genall.GenerationContext) error {
246246
}
247247

248248
// adapted from https://github.com/kubernetes/kubernetes/blob/8f269d6df2a57544b73d5ca35e04451373ef334c/staging/src/k8s.io/code-generator/cmd/client-gen/types/helpers.go#L87-L103
249-
func toGroupVersionInfos(groupVersionKinds map[parser.Group]map[types.PackageVersion][]parser.Kind) []types.GroupVersionInfo {
250-
var info []types.GroupVersionInfo
249+
func toGroupVersionInfos(groupVersionKinds map[parser.Group]map[types.PackageVersion][]parser.Kind) []parser.Group {
250+
var info []parser.Group
251251
for group, versions := range groupVersionKinds {
252252
for version := range versions {
253253
info = append(info, toGroupVersionInfo(group, version))
@@ -260,12 +260,12 @@ func toGroupVersionInfos(groupVersionKinds map[parser.Group]map[types.PackageVer
260260
}
261261

262262
// adapted from https://github.com/kubernetes/kubernetes/blob/8f269d6df2a57544b73d5ca35e04451373ef334c/staging/src/k8s.io/code-generator/cmd/client-gen/types/helpers.go#L87-L103
263-
func toGroupVersionInfo(group parser.Group, version types.PackageVersion) types.GroupVersionInfo {
264-
return types.GroupVersionInfo{
263+
func toGroupVersionInfo(group parser.Group, version types.PackageVersion) parser.Group {
264+
return parser.Group{
265265
Group: group.Group,
266-
Version: types.Version(namer.IC(version.Version.String())),
267266
PackageAlias: strings.ToLower(group.GoName + version.Version.NonEmpty()),
268-
GroupGoName: group.GoName,
267+
Version: parser.Version(namer.IC(version.Version.String())),
268+
GoName: group.GoName,
269269
LowerCaseGroupGoName: namer.IL(group.GoName),
270270
}
271271
}

pkg/generators/listergen/listergen.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,12 +126,12 @@ func (g Generator) Generate(ctx *genall.GenerationContext) error {
126126
}
127127

128128
// adapted from https://github.com/kubernetes/kubernetes/blob/8f269d6df2a57544b73d5ca35e04451373ef334c/staging/src/k8s.io/code-generator/cmd/client-gen/types/helpers.go#L87-L103
129-
func toGroupVersionInfo(group parser.Group, version types.PackageVersion) types.GroupVersionInfo {
130-
return types.GroupVersionInfo{
129+
func toGroupVersionInfo(group parser.Group, version types.PackageVersion) parser.Group {
130+
return parser.Group{
131131
Group: group.Group,
132-
Version: types.Version(namer.IC(version.Version.String())),
132+
Version: parser.Version(namer.IC(version.Version.String())),
133133
PackageAlias: strings.ToLower(group.GoName + version.Version.NonEmpty()),
134-
GroupGoName: group.GoName,
134+
GoName: group.GoName,
135135
LowerCaseGroupGoName: namer.IL(group.GoName),
136136
}
137137
}

pkg/internal/clientgen/clientset.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import (
55
"strings"
66
"text/template"
77

8-
"k8s.io/code-generator/cmd/client-gen/types"
9-
8+
"github.com/kcp-dev/code-generator/v2/pkg/parser"
109
"github.com/kcp-dev/code-generator/v2/pkg/util"
1110
)
1211

@@ -15,7 +14,7 @@ type ClientSet struct {
1514
Name string
1615

1716
// Groups are the groups in this client-set.
18-
Groups []types.GroupVersionInfo
17+
Groups []parser.Group
1918

2019
// PackagePath is the package under which this client-set will be exposed.
2120
// TODO(skuznets) we should be able to figure this out from the output dir, ideally
@@ -38,6 +37,7 @@ func (c *ClientSet) WriteContent(w io.Writer) error {
3837

3938
m := map[string]interface{}{
4039
"name": c.Name,
40+
"packageName": strings.ReplaceAll(c.Name, "-", ""),
4141
"packagePath": c.PackagePath,
4242
"groups": c.Groups,
4343
"singleClusterClientPackagePath": c.SingleClusterClientPackagePath,
@@ -51,7 +51,7 @@ var clientset = `
5151
5252
// Code generated by kcp code-generator. DO NOT EDIT.
5353
54-
package {{.name}}
54+
package {{.packageName}}
5555
5656
import (
5757
"fmt"
@@ -66,22 +66,22 @@ import (
6666
"k8s.io/client-go/rest"
6767
"k8s.io/client-go/util/flowcontrol"
6868
69-
{{range .groups}} {{.PackageAlias}} "{{$.packagePath}}/typed/{{.Group.PackageName}}/{{.Version.PackageName}}"
69+
{{range .groups}} {{.GoPackageAlias}} "{{$.packagePath}}/typed/{{.PackageName}}/{{.Version.PackageName}}"
7070
{{end -}}
7171
)
7272
7373
type ClusterInterface interface {
7474
Cluster(logicalcluster.Path) client.Interface
7575
Discovery() discovery.DiscoveryInterface
76-
{{range .groups}} {{.GroupGoName}}{{.Version}}() {{.PackageAlias}}.{{.GroupGoName}}{{.Version}}ClusterInterface
76+
{{range .groups}} {{.GroupGoName}}{{.Version}}() {{.GoPackageAlias}}.{{.GroupGoName}}{{.Version}}ClusterInterface
7777
{{end -}}
7878
}
7979
8080
// ClusterClientset contains the clients for groups.
8181
type ClusterClientset struct {
8282
*discovery.DiscoveryClient
8383
clientCache kcpclient.Cache[*client.Clientset]
84-
{{range .groups}} {{.LowerCaseGroupGoName}}{{.Version}} *{{.PackageAlias}}.{{.GroupGoName}}{{.Version}}ClusterClient
84+
{{range .groups}} {{.GroupGoNameLower}}{{.Version}} *{{.GoPackageAlias}}.{{.GroupGoName}}{{.Version}}ClusterClient
8585
{{end -}}
8686
}
8787
@@ -95,8 +95,8 @@ func (c *ClusterClientset) Discovery() discovery.DiscoveryInterface {
9595
9696
{{range .groups}}
9797
// {{.GroupGoName}}{{.Version}} retrieves the {{.GroupGoName}}{{.Version}}ClusterClient.
98-
func (c *ClusterClientset) {{.GroupGoName}}{{.Version}}() {{.PackageAlias}}.{{.GroupGoName}}{{.Version}}ClusterInterface {
99-
return c.{{.LowerCaseGroupGoName}}{{.Version}}
98+
func (c *ClusterClientset) {{.GroupGoName}}{{.Version}}() {{.GoPackageAlias}}.{{.GroupGoName}}{{.Version}}ClusterInterface {
99+
return c.{{.GroupGoNameLower}}{{.Version}}
100100
}
101101
{{end -}}
102102
@@ -152,7 +152,7 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*ClusterCli
152152
var cs ClusterClientset
153153
cs.clientCache = cache
154154
var err error
155-
{{range .groups}} cs.{{.LowerCaseGroupGoName}}{{.Version}}, err = {{.PackageAlias}}.NewForConfigAndClient(&configShallowCopy, httpClient)
155+
{{range .groups}} cs.{{.GroupGoNameLower}}{{.Version}}, err = {{.GoPackageAlias}}.NewForConfigAndClient(&configShallowCopy, httpClient)
156156
if err != nil {
157157
return nil, err
158158
}

pkg/internal/clientgen/fake_clientset.go

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import (
55
"strings"
66
"text/template"
77

8-
"k8s.io/code-generator/cmd/client-gen/types"
9-
8+
"github.com/kcp-dev/code-generator/v2/pkg/parser"
109
"github.com/kcp-dev/code-generator/v2/pkg/util"
1110
)
1211

@@ -15,7 +14,7 @@ type FakeClientset struct {
1514
Name string
1615

1716
// Groups are the groups in this client-set.
18-
Groups []types.GroupVersionInfo
17+
Groups []parser.Group
1918

2019
// PackagePath is the package under which this client-set will be exposed.
2120
// TODO(skuznets) we should be able to figure this out from the output dir, ideally
@@ -65,11 +64,11 @@ import (
6564
clientscheme "{{.singleClusterClientPackagePath}}/scheme"
6665
6766
kcpclient "{{.packagePath}}"
68-
{{range .groups}} {{.PackageAlias}} "{{$.singleClusterClientPackagePath}}/typed/{{.Group.PackageName}}/{{.Version.PackageName}}"
67+
{{range .groups}} {{.GoPackageAlias}} "{{$.singleClusterClientPackagePath}}/typed/{{.PackageName}}/{{.Version.PackageName}}"
6968
{{end -}}
70-
{{range .groups}} kcp{{.PackageAlias}} "{{$.packagePath}}/typed/{{.Group.PackageName}}/{{.Version.PackageName}}"
69+
{{range .groups}} kcp{{.GoPackageAlias}} "{{$.packagePath}}/typed/{{.PackageName}}/{{.Version.PackageName}}"
7170
{{end -}}
72-
{{range .groups}} fake{{.PackageAlias}} "{{$.packagePath}}/typed/{{.Group.PackageName}}/{{.Version.PackageName}}/fake"
71+
{{range .groups}} fake{{.GoPackageAlias}} "{{$.packagePath}}/typed/{{.PackageName}}/{{.Version.PackageName}}/fake"
7372
{{end -}}
7473
)
7574
@@ -109,8 +108,8 @@ func (c *ClusterClientset) Tracker() kcptesting.ObjectTracker {
109108
110109
{{range .groups}}
111110
// {{.GroupGoName}}{{.Version}} retrieves the {{.GroupGoName}}{{.Version}}ClusterClient.
112-
func (c *ClusterClientset) {{.GroupGoName}}{{.Version}}() kcp{{.PackageAlias}}.{{.GroupGoName}}{{.Version}}ClusterInterface {
113-
return &fake{{.PackageAlias}}.{{.GroupGoName}}{{.Version}}ClusterClient{Fake: c.Fake}
111+
func (c *ClusterClientset) {{.GroupGoName}}{{.Version}}() kcp{{.GoPackageAlias}}.{{.GroupGoName}}{{.Version}}ClusterInterface {
112+
return &fake{{.GoPackageAlias}}.{{.GroupGoName}}{{.Version}}ClusterClient{Fake: c.Fake}
114113
}
115114
{{end -}}
116115
@@ -148,8 +147,8 @@ func (c *Clientset) Tracker() kcptesting.ScopedObjectTracker {
148147
149148
{{range .groups}}
150149
// {{.GroupGoName}}{{.Version}} retrieves the {{.GroupGoName}}{{.Version}}Client.
151-
func (c *Clientset) {{.GroupGoName}}{{.Version}}() {{.PackageAlias}}.{{.GroupGoName}}{{.Version}}Interface {
152-
return &fake{{.PackageAlias}}.{{.GroupGoName}}{{.Version}}Client{Fake: c.Fake, ClusterPath: c.clusterPath}
150+
func (c *Clientset) {{.GroupGoName}}{{.Version}}() {{.GoPackageAlias}}.{{.GroupGoName}}{{.Version}}Interface {
151+
return &fake{{.GoPackageAlias}}.{{.GroupGoName}}{{.Version}}Client{Fake: c.Fake, ClusterPath: c.clusterPath}
153152
}
154153
{{end -}}
155154
`

pkg/internal/clientgen/fake_group.go

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,13 @@ import (
55
"strings"
66
"text/template"
77

8-
"k8s.io/code-generator/cmd/client-gen/types"
9-
108
"github.com/kcp-dev/code-generator/v2/pkg/parser"
119
"github.com/kcp-dev/code-generator/v2/pkg/util"
1210
)
1311

1412
type FakeGroup struct {
1513
// Group is the group in this client.
16-
Group types.GroupVersionInfo
14+
Group parser.Group
1715

1816
// Kinds are the kinds in the group.
1917
Kinds []parser.Kind
@@ -59,30 +57,30 @@ import (
5957
"github.com/kcp-dev/logicalcluster/v3"
6058
6159
"k8s.io/client-go/rest"
62-
kcp{{.group.PackageAlias}} "{{.packagePath}}/typed/{{.group.Group.PackageName}}/{{.group.Version.PackageName}}"
63-
{{.group.PackageAlias}} "{{.singleClusterClientPackagePath}}/typed/{{.group.Group.PackageName}}/{{.group.Version.PackageName}}"
60+
kcp{{.group.GoPackageAlias}} "{{.packagePath}}/typed/{{.group.PackageName}}/{{.group.Version.PackageName}}"
61+
{{.group.GoPackageAlias}} "{{.singleClusterClientPackagePath}}/typed/{{.group.PackageName}}/{{.group.Version.PackageName}}"
6462
)
6563
66-
var _ kcp{{.group.PackageAlias}}.{{.group.GroupGoName}}{{.group.Version}}ClusterInterface = (*{{.group.GroupGoName}}{{.group.Version}}ClusterClient)(nil)
64+
var _ kcp{{.group.GoPackageAlias}}.{{.group.GroupGoName}}{{.group.Version}}ClusterInterface = (*{{.group.GroupGoName}}{{.group.Version}}ClusterClient)(nil)
6765
6866
type {{.group.GroupGoName}}{{.group.Version}}ClusterClient struct {
6967
*kcptesting.Fake
7068
}
7169
72-
func (c *{{.group.GroupGoName}}{{.group.Version}}ClusterClient) Cluster(clusterPath logicalcluster.Path) {{.group.PackageAlias}}.{{.group.GroupGoName}}{{.group.Version}}Interface {
70+
func (c *{{.group.GroupGoName}}{{.group.Version}}ClusterClient) Cluster(clusterPath logicalcluster.Path) {{.group.GoPackageAlias}}.{{.group.GroupGoName}}{{.group.Version}}Interface {
7371
if clusterPath == logicalcluster.Wildcard {
7472
panic("A specific cluster must be provided when scoping, not the wildcard.")
7573
}
7674
return &{{.group.GroupGoName}}{{.group.Version}}Client{Fake: c.Fake, ClusterPath: clusterPath}
7775
}
7876
7977
{{ range .kinds}}
80-
func (c *{{$.group.GroupGoName}}{{$.group.Version}}ClusterClient) {{.Plural}}() kcp{{$.group.PackageAlias}}.{{.String}}ClusterInterface {
78+
func (c *{{$.group.GroupGoName}}{{$.group.Version}}ClusterClient) {{.Plural}}() kcp{{$.group.GoPackageAlias}}.{{.String}}ClusterInterface {
8179
return &{{.Plural | lowerFirst}}ClusterClient{Fake: c.Fake}
8280
}
8381
{{end -}}
8482
85-
var _ {{.group.PackageAlias}}.{{.group.GroupGoName}}{{.group.Version}}Interface = (*{{.group.GroupGoName}}{{.group.Version}}Client)(nil)
83+
var _ {{.group.GoPackageAlias}}.{{.group.GroupGoName}}{{.group.Version}}Interface = (*{{.group.GroupGoName}}{{.group.Version}}Client)(nil)
8684
8785
type {{.group.GroupGoName}}{{.group.Version}}Client struct {
8886
*kcptesting.Fake
@@ -95,7 +93,7 @@ func (c *{{.group.GroupGoName}}{{.group.Version}}Client) RESTClient() rest.Inter
9593
}
9694
9795
{{ range .kinds}}
98-
func (c *{{$.group.GroupGoName}}{{$.group.Version}}Client) {{.Plural}}({{if .IsNamespaced}}namespace string{{end}}) {{$.group.PackageAlias}}.{{.String}}Interface {
96+
func (c *{{$.group.GroupGoName}}{{$.group.Version}}Client) {{.Plural}}({{if .IsNamespaced}}namespace string{{end}}) {{$.group.GoPackageAlias}}.{{.String}}Interface {
9997
return &{{.Plural | lowerFirst}}Client{Fake: c.Fake, ClusterPath: c.ClusterPath{{if .IsNamespaced}}, Namespace: namespace{{end}}}
10098
}
10199
{{end -}}

0 commit comments

Comments
 (0)