From 2a724dfc9cb867530e5ffa90dd32c631a7ddb55c Mon Sep 17 00:00:00 2001 From: deads2k Date: Wed, 19 Jul 2017 15:01:24 -0400 Subject: [PATCH] allow exceptions to be specified to handle conflicting group and resourc enames --- .../client-gen/generators/client_generator.go | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/staging/src/k8s.io/code-generator/cmd/client-gen/generators/client_generator.go b/staging/src/k8s.io/code-generator/cmd/client-gen/generators/client_generator.go index 185dd256946..5d314848f0d 100644 --- a/staging/src/k8s.io/code-generator/cmd/client-gen/generators/client_generator.go +++ b/staging/src/k8s.io/code-generator/cmd/client-gen/generators/client_generator.go @@ -47,7 +47,7 @@ func NameSystems() namer.NameSystems { // these exceptions are used to deconflict the generated code // you can put your fully qualified package like // to generate a name that doesn't conflict with your group. - // "k8s.io/apis/events/v1alpha1.Event": "EventResource" + // "k8s.io/apis/events/v1beta1.Event": "EventResource" }, KeyFunc: func(t *types.Type) string { return t.Name.Package + "." + t.Name.Name @@ -59,21 +59,47 @@ func NameSystems() namer.NameSystems { // these exceptions are used to deconflict the generated code // you can put your fully qualified package like // to generate a name that doesn't conflict with your group. - // "k8s.io/apis/events/v1alpha1.Event": "eventResource" + // "k8s.io/apis/events/v1beta1.Event": "eventResource" }, KeyFunc: func(t *types.Type) string { return t.Name.Package + "." + t.Name.Name }, Delegate: namer.NewPrivateNamer(0), } + publicPluralNamer := &ExceptionNamer{ + Exceptions: map[string]string{ + // these exceptions are used to deconflict the generated code + // you can put your fully qualified package like + // to generate a name that doesn't conflict with your group. + // "k8s.io/apis/events/v1beta1.Event": "EventResource" + }, + KeyFunc: func(t *types.Type) string { + return t.Name.Package + "." + t.Name.Name + }, + Delegate: namer.NewPublicPluralNamer(pluralExceptions), + } + privatePluralNamer := &ExceptionNamer{ + Exceptions: map[string]string{ + // you can put your fully qualified package like + // to generate a name that doesn't conflict with your group. + // "k8s.io/apis/events/v1beta1.Event": "eventResource" + // these exceptions are used to deconflict the generated code + "k8s.io/apis/events/v1beta1.Event": "eventResources", + "k8s.io/kubernetes/pkg/apis/events.Event": "eventResources", + }, + KeyFunc: func(t *types.Type) string { + return t.Name.Package + "." + t.Name.Name + }, + Delegate: namer.NewPrivatePluralNamer(pluralExceptions), + } return namer.NameSystems{ "singularKind": namer.NewPublicNamer(0), "public": publicNamer, "private": privateNamer, "raw": namer.NewRawNamer("", nil), - "publicPlural": namer.NewPublicPluralNamer(pluralExceptions), - "privatePlural": namer.NewPrivatePluralNamer(pluralExceptions), + "publicPlural": publicPluralNamer, + "privatePlural": privatePluralNamer, "allLowercasePlural": lowercaseNamer, "resource": NewTagOverrideNamer("resourceName", lowercaseNamer), }