mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-26 21:17:23 +00:00
Client-gen: handle dotted package name
This commit is contained in:
parent
d800dca7f8
commit
08fc35018a
@ -88,7 +88,7 @@ func packageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packag
|
|||||||
OptionalName: strings.ToLower(c.Namers["private"].Name(t)),
|
OptionalName: strings.ToLower(c.Namers["private"].Name(t)),
|
||||||
},
|
},
|
||||||
outputPackage: outputPackagePath,
|
outputPackage: outputPackagePath,
|
||||||
group: gv.Group,
|
group: normalization.BeforeFirstDot(gv.Group),
|
||||||
typeToMatch: t,
|
typeToMatch: t,
|
||||||
imports: generator.NewImportTracker(),
|
imports: generator.NewImportTracker(),
|
||||||
})
|
})
|
||||||
@ -96,7 +96,7 @@ func packageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packag
|
|||||||
|
|
||||||
generators = append(generators, &genGroup{
|
generators = append(generators, &genGroup{
|
||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: gv.Group + "_client",
|
OptionalName: normalization.BeforeFirstDot(gv.Group) + "_client",
|
||||||
},
|
},
|
||||||
outputPackage: outputPackagePath,
|
outputPackage: outputPackagePath,
|
||||||
group: gv.Group,
|
group: gv.Group,
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
clientgenargs "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/args"
|
clientgenargs "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/args"
|
||||||
|
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/normalization"
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/generator"
|
"k8s.io/kubernetes/cmd/libs/go2idl/generator"
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/types"
|
"k8s.io/kubernetes/cmd/libs/go2idl/types"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
@ -53,7 +54,7 @@ func PackageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packag
|
|||||||
OptionalName: "fake_" + strings.ToLower(c.Namers["private"].Name(t)),
|
OptionalName: "fake_" + strings.ToLower(c.Namers["private"].Name(t)),
|
||||||
},
|
},
|
||||||
outputPackage: outputPackagePath,
|
outputPackage: outputPackagePath,
|
||||||
group: gv.Group,
|
group: normalization.BeforeFirstDot(gv.Group),
|
||||||
typeToMatch: t,
|
typeToMatch: t,
|
||||||
imports: generator.NewImportTracker(),
|
imports: generator.NewImportTracker(),
|
||||||
})
|
})
|
||||||
@ -65,7 +66,7 @@ func PackageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packag
|
|||||||
},
|
},
|
||||||
outputPackage: outputPackagePath,
|
outputPackage: outputPackagePath,
|
||||||
realClientPath: realClientPath,
|
realClientPath: realClientPath,
|
||||||
group: gv.Group,
|
group: normalization.BeforeFirstDot(gv.Group),
|
||||||
types: typeList,
|
types: typeList,
|
||||||
imports: generator.NewImportTracker(),
|
imports: generator.NewImportTracker(),
|
||||||
})
|
})
|
||||||
|
@ -59,6 +59,7 @@ func (g *genClientset) Imports(c *generator.Context) (imports []string) {
|
|||||||
group := normalization.Group(gv.Group)
|
group := normalization.Group(gv.Group)
|
||||||
version := normalization.Version(gv.Version)
|
version := normalization.Version(gv.Version)
|
||||||
typedClientPath := filepath.Join(g.typedClientPath, group, version)
|
typedClientPath := filepath.Join(g.typedClientPath, group, version)
|
||||||
|
group = normalization.BeforeFirstDot(group)
|
||||||
imports = append(imports, fmt.Sprintf("%s%s \"%s\"", version, group, typedClientPath))
|
imports = append(imports, fmt.Sprintf("%s%s \"%s\"", version, group, typedClientPath))
|
||||||
imports = append(imports, "github.com/golang/glog")
|
imports = append(imports, "github.com/golang/glog")
|
||||||
}
|
}
|
||||||
@ -79,7 +80,7 @@ func (g *genClientset) GenerateType(c *generator.Context, t *types.Type, w io.Wr
|
|||||||
|
|
||||||
allGroups := []arg{}
|
allGroups := []arg{}
|
||||||
for _, gv := range g.groupVersions {
|
for _, gv := range g.groupVersions {
|
||||||
group := normalization.Group(gv.Group)
|
group := normalization.BeforeFirstDot(normalization.Group(gv.Group))
|
||||||
version := normalization.Version(gv.Version)
|
version := normalization.Version(gv.Version)
|
||||||
allGroups = append(allGroups, arg{namer.IC(group), version + group})
|
allGroups = append(allGroups, arg{namer.IC(group), version + group})
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ package generators
|
|||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
|
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/normalization"
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/generator"
|
"k8s.io/kubernetes/cmd/libs/go2idl/generator"
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/namer"
|
"k8s.io/kubernetes/cmd/libs/go2idl/namer"
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/types"
|
"k8s.io/kubernetes/cmd/libs/go2idl/types"
|
||||||
@ -71,8 +72,8 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
|
|||||||
}
|
}
|
||||||
|
|
||||||
m := map[string]interface{}{
|
m := map[string]interface{}{
|
||||||
"group": g.group,
|
"group": normalization.BeforeFirstDot(g.group),
|
||||||
"Group": namer.IC(g.group),
|
"Group": namer.IC(normalization.BeforeFirstDot(g.group)),
|
||||||
"canonicalGroup": canonize(g.group),
|
"canonicalGroup": canonize(g.group),
|
||||||
"types": g.types,
|
"types": g.types,
|
||||||
"Config": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Config"}),
|
"Config": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Config"}),
|
||||||
@ -89,7 +90,7 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
|
|||||||
for _, t := range g.types {
|
for _, t := range g.types {
|
||||||
wrapper := map[string]interface{}{
|
wrapper := map[string]interface{}{
|
||||||
"type": t,
|
"type": t,
|
||||||
"Group": namer.IC(g.group),
|
"Group": namer.IC(normalization.BeforeFirstDot(g.group)),
|
||||||
}
|
}
|
||||||
namespaced := !(types.ExtractCommentTags("+", t.SecondClosestCommentLines)["nonNamespaced"] == "true")
|
namespaced := !(types.ExtractCommentTags("+", t.SecondClosestCommentLines)["nonNamespaced"] == "true")
|
||||||
if namespaced {
|
if namespaced {
|
||||||
|
@ -16,7 +16,11 @@ limitations under the License.
|
|||||||
|
|
||||||
package normalization
|
package normalization
|
||||||
|
|
||||||
import "k8s.io/kubernetes/pkg/api/unversioned"
|
import (
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
|
)
|
||||||
|
|
||||||
func Group(group string) string {
|
func Group(group string) string {
|
||||||
if group == "api" {
|
if group == "api" {
|
||||||
@ -35,3 +39,7 @@ func Version(version string) string {
|
|||||||
func GroupVersion(gv unversioned.GroupVersion) unversioned.GroupVersion {
|
func GroupVersion(gv unversioned.GroupVersion) unversioned.GroupVersion {
|
||||||
return unversioned.GroupVersion{Group: Group(gv.Group), Version: Version(gv.Version)}
|
return unversioned.GroupVersion{Group: Group(gv.Group), Version: Version(gv.Version)}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func BeforeFirstDot(dotted string) string {
|
||||||
|
return strings.Split(dotted, ".")[0]
|
||||||
|
}
|
||||||
|
@ -92,12 +92,12 @@ func main() {
|
|||||||
|
|
||||||
if *test {
|
if *test {
|
||||||
arguments.InputDirs = append(dependencies, []string{
|
arguments.InputDirs = append(dependencies, []string{
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup",
|
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup.k8s.io",
|
||||||
}...)
|
}...)
|
||||||
arguments.CustomArgs = clientgenargs.Args{
|
arguments.CustomArgs = clientgenargs.Args{
|
||||||
GroupVersions: []unversioned.GroupVersion{{Group: "testgroup", Version: ""}},
|
GroupVersions: []unversioned.GroupVersion{{Group: "testgroup.k8s.io", Version: ""}},
|
||||||
GroupVersionToInputPath: map[unversioned.GroupVersion]string{
|
GroupVersionToInputPath: map[unversioned.GroupVersion]string{
|
||||||
unversioned.GroupVersion{Group: "testgroup", Version: ""}: "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup",
|
unversioned.GroupVersion{Group: "testgroup.k8s.io", Version: ""}: "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup.k8s.io",
|
||||||
},
|
},
|
||||||
ClientsetName: "test_internalclientset",
|
ClientsetName: "test_internalclientset",
|
||||||
ClientsetOutputPath: "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/",
|
ClientsetOutputPath: "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/",
|
||||||
|
@ -23,8 +23,8 @@ import (
|
|||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
|
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup"
|
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup.k8s.io"
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup/v1"
|
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup.k8s.io/v1"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/meta"
|
"k8s.io/kubernetes/pkg/api/meta"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
@ -34,11 +34,11 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/util/sets"
|
"k8s.io/kubernetes/pkg/util/sets"
|
||||||
)
|
)
|
||||||
|
|
||||||
const importPrefix = "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup"
|
const importPrefix = "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup.k8s.io"
|
||||||
|
|
||||||
var accessor = meta.NewAccessor()
|
var accessor = meta.NewAccessor()
|
||||||
|
|
||||||
const groupName = "testgroup"
|
const groupName = "testgroup.k8s.io"
|
||||||
|
|
||||||
// availableVersions lists all known external versions for this group from most preferred to least preferred
|
// availableVersions lists all known external versions for this group from most preferred to least preferred
|
||||||
var availableVersions = []unversioned.GroupVersion{{Group: groupName, Version: "v1"}}
|
var availableVersions = []unversioned.GroupVersion{{Group: groupName, Version: "v1"}}
|
@ -22,7 +22,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
var SchemeGroupVersion = unversioned.GroupVersion{Group: "testgroup", Version: runtime.APIVersionInternal}
|
var SchemeGroupVersion = unversioned.GroupVersion{Group: "testgroup.k8s.io", Version: runtime.APIVersionInternal}
|
||||||
|
|
||||||
func AddToScheme(scheme *runtime.Scheme) {
|
func AddToScheme(scheme *runtime.Scheme) {
|
||||||
// Add the API to Scheme.
|
// Add the API to Scheme.
|
@ -23,7 +23,7 @@ import (
|
|||||||
versionedwatch "k8s.io/kubernetes/pkg/watch/versioned"
|
versionedwatch "k8s.io/kubernetes/pkg/watch/versioned"
|
||||||
)
|
)
|
||||||
|
|
||||||
var SchemeGroupVersion = unversioned.GroupVersion{Group: "testgroup", Version: "v1"}
|
var SchemeGroupVersion = unversioned.GroupVersion{Group: "testgroup.k8s.io", Version: "v1"}
|
||||||
|
|
||||||
func AddToScheme(scheme *runtime.Scheme) {
|
func AddToScheme(scheme *runtime.Scheme) {
|
||||||
// Add the API to Scheme.
|
// Add the API to Scheme.
|
@ -21,9 +21,9 @@ import (
|
|||||||
"net/url"
|
"net/url"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup"
|
testgroup "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup.k8s.io"
|
||||||
_ "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup/install"
|
_ "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup.k8s.io/install"
|
||||||
. "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup/unversioned"
|
. "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
@ -19,7 +19,7 @@ package apiserver
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup/v1"
|
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup.k8s.io/v1"
|
||||||
testgroupetcd "k8s.io/kubernetes/examples/apiserver/rest"
|
testgroupetcd "k8s.io/kubernetes/examples/apiserver/rest"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/rest"
|
"k8s.io/kubernetes/pkg/api/rest"
|
||||||
@ -29,7 +29,7 @@ import (
|
|||||||
etcdstorage "k8s.io/kubernetes/pkg/storage/etcd"
|
etcdstorage "k8s.io/kubernetes/pkg/storage/etcd"
|
||||||
|
|
||||||
// Install the testgroup API
|
// Install the testgroup API
|
||||||
_ "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup/install"
|
_ "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup.k8s.io/install"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -24,7 +24,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup/v1"
|
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup.k8s.io/v1"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
@ -107,7 +107,7 @@ func testAPIGroupList(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testAPIGroup(t *testing.T) {
|
func testAPIGroup(t *testing.T) {
|
||||||
serverURL := serverIP + "/apis/testgroup"
|
serverURL := serverIP + "/apis/testgroup.k8s.io"
|
||||||
contents, err := readResponse(serverURL)
|
contents, err := readResponse(serverURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("%v", err)
|
t.Fatalf("%v", err)
|
||||||
@ -126,7 +126,7 @@ func testAPIGroup(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testAPIResourceList(t *testing.T) {
|
func testAPIResourceList(t *testing.T) {
|
||||||
serverURL := serverIP + "/apis/testgroup/v1"
|
serverURL := serverIP + "/apis/testgroup.k8s.io/v1"
|
||||||
contents, err := readResponse(serverURL)
|
contents, err := readResponse(serverURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("%v", err)
|
t.Fatalf("%v", err)
|
||||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||||||
package rest
|
package rest
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup"
|
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testdata/apis/testgroup.k8s.io"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/fields"
|
"k8s.io/kubernetes/pkg/fields"
|
||||||
"k8s.io/kubernetes/pkg/labels"
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
|
Loading…
Reference in New Issue
Block a user