mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 13:37:30 +00:00
client-gen: general cleanup
This commit is contained in:
parent
0834ff7943
commit
49c536baee
@ -61,11 +61,11 @@ func generatedBy(customArgs clientgenargs.Args) string {
|
|||||||
return fmt.Sprintf("\n// This package is generated by client-gen with the default arguments.\n\n")
|
return fmt.Sprintf("\n// This package is generated by client-gen with the default arguments.\n\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, packageBasePath string, apiPath string, srcTreePath string, inputPath string, boilerplate []byte, generatedBy string) generator.Package {
|
func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clientsetPackage string, apiPath string, srcTreePath string, inputPackage string, boilerplate []byte, generatedBy string) generator.Package {
|
||||||
outputPackagePath := strings.ToLower(filepath.Join(packageBasePath, gv.Group.NonEmpty(), gv.Version.NonEmpty()))
|
groupVersionClientPackage := strings.ToLower(filepath.Join(clientsetPackage, "typed", gv.Group.NonEmpty(), gv.Version.NonEmpty()))
|
||||||
return &generator.DefaultPackage{
|
return &generator.DefaultPackage{
|
||||||
PackageName: strings.ToLower(gv.Version.NonEmpty()),
|
PackageName: strings.ToLower(gv.Version.NonEmpty()),
|
||||||
PackagePath: outputPackagePath,
|
PackagePath: groupVersionClientPackage,
|
||||||
HeaderText: boilerplate,
|
HeaderText: boilerplate,
|
||||||
PackageDocumentation: []byte(
|
PackageDocumentation: []byte(
|
||||||
generatedBy +
|
generatedBy +
|
||||||
@ -85,7 +85,7 @@ func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, pac
|
|||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: strings.ToLower(c.Namers["private"].Name(t)),
|
OptionalName: strings.ToLower(c.Namers["private"].Name(t)),
|
||||||
},
|
},
|
||||||
outputPackage: outputPackagePath,
|
outputPackage: groupVersionClientPackage,
|
||||||
group: gv.Group.NonEmpty(),
|
group: gv.Group.NonEmpty(),
|
||||||
version: gv.Version.String(),
|
version: gv.Version.String(),
|
||||||
typeToMatch: t,
|
typeToMatch: t,
|
||||||
@ -97,8 +97,8 @@ func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, pac
|
|||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: gv.Group.NonEmpty() + "_client",
|
OptionalName: gv.Group.NonEmpty() + "_client",
|
||||||
},
|
},
|
||||||
outputPackage: outputPackagePath,
|
outputPackage: groupVersionClientPackage,
|
||||||
inputPacakge: inputPath,
|
inputPackage: inputPackage,
|
||||||
group: gv.Group.NonEmpty(),
|
group: gv.Group.NonEmpty(),
|
||||||
version: gv.Version.String(),
|
version: gv.Version.String(),
|
||||||
apiPath: apiPath,
|
apiPath: apiPath,
|
||||||
@ -108,7 +108,7 @@ func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, pac
|
|||||||
|
|
||||||
expansionFileName := "generated_expansion"
|
expansionFileName := "generated_expansion"
|
||||||
generators = append(generators, &genExpansion{
|
generators = append(generators, &genExpansion{
|
||||||
groupPath: filepath.Join(srcTreePath, outputPackagePath),
|
groupPackagePath: filepath.Join(srcTreePath, groupVersionClientPackage),
|
||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: expansionFileName,
|
OptionalName: expansionFileName,
|
||||||
},
|
},
|
||||||
@ -123,10 +123,10 @@ func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, pac
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func packageForClientset(customArgs clientgenargs.Args, typedClientBasePath string, boilerplate []byte, generatedBy string) generator.Package {
|
func packageForClientset(customArgs clientgenargs.Args, clientsetPackage string, boilerplate []byte, generatedBy string) generator.Package {
|
||||||
return &generator.DefaultPackage{
|
return &generator.DefaultPackage{
|
||||||
PackageName: customArgs.ClientsetName,
|
PackageName: customArgs.ClientsetName,
|
||||||
PackagePath: filepath.Join(customArgs.ClientsetOutputPath, customArgs.ClientsetName),
|
PackagePath: clientsetPackage,
|
||||||
HeaderText: boilerplate,
|
HeaderText: boilerplate,
|
||||||
PackageDocumentation: []byte(
|
PackageDocumentation: []byte(
|
||||||
generatedBy +
|
generatedBy +
|
||||||
@ -143,10 +143,10 @@ func packageForClientset(customArgs clientgenargs.Args, typedClientBasePath stri
|
|||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: "clientset",
|
OptionalName: "clientset",
|
||||||
},
|
},
|
||||||
groups: customArgs.Groups,
|
groups: customArgs.Groups,
|
||||||
typedClientPath: typedClientBasePath,
|
clientsetPackage: clientsetPackage,
|
||||||
outputPackage: customArgs.ClientsetName,
|
outputPackage: customArgs.ClientsetName,
|
||||||
imports: generator.NewImportTracker(),
|
imports: generator.NewImportTracker(),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
return generators
|
return generators
|
||||||
@ -201,11 +201,11 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
|
|||||||
}
|
}
|
||||||
|
|
||||||
var packageList []generator.Package
|
var packageList []generator.Package
|
||||||
typedClientBasePath := filepath.Join(customArgs.ClientsetOutputPath, customArgs.ClientsetName, "typed")
|
clientsetPackage := filepath.Join(customArgs.ClientsetOutputPath, customArgs.ClientsetName)
|
||||||
|
|
||||||
packageList = append(packageList, packageForClientset(customArgs, typedClientBasePath, boilerplate, generatedBy))
|
packageList = append(packageList, packageForClientset(customArgs, clientsetPackage, boilerplate, generatedBy))
|
||||||
if customArgs.FakeClient {
|
if customArgs.FakeClient {
|
||||||
packageList = append(packageList, fake.PackageForClientset(customArgs, typedClientBasePath, boilerplate, generatedBy))
|
packageList = append(packageList, fake.PackageForClientset(customArgs, clientsetPackage, boilerplate, generatedBy))
|
||||||
}
|
}
|
||||||
|
|
||||||
// If --clientset-only=true, we don't regenerate the individual typed clients.
|
// If --clientset-only=true, we don't regenerate the individual typed clients.
|
||||||
@ -219,9 +219,9 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
|
|||||||
gv := clientgentypes.GroupVersion{Group: group.Group, Version: version}
|
gv := clientgentypes.GroupVersion{Group: group.Group, Version: version}
|
||||||
types := gvToTypes[gv]
|
types := gvToTypes[gv]
|
||||||
inputPath := customArgs.GroupVersionToInputPath[gv]
|
inputPath := customArgs.GroupVersionToInputPath[gv]
|
||||||
packageList = append(packageList, packageForGroup(gv, orderer.OrderTypes(types), typedClientBasePath, customArgs.ClientsetAPIPath, arguments.OutputBase, inputPath, boilerplate, generatedBy))
|
packageList = append(packageList, packageForGroup(gv, orderer.OrderTypes(types), clientsetPackage, customArgs.ClientsetAPIPath, arguments.OutputBase, inputPath, boilerplate, generatedBy))
|
||||||
if customArgs.FakeClient {
|
if customArgs.FakeClient {
|
||||||
packageList = append(packageList, fake.PackageForGroup(gv, orderer.OrderTypes(types), typedClientBasePath, arguments.OutputBase, inputPath, boilerplate, generatedBy))
|
packageList = append(packageList, fake.PackageForGroup(gv, orderer.OrderTypes(types), clientsetPackage, inputPath, boilerplate, generatedBy))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,13 +28,13 @@ import (
|
|||||||
clientgentypes "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types"
|
clientgentypes "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, packageBasePath string, srcTreePath string, inputPath string, boilerplate []byte, generatedBy string) generator.Package {
|
func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clientsetPackage string, inputPackage string, boilerplate []byte, generatedBy string) generator.Package {
|
||||||
outputPackagePath := strings.ToLower(filepath.Join(packageBasePath, gv.Group.NonEmpty(), gv.Version.NonEmpty(), "fake"))
|
outputPackage := strings.ToLower(filepath.Join(clientsetPackage, "typed", gv.Group.NonEmpty(), gv.Version.NonEmpty(), "fake"))
|
||||||
// TODO: should make this a function, called by here and in client-generator.go
|
// TODO: should make this a function, called by here and in client-generator.go
|
||||||
realClientPath := filepath.Join(packageBasePath, gv.Group.NonEmpty(), gv.Version.NonEmpty())
|
realClientPackage := filepath.Join(clientsetPackage, "typed", gv.Group.NonEmpty(), gv.Version.NonEmpty())
|
||||||
return &generator.DefaultPackage{
|
return &generator.DefaultPackage{
|
||||||
PackageName: "fake",
|
PackageName: "fake",
|
||||||
PackagePath: outputPackagePath,
|
PackagePath: outputPackage,
|
||||||
HeaderText: boilerplate,
|
HeaderText: boilerplate,
|
||||||
PackageDocumentation: []byte(
|
PackageDocumentation: []byte(
|
||||||
generatedBy +
|
generatedBy +
|
||||||
@ -54,10 +54,10 @@ func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, pac
|
|||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: "fake_" + strings.ToLower(c.Namers["private"].Name(t)),
|
OptionalName: "fake_" + strings.ToLower(c.Namers["private"].Name(t)),
|
||||||
},
|
},
|
||||||
outputPackage: outputPackagePath,
|
outputPackage: outputPackage,
|
||||||
|
inputPackage: inputPackage,
|
||||||
group: gv.Group.NonEmpty(),
|
group: gv.Group.NonEmpty(),
|
||||||
version: gv.Version.String(),
|
version: gv.Version.String(),
|
||||||
inputPackage: inputPath,
|
|
||||||
typeToMatch: t,
|
typeToMatch: t,
|
||||||
imports: generator.NewImportTracker(),
|
imports: generator.NewImportTracker(),
|
||||||
})
|
})
|
||||||
@ -67,12 +67,12 @@ func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, pac
|
|||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: "fake_" + gv.Group.NonEmpty() + "_client",
|
OptionalName: "fake_" + gv.Group.NonEmpty() + "_client",
|
||||||
},
|
},
|
||||||
outputPackage: outputPackagePath,
|
outputPackage: outputPackage,
|
||||||
realClientPath: realClientPath,
|
realClientPackage: realClientPackage,
|
||||||
group: gv.Group.NonEmpty(),
|
group: gv.Group.NonEmpty(),
|
||||||
version: gv.Version.String(),
|
version: gv.Version.String(),
|
||||||
types: typeList,
|
types: typeList,
|
||||||
imports: generator.NewImportTracker(),
|
imports: generator.NewImportTracker(),
|
||||||
})
|
})
|
||||||
return generators
|
return generators
|
||||||
},
|
},
|
||||||
@ -90,12 +90,12 @@ func extractBoolTagOrDie(key string, lines []string) bool {
|
|||||||
return val
|
return val
|
||||||
}
|
}
|
||||||
|
|
||||||
func PackageForClientset(customArgs clientgenargs.Args, typedClientBasePath string, boilerplate []byte, generatedBy string) generator.Package {
|
func PackageForClientset(customArgs clientgenargs.Args, fakeClientsetPackage string, boilerplate []byte, generatedBy string) generator.Package {
|
||||||
return &generator.DefaultPackage{
|
return &generator.DefaultPackage{
|
||||||
// TODO: we'll generate fake clientset for different release in the future.
|
// TODO: we'll generate fake clientset for different release in the future.
|
||||||
// Package name and path are hard coded for now.
|
// Package name and path are hard coded for now.
|
||||||
PackageName: "fake",
|
PackageName: "fake",
|
||||||
PackagePath: filepath.Join(customArgs.ClientsetOutputPath, customArgs.ClientsetName, "fake"),
|
PackagePath: filepath.Join(fakeClientsetPackage, "fake"),
|
||||||
HeaderText: boilerplate,
|
HeaderText: boilerplate,
|
||||||
PackageDocumentation: []byte(
|
PackageDocumentation: []byte(
|
||||||
generatedBy +
|
generatedBy +
|
||||||
@ -112,11 +112,11 @@ func PackageForClientset(customArgs clientgenargs.Args, typedClientBasePath stri
|
|||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: "clientset_generated",
|
OptionalName: "clientset_generated",
|
||||||
},
|
},
|
||||||
groups: customArgs.Groups,
|
groups: customArgs.Groups,
|
||||||
typedClientPath: typedClientBasePath,
|
fakeClientsetPackage: fakeClientsetPackage,
|
||||||
outputPackage: "fake",
|
outputPackage: "fake",
|
||||||
imports: generator.NewImportTracker(),
|
imports: generator.NewImportTracker(),
|
||||||
clientsetPath: filepath.Join(customArgs.ClientsetOutputPath, customArgs.ClientsetName),
|
realClientsetPackage: filepath.Join(customArgs.ClientsetOutputPath, customArgs.ClientsetName),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
return generators
|
return generators
|
||||||
|
@ -31,13 +31,13 @@ import (
|
|||||||
// genClientset generates a package for a clientset.
|
// genClientset generates a package for a clientset.
|
||||||
type genClientset struct {
|
type genClientset struct {
|
||||||
generator.DefaultGen
|
generator.DefaultGen
|
||||||
groups []clientgentypes.GroupVersions
|
groups []clientgentypes.GroupVersions
|
||||||
typedClientPath string
|
fakeClientsetPackage string
|
||||||
outputPackage string
|
outputPackage string
|
||||||
imports namer.ImportTracker
|
imports namer.ImportTracker
|
||||||
clientsetGenerated bool
|
clientsetGenerated bool
|
||||||
// the import path of the generated real clientset.
|
// the import path of the generated real clientset.
|
||||||
clientsetPath string
|
realClientsetPackage string
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ generator.Generator = &genClientset{}
|
var _ generator.Generator = &genClientset{}
|
||||||
@ -59,14 +59,15 @@ func (g *genClientset) Imports(c *generator.Context) (imports []string) {
|
|||||||
imports = append(imports, g.imports.ImportLines()...)
|
imports = append(imports, g.imports.ImportLines()...)
|
||||||
for _, group := range g.groups {
|
for _, group := range g.groups {
|
||||||
for _, version := range group.Versions {
|
for _, version := range group.Versions {
|
||||||
typedClientPath := filepath.Join(g.typedClientPath, group.Group.NonEmpty(), version.NonEmpty())
|
groupClientPackage := filepath.Join(g.fakeClientsetPackage, "typed", group.Group.NonEmpty(), version.NonEmpty())
|
||||||
imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", version.NonEmpty(), group.Group.NonEmpty(), typedClientPath)))
|
fakeGroupClientPackage := filepath.Join(groupClientPackage, "fake")
|
||||||
fakeTypedClientPath := filepath.Join(typedClientPath, "fake")
|
|
||||||
imports = append(imports, strings.ToLower(fmt.Sprintf("fake%s%s \"%s\"", version.NonEmpty(), group.Group.NonEmpty(), fakeTypedClientPath)))
|
imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", group.Group.NonEmpty(), version.NonEmpty(), groupClientPackage)))
|
||||||
|
imports = append(imports, strings.ToLower(fmt.Sprintf("fake%s%s \"%s\"", group.Group.NonEmpty(), version.NonEmpty(), fakeGroupClientPackage)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// the package that has the clientset Interface
|
// the package that has the clientset Interface
|
||||||
imports = append(imports, fmt.Sprintf("clientset \"%s\"", g.clientsetPath))
|
imports = append(imports, fmt.Sprintf("clientset \"%s\"", g.realClientsetPackage))
|
||||||
// imports for the code in commonTemplate
|
// imports for the code in commonTemplate
|
||||||
imports = append(imports,
|
imports = append(imports,
|
||||||
"k8s.io/kubernetes/pkg/api",
|
"k8s.io/kubernetes/pkg/api",
|
||||||
@ -85,12 +86,11 @@ func (g *genClientset) GenerateType(c *generator.Context, t *types.Type, w io.Wr
|
|||||||
// perhaps we can adapt the go2ild framework to this kind of usage.
|
// perhaps we can adapt the go2ild framework to this kind of usage.
|
||||||
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
||||||
|
|
||||||
sw.Do(common, nil)
|
|
||||||
|
|
||||||
sw.Do(checkImpl, nil)
|
|
||||||
|
|
||||||
allGroups := clientgentypes.ToGroupVersionPackages(g.groups)
|
allGroups := clientgentypes.ToGroupVersionPackages(g.groups)
|
||||||
|
|
||||||
|
sw.Do(common, nil)
|
||||||
|
sw.Do(checkImpl, nil)
|
||||||
|
|
||||||
for _, g := range allGroups {
|
for _, g := range allGroups {
|
||||||
sw.Do(clientsetInterfaceImplTemplate, g)
|
sw.Do(clientsetInterfaceImplTemplate, g)
|
||||||
// don't generated the default method if generating internalversion clientset
|
// don't generated the default method if generating internalversion clientset
|
||||||
|
@ -30,10 +30,10 @@ import (
|
|||||||
// genFakeForGroup produces a file for a group client, e.g. ExtensionsClient for the extension group.
|
// genFakeForGroup produces a file for a group client, e.g. ExtensionsClient for the extension group.
|
||||||
type genFakeForGroup struct {
|
type genFakeForGroup struct {
|
||||||
generator.DefaultGen
|
generator.DefaultGen
|
||||||
outputPackage string
|
outputPackage string
|
||||||
realClientPath string
|
realClientPackage string
|
||||||
group string
|
group string
|
||||||
version string
|
version string
|
||||||
// types in this group
|
// types in this group
|
||||||
types []*types.Type
|
types []*types.Type
|
||||||
imports namer.ImportTracker
|
imports namer.ImportTracker
|
||||||
@ -53,27 +53,27 @@ func (g *genFakeForGroup) Namers(c *generator.Context) namer.NameSystems {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (g *genFakeForGroup) Imports(c *generator.Context) (imports []string) {
|
func (g *genFakeForGroup) Imports(c *generator.Context) (imports []string) {
|
||||||
imports = append(g.imports.ImportLines(), strings.ToLower(fmt.Sprintf("%s \"%s\"", filepath.Base(g.realClientPath), g.realClientPath)))
|
imports = append(g.imports.ImportLines(), strings.ToLower(fmt.Sprintf("%s \"%s\"", filepath.Base(g.realClientPackage), g.realClientPackage)))
|
||||||
return imports
|
return imports
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *genFakeForGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
|
func (g *genFakeForGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
|
||||||
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
||||||
const pkgTestingCore = "k8s.io/client-go/testing"
|
|
||||||
const pkgRESTClient = "k8s.io/client-go/rest"
|
|
||||||
m := map[string]interface{}{
|
m := map[string]interface{}{
|
||||||
"group": g.group,
|
"group": g.group,
|
||||||
"GroupVersion": namer.IC(g.group) + namer.IC(g.version),
|
"GroupVersion": namer.IC(g.group) + namer.IC(g.version),
|
||||||
"Fake": c.Universe.Type(types.Name{Package: pkgTestingCore, Name: "Fake"}),
|
"Fake": c.Universe.Type(types.Name{Package: "k8s.io/client-go/testing", Name: "Fake"}),
|
||||||
"RESTClientInterface": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Interface"}),
|
"RESTClientInterface": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Interface"}),
|
||||||
"RESTClient": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "RESTClient"}),
|
"RESTClient": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "RESTClient"}),
|
||||||
}
|
}
|
||||||
|
|
||||||
sw.Do(groupClientTemplate, m)
|
sw.Do(groupClientTemplate, m)
|
||||||
for _, t := range g.types {
|
for _, t := range g.types {
|
||||||
wrapper := map[string]interface{}{
|
wrapper := map[string]interface{}{
|
||||||
"type": t,
|
"type": t,
|
||||||
"GroupVersion": namer.IC(g.group) + namer.IC(g.version),
|
"GroupVersion": namer.IC(g.group) + namer.IC(g.version),
|
||||||
"realClientPackage": strings.ToLower(filepath.Base(g.realClientPath)),
|
"realClientPackage": strings.ToLower(filepath.Base(g.realClientPackage)),
|
||||||
}
|
}
|
||||||
namespaced := !extractBoolTagOrDie("nonNamespaced", t.SecondClosestCommentLines)
|
namespaced := !extractBoolTagOrDie("nonNamespaced", t.SecondClosestCommentLines)
|
||||||
if namespaced {
|
if namespaced {
|
||||||
|
@ -87,7 +87,6 @@ func hasObjectMeta(t *types.Type) bool {
|
|||||||
func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
|
func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
|
||||||
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
||||||
pkg := filepath.Base(t.Name.Package)
|
pkg := filepath.Base(t.Name.Package)
|
||||||
const pkgTestingCore = "k8s.io/client-go/testing"
|
|
||||||
namespaced := !extractBoolTagOrDie("nonNamespaced", t.SecondClosestCommentLines)
|
namespaced := !extractBoolTagOrDie("nonNamespaced", t.SecondClosestCommentLines)
|
||||||
canonicalGroup := g.group
|
canonicalGroup := g.group
|
||||||
if canonicalGroup == "core" {
|
if canonicalGroup == "core" {
|
||||||
@ -105,6 +104,7 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
|
|||||||
groupName = override[0]
|
groupName = override[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const pkgClientGoTesting = "k8s.io/client-go/testing"
|
||||||
m := map[string]interface{}{
|
m := map[string]interface{}{
|
||||||
"type": t,
|
"type": t,
|
||||||
"package": pkg,
|
"package": pkg,
|
||||||
@ -123,27 +123,27 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
|
|||||||
"PatchType": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/types", Name: "PatchType"}),
|
"PatchType": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/types", Name: "PatchType"}),
|
||||||
"watchInterface": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/watch", Name: "Interface"}),
|
"watchInterface": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/watch", Name: "Interface"}),
|
||||||
|
|
||||||
"NewRootListAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewRootListAction"}),
|
"NewRootListAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootListAction"}),
|
||||||
"NewListAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewListAction"}),
|
"NewListAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewListAction"}),
|
||||||
"NewRootGetAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewRootGetAction"}),
|
"NewRootGetAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootGetAction"}),
|
||||||
"NewGetAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewGetAction"}),
|
"NewGetAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewGetAction"}),
|
||||||
"NewRootDeleteAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewRootDeleteAction"}),
|
"NewRootDeleteAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootDeleteAction"}),
|
||||||
"NewDeleteAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewDeleteAction"}),
|
"NewDeleteAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewDeleteAction"}),
|
||||||
"NewRootDeleteCollectionAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewRootDeleteCollectionAction"}),
|
"NewRootDeleteCollectionAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootDeleteCollectionAction"}),
|
||||||
"NewDeleteCollectionAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewDeleteCollectionAction"}),
|
"NewDeleteCollectionAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewDeleteCollectionAction"}),
|
||||||
"NewRootUpdateAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewRootUpdateAction"}),
|
"NewRootUpdateAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootUpdateAction"}),
|
||||||
"NewUpdateAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewUpdateAction"}),
|
"NewUpdateAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewUpdateAction"}),
|
||||||
"NewRootCreateAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewRootCreateAction"}),
|
"NewRootCreateAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootCreateAction"}),
|
||||||
"NewCreateAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewCreateAction"}),
|
"NewCreateAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewCreateAction"}),
|
||||||
"NewRootWatchAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewRootWatchAction"}),
|
"NewRootWatchAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootWatchAction"}),
|
||||||
"NewWatchAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewWatchAction"}),
|
"NewWatchAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewWatchAction"}),
|
||||||
"NewUpdateSubresourceAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewUpdateSubresourceAction"}),
|
"NewUpdateSubresourceAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewUpdateSubresourceAction"}),
|
||||||
"NewRootUpdateSubresourceAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewRootUpdateSubresourceAction"}),
|
"NewRootUpdateSubresourceAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootUpdateSubresourceAction"}),
|
||||||
"NewRootPatchAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewRootPatchAction"}),
|
"NewRootPatchAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootPatchAction"}),
|
||||||
"NewPatchAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewPatchAction"}),
|
"NewPatchAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewPatchAction"}),
|
||||||
"NewRootPatchSubresourceAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewRootPatchSubresourceAction"}),
|
"NewRootPatchSubresourceAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootPatchSubresourceAction"}),
|
||||||
"NewPatchSubresourceAction": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "NewPatchSubresourceAction"}),
|
"NewPatchSubresourceAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewPatchSubresourceAction"}),
|
||||||
"ExtractFromListOptions": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "ExtractFromListOptions"}),
|
"ExtractFromListOptions": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "ExtractFromListOptions"}),
|
||||||
}
|
}
|
||||||
|
|
||||||
noMethods := extractBoolTagOrDie("noMethods", t.SecondClosestCommentLines) == true
|
noMethods := extractBoolTagOrDie("noMethods", t.SecondClosestCommentLines) == true
|
||||||
|
@ -32,7 +32,7 @@ import (
|
|||||||
type genClientset struct {
|
type genClientset struct {
|
||||||
generator.DefaultGen
|
generator.DefaultGen
|
||||||
groups []clientgentypes.GroupVersions
|
groups []clientgentypes.GroupVersions
|
||||||
typedClientPath string
|
clientsetPackage string
|
||||||
outputPackage string
|
outputPackage string
|
||||||
imports namer.ImportTracker
|
imports namer.ImportTracker
|
||||||
clientsetGenerated bool
|
clientsetGenerated bool
|
||||||
@ -57,12 +57,10 @@ func (g *genClientset) Imports(c *generator.Context) (imports []string) {
|
|||||||
imports = append(imports, g.imports.ImportLines()...)
|
imports = append(imports, g.imports.ImportLines()...)
|
||||||
for _, group := range g.groups {
|
for _, group := range g.groups {
|
||||||
for _, version := range group.Versions {
|
for _, version := range group.Versions {
|
||||||
typedClientPath := filepath.Join(g.typedClientPath, group.Group.NonEmpty(), version.NonEmpty())
|
typedClientPath := filepath.Join(g.clientsetPackage, "typed", group.Group.NonEmpty(), version.NonEmpty())
|
||||||
imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", version.NonEmpty(), group.Group.NonEmpty(), typedClientPath)))
|
imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", group.Group.NonEmpty(), version.NonEmpty(), typedClientPath)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
imports = append(imports, "github.com/golang/glog")
|
|
||||||
imports = append(imports, "k8s.io/client-go/util/flowcontrol")
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,21 +68,21 @@ func (g *genClientset) GenerateType(c *generator.Context, t *types.Type, w io.Wr
|
|||||||
// TODO: We actually don't need any type information to generate the clientset,
|
// TODO: We actually don't need any type information to generate the clientset,
|
||||||
// perhaps we can adapt the go2ild framework to this kind of usage.
|
// perhaps we can adapt the go2ild framework to this kind of usage.
|
||||||
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
||||||
const pkgDiscovery = "k8s.io/client-go/discovery"
|
|
||||||
const pkgRESTClient = "k8s.io/client-go/rest"
|
|
||||||
|
|
||||||
allGroups := clientgentypes.ToGroupVersionPackages(g.groups)
|
allGroups := clientgentypes.ToGroupVersionPackages(g.groups)
|
||||||
|
|
||||||
m := map[string]interface{}{
|
m := map[string]interface{}{
|
||||||
"allGroups": allGroups,
|
"allGroups": allGroups,
|
||||||
"Config": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Config"}),
|
"Config": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Config"}),
|
||||||
"DefaultKubernetesUserAgent": c.Universe.Function(types.Name{Package: pkgRESTClient, Name: "DefaultKubernetesUserAgent"}),
|
"DefaultKubernetesUserAgent": c.Universe.Function(types.Name{Package: "k8s.io/client-go/rest", Name: "DefaultKubernetesUserAgent"}),
|
||||||
"RESTClientInterface": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Interface"}),
|
"RESTClientInterface": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Interface"}),
|
||||||
"DiscoveryInterface": c.Universe.Type(types.Name{Package: pkgDiscovery, Name: "DiscoveryInterface"}),
|
"DiscoveryInterface": c.Universe.Type(types.Name{Package: "k8s.io/client-go/discovery", Name: "DiscoveryInterface"}),
|
||||||
"DiscoveryClient": c.Universe.Type(types.Name{Package: pkgDiscovery, Name: "DiscoveryClient"}),
|
"DiscoveryClient": c.Universe.Type(types.Name{Package: "k8s.io/client-go/discovery", Name: "DiscoveryClient"}),
|
||||||
"NewDiscoveryClientForConfig": c.Universe.Function(types.Name{Package: pkgDiscovery, Name: "NewDiscoveryClientForConfig"}),
|
"NewDiscoveryClientForConfig": c.Universe.Function(types.Name{Package: "k8s.io/client-go/discovery", Name: "NewDiscoveryClientForConfig"}),
|
||||||
"NewDiscoveryClientForConfigOrDie": c.Universe.Function(types.Name{Package: pkgDiscovery, Name: "NewDiscoveryClientForConfigOrDie"}),
|
"NewDiscoveryClientForConfigOrDie": c.Universe.Function(types.Name{Package: "k8s.io/client-go/discovery", Name: "NewDiscoveryClientForConfigOrDie"}),
|
||||||
"NewDiscoveryClient": c.Universe.Function(types.Name{Package: pkgDiscovery, Name: "NewDiscoveryClient"}),
|
"NewDiscoveryClient": c.Universe.Function(types.Name{Package: "k8s.io/client-go/discovery", Name: "NewDiscoveryClient"}),
|
||||||
|
"flowcontrolNewTokenBucketRateLimiter": c.Universe.Function(types.Name{Package: "k8s.io/client-go/util/flowcontrol", Name: "NewTokenBucketRateLimiter"}),
|
||||||
|
"glogErrorf": c.Universe.Function(types.Name{Package: "github.com/golang/glog", Name: "Errorf"}),
|
||||||
}
|
}
|
||||||
sw.Do(clientsetInterface, m)
|
sw.Do(clientsetInterface, m)
|
||||||
sw.Do(clientsetTemplate, m)
|
sw.Do(clientsetTemplate, m)
|
||||||
@ -108,8 +106,8 @@ type Interface interface {
|
|||||||
Discovery() $.DiscoveryInterface|raw$
|
Discovery() $.DiscoveryInterface|raw$
|
||||||
$range .allGroups$$.GroupVersion$() $.PackageName$.$.GroupVersion$Interface
|
$range .allGroups$$.GroupVersion$() $.PackageName$.$.GroupVersion$Interface
|
||||||
$if .IsDefaultVersion$// Deprecated: please explicitly pick a version if possible.
|
$if .IsDefaultVersion$// Deprecated: please explicitly pick a version if possible.
|
||||||
$.Group$() $.PackageName$.$.GroupVersion$Interface$end$
|
$.Group$() $.PackageName$.$.GroupVersion$Interface
|
||||||
$end$
|
$end$$end$
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
@ -159,7 +157,7 @@ var newClientsetForConfigTemplate = `
|
|||||||
func NewForConfig(c *$.Config|raw$) (*Clientset, error) {
|
func NewForConfig(c *$.Config|raw$) (*Clientset, error) {
|
||||||
configShallowCopy := *c
|
configShallowCopy := *c
|
||||||
if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 {
|
if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 {
|
||||||
configShallowCopy.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(configShallowCopy.QPS, configShallowCopy.Burst)
|
configShallowCopy.RateLimiter = $.flowcontrolNewTokenBucketRateLimiter|raw$(configShallowCopy.QPS, configShallowCopy.Burst)
|
||||||
}
|
}
|
||||||
var cs Clientset
|
var cs Clientset
|
||||||
var err error
|
var err error
|
||||||
@ -170,7 +168,7 @@ $range .allGroups$ cs.$.GroupVersion$Client, err =$.PackageName$.NewForConfig
|
|||||||
$end$
|
$end$
|
||||||
cs.DiscoveryClient, err = $.NewDiscoveryClientForConfig|raw$(&configShallowCopy)
|
cs.DiscoveryClient, err = $.NewDiscoveryClientForConfig|raw$(&configShallowCopy)
|
||||||
if err!=nil {
|
if err!=nil {
|
||||||
glog.Errorf("failed to create the DiscoveryClient: %v", err)
|
$.glogErrorf|raw$("failed to create the DiscoveryClient: %v", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return &cs, nil
|
return &cs, nil
|
||||||
|
@ -29,7 +29,7 @@ import (
|
|||||||
// genExpansion produces a file for a group client, e.g. ExtensionsClient for the extension group.
|
// genExpansion produces a file for a group client, e.g. ExtensionsClient for the extension group.
|
||||||
type genExpansion struct {
|
type genExpansion struct {
|
||||||
generator.DefaultGen
|
generator.DefaultGen
|
||||||
groupPath string
|
groupPackagePath string
|
||||||
// types in a group
|
// types in a group
|
||||||
types []*types.Type
|
types []*types.Type
|
||||||
}
|
}
|
||||||
@ -42,7 +42,7 @@ func (g *genExpansion) Filter(c *generator.Context, t *types.Type) bool {
|
|||||||
func (g *genExpansion) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
|
func (g *genExpansion) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
|
||||||
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
||||||
for _, t := range g.types {
|
for _, t := range g.types {
|
||||||
if _, err := os.Stat(filepath.Join(g.groupPath, strings.ToLower(t.Name.Name+"_expansion.go"))); os.IsNotExist(err) {
|
if _, err := os.Stat(filepath.Join(g.groupPackagePath, strings.ToLower(t.Name.Name+"_expansion.go"))); os.IsNotExist(err) {
|
||||||
sw.Do(expansionInterfaceTemplate, t)
|
sw.Do(expansionInterfaceTemplate, t)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ type genGroup struct {
|
|||||||
// types in this group
|
// types in this group
|
||||||
types []*types.Type
|
types []*types.Type
|
||||||
imports namer.ImportTracker
|
imports namer.ImportTracker
|
||||||
inputPacakge string
|
inputPackage string
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ generator.Generator = &genGroup{}
|
var _ generator.Generator = &genGroup{}
|
||||||
@ -57,11 +57,6 @@ func (g *genGroup) Imports(c *generator.Context) (imports []string) {
|
|||||||
|
|
||||||
func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
|
func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
|
||||||
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
||||||
const pkgRESTClient = "k8s.io/client-go/rest"
|
|
||||||
const pkgAPI = "k8s.io/kubernetes/pkg/api"
|
|
||||||
const pkgSerializer = "k8s.io/apimachinery/pkg/runtime/serializer"
|
|
||||||
const pkgUnversioned = "k8s.io/kubernetes/pkg/api/unversioned"
|
|
||||||
const pkgSchema = "k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
|
|
||||||
apiPath := func(group string) string {
|
apiPath := func(group string) string {
|
||||||
if len(g.apiPath) > 0 {
|
if len(g.apiPath) > 0 {
|
||||||
@ -78,27 +73,29 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
|
|||||||
groupName = ""
|
groupName = ""
|
||||||
}
|
}
|
||||||
// allow user to define a group name that's different from the one parsed from the directory.
|
// allow user to define a group name that's different from the one parsed from the directory.
|
||||||
p := c.Universe.Package(g.inputPacakge)
|
p := c.Universe.Package(g.inputPackage)
|
||||||
if override := types.ExtractCommentTags("+", p.DocComments)["groupName"]; override != nil {
|
if override := types.ExtractCommentTags("+", p.DocComments)["groupName"]; override != nil {
|
||||||
groupName = override[0]
|
groupName = override[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
m := map[string]interface{}{
|
m := map[string]interface{}{
|
||||||
"group": g.group,
|
"group": g.group,
|
||||||
"version": g.version,
|
"version": g.version,
|
||||||
"GroupVersion": namer.IC(g.group) + namer.IC(g.version),
|
"GroupVersion": namer.IC(g.group) + namer.IC(g.version),
|
||||||
"groupName": groupName,
|
"groupName": groupName,
|
||||||
"types": g.types,
|
"types": g.types,
|
||||||
"Config": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Config"}),
|
"apiPath": apiPath(g.group),
|
||||||
"DefaultKubernetesUserAgent": c.Universe.Function(types.Name{Package: pkgRESTClient, Name: "DefaultKubernetesUserAgent"}),
|
"fmtErrorf": c.Universe.Function(types.Name{Package: "fmt", Name: "Errorf"}),
|
||||||
"RESTClientInterface": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Interface"}),
|
"runtimeAPIVersionInternal": c.Universe.Variable(types.Name{Package: "k8s.io/apimachinery/pkg/runtime", Name: "APIVersionInternal"}),
|
||||||
"RESTClientFor": c.Universe.Function(types.Name{Package: pkgRESTClient, Name: "RESTClientFor"}),
|
"schemaGroupVersion": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupVersion"}),
|
||||||
"ParseGroupVersion": c.Universe.Function(types.Name{Package: pkgSchema, Name: "ParseGroupVersion"}),
|
"schemaParseGroupVersion": c.Universe.Function(types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "ParseGroupVersion"}),
|
||||||
"apiPath": apiPath(g.group),
|
"serializerDirectCodecFactory": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/runtime/serializer", Name: "DirectCodecFactory"}),
|
||||||
"apiRegistry": c.Universe.Variable(types.Name{Package: pkgAPI, Name: "Registry"}),
|
"restConfig": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Config"}),
|
||||||
"codecs": c.Universe.Variable(types.Name{Package: pkgAPI, Name: "Codecs"}),
|
"restDefaultKubernetesUserAgent": c.Universe.Function(types.Name{Package: "k8s.io/client-go/rest", Name: "DefaultKubernetesUserAgent"}),
|
||||||
"directCodecFactory": c.Universe.Variable(types.Name{Package: pkgSerializer, Name: "DirectCodecFactory"}),
|
"restRESTClientInterface": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Interface"}),
|
||||||
"Errorf": c.Universe.Variable(types.Name{Package: "fmt", Name: "Errorf"}),
|
"restRESTClientFor": c.Universe.Function(types.Name{Package: "k8s.io/client-go/rest", Name: "RESTClientFor"}),
|
||||||
|
"apiCodecs": c.Universe.Variable(types.Name{Package: "k8s.io/kubernetes/pkg/api", Name: "Codecs"}),
|
||||||
|
"apiRegistry": c.Universe.Variable(types.Name{Package: "k8s.io/kubernetes/pkg/api", Name: "Registry"}),
|
||||||
}
|
}
|
||||||
sw.Do(groupInterfaceTemplate, m)
|
sw.Do(groupInterfaceTemplate, m)
|
||||||
sw.Do(groupClientTemplate, m)
|
sw.Do(groupClientTemplate, m)
|
||||||
@ -112,7 +109,6 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
|
|||||||
sw.Do(getterImplNamespaced, wrapper)
|
sw.Do(getterImplNamespaced, wrapper)
|
||||||
} else {
|
} else {
|
||||||
sw.Do(getterImplNonNamespaced, wrapper)
|
sw.Do(getterImplNonNamespaced, wrapper)
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sw.Do(newClientForConfigTemplate, m)
|
sw.Do(newClientForConfigTemplate, m)
|
||||||
@ -130,7 +126,7 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
|
|||||||
|
|
||||||
var groupInterfaceTemplate = `
|
var groupInterfaceTemplate = `
|
||||||
type $.GroupVersion$Interface interface {
|
type $.GroupVersion$Interface interface {
|
||||||
RESTClient() $.RESTClientInterface|raw$
|
RESTClient() $.restRESTClientInterface|raw$
|
||||||
$range .types$ $.|publicPlural$Getter
|
$range .types$ $.|publicPlural$Getter
|
||||||
$end$
|
$end$
|
||||||
}
|
}
|
||||||
@ -139,7 +135,7 @@ type $.GroupVersion$Interface interface {
|
|||||||
var groupClientTemplate = `
|
var groupClientTemplate = `
|
||||||
// $.GroupVersion$Client is used to interact with features provided by the $.groupName$ group.
|
// $.GroupVersion$Client is used to interact with features provided by the $.groupName$ group.
|
||||||
type $.GroupVersion$Client struct {
|
type $.GroupVersion$Client struct {
|
||||||
restClient $.RESTClientInterface|raw$
|
restClient $.restRESTClientInterface|raw$
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
@ -157,12 +153,12 @@ func (c *$.GroupVersion$Client) $.type|publicPlural$() $.type|public$Interface {
|
|||||||
|
|
||||||
var newClientForConfigTemplate = `
|
var newClientForConfigTemplate = `
|
||||||
// NewForConfig creates a new $.GroupVersion$Client for the given config.
|
// NewForConfig creates a new $.GroupVersion$Client for the given config.
|
||||||
func NewForConfig(c *$.Config|raw$) (*$.GroupVersion$Client, error) {
|
func NewForConfig(c *$.restConfig|raw$) (*$.GroupVersion$Client, error) {
|
||||||
config := *c
|
config := *c
|
||||||
if err := setConfigDefaults(&config); err != nil {
|
if err := setConfigDefaults(&config); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
client, err := $.RESTClientFor|raw$(&config)
|
client, err := $.restRESTClientFor|raw$(&config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -173,7 +169,7 @@ func NewForConfig(c *$.Config|raw$) (*$.GroupVersion$Client, error) {
|
|||||||
var newClientForConfigOrDieTemplate = `
|
var newClientForConfigOrDieTemplate = `
|
||||||
// NewForConfigOrDie creates a new $.GroupVersion$Client for the given config and
|
// NewForConfigOrDie creates a new $.GroupVersion$Client for the given config and
|
||||||
// panics if there is an error in the config.
|
// panics if there is an error in the config.
|
||||||
func NewForConfigOrDie(c *$.Config|raw$) *$.GroupVersion$Client {
|
func NewForConfigOrDie(c *$.restConfig|raw$) *$.GroupVersion$Client {
|
||||||
client, err := NewForConfig(c)
|
client, err := NewForConfig(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
@ -185,7 +181,7 @@ func NewForConfigOrDie(c *$.Config|raw$) *$.GroupVersion$Client {
|
|||||||
var getRESTClient = `
|
var getRESTClient = `
|
||||||
// RESTClient returns a RESTClient that is used to communicate
|
// RESTClient returns a RESTClient that is used to communicate
|
||||||
// with API server by this client implementation.
|
// with API server by this client implementation.
|
||||||
func (c *$.GroupVersion$Client) RESTClient() $.RESTClientInterface|raw$ {
|
func (c *$.GroupVersion$Client) RESTClient() $.restRESTClientInterface|raw$ {
|
||||||
if c == nil {
|
if c == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -195,26 +191,28 @@ func (c *$.GroupVersion$Client) RESTClient() $.RESTClientInterface|raw$ {
|
|||||||
|
|
||||||
var newClientForRESTClientTemplate = `
|
var newClientForRESTClientTemplate = `
|
||||||
// New creates a new $.GroupVersion$Client for the given RESTClient.
|
// New creates a new $.GroupVersion$Client for the given RESTClient.
|
||||||
func New(c $.RESTClientInterface|raw$) *$.GroupVersion$Client {
|
func New(c $.restRESTClientInterface|raw$) *$.GroupVersion$Client {
|
||||||
return &$.GroupVersion$Client{c}
|
return &$.GroupVersion$Client{c}
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
var setInternalVersionClientDefaultsTemplate = `
|
var setInternalVersionClientDefaultsTemplate = `
|
||||||
func setConfigDefaults(config *$.Config|raw$) error {
|
func setConfigDefaults(config *$.restConfig|raw$) error {
|
||||||
// if $.group$ group is not registered, return an error
|
// if $.group$ group is not registered, return an error
|
||||||
g, err := $.apiRegistry|raw$.Group("$.groupName$")
|
g, err := $.apiRegistry|raw$.Group("$.groupName$")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
config.APIPath = $.apiPath$
|
config.APIPath = $.apiPath$
|
||||||
if config.UserAgent == "" {
|
if config.UserAgent == "" {
|
||||||
config.UserAgent = $.DefaultKubernetesUserAgent|raw$()
|
config.UserAgent = $.restDefaultKubernetesUserAgent|raw$()
|
||||||
}
|
}
|
||||||
if config.GroupVersion == nil || config.GroupVersion.Group != g.GroupVersion.Group {
|
if config.GroupVersion == nil || config.GroupVersion.Group != g.GroupVersion.Group {
|
||||||
copyGroupVersion := g.GroupVersion
|
copyGroupVersion := g.GroupVersion
|
||||||
config.GroupVersion = ©GroupVersion
|
config.GroupVersion = ©GroupVersion
|
||||||
}
|
}
|
||||||
config.NegotiatedSerializer = $.codecs|raw$
|
config.NegotiatedSerializer = $.apiCodecs|raw$
|
||||||
|
|
||||||
if config.QPS == 0 {
|
if config.QPS == 0 {
|
||||||
config.QPS = 5
|
config.QPS = 5
|
||||||
@ -222,28 +220,29 @@ func setConfigDefaults(config *$.Config|raw$) error {
|
|||||||
if config.Burst == 0 {
|
if config.Burst == 0 {
|
||||||
config.Burst = 10
|
config.Burst = 10
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
var setClientDefaultsTemplate = `
|
var setClientDefaultsTemplate = `
|
||||||
func setConfigDefaults(config *$.Config|raw$) error {
|
func setConfigDefaults(config *$.restConfig|raw$) error {
|
||||||
gv, err := $.ParseGroupVersion|raw$("$.groupName$/$.version$")
|
gv, err := $.schemaParseGroupVersion|raw$("$.groupName$/$.version$")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
// if $.groupName$/$.version$ is not enabled, return an error
|
// if $.groupName$/$.version$ is not enabled, return an error
|
||||||
if ! $.apiRegistry|raw$.IsEnabledVersion(gv) {
|
if ! $.apiRegistry|raw$.IsEnabledVersion(gv) {
|
||||||
return $.Errorf|raw$("$.groupName$/$.version$ is not enabled")
|
return $.fmtErrorf|raw$("$.groupName$/$.version$ is not enabled")
|
||||||
}
|
}
|
||||||
config.APIPath = $.apiPath$
|
config.APIPath = $.apiPath$
|
||||||
if config.UserAgent == "" {
|
if config.UserAgent == "" {
|
||||||
config.UserAgent = $.DefaultKubernetesUserAgent|raw$()
|
config.UserAgent = $.restDefaultKubernetesUserAgent|raw$()
|
||||||
}
|
}
|
||||||
copyGroupVersion := gv
|
copyGroupVersion := gv
|
||||||
config.GroupVersion = ©GroupVersion
|
config.GroupVersion = ©GroupVersion
|
||||||
|
|
||||||
config.NegotiatedSerializer = $.directCodecFactory|raw${CodecFactory: $.codecs|raw$}
|
config.NegotiatedSerializer = $.serializerDirectCodecFactory|raw${CodecFactory: $.apiCodecs|raw$}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ func ToGroupVersionPackages(groups []GroupVersions) []GroupVersionPackage {
|
|||||||
Group: Group(namer.IC(group.Group.NonEmpty())),
|
Group: Group(namer.IC(group.Group.NonEmpty())),
|
||||||
Version: Version(namer.IC(version.String())),
|
Version: Version(namer.IC(version.String())),
|
||||||
GroupVersion: namer.IC(group.Group.NonEmpty()) + namer.IC(version.String()),
|
GroupVersion: namer.IC(group.Group.NonEmpty()) + namer.IC(version.String()),
|
||||||
PackageName: strings.ToLower(version.NonEmpty() + group.Group.NonEmpty()),
|
PackageName: strings.ToLower(group.Group.NonEmpty() + version.NonEmpty()),
|
||||||
IsDefaultVersion: version == defaultVersion && version != "",
|
IsDefaultVersion: version == defaultVersion && version != "",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -20,12 +20,12 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/api/meta"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/kubernetes/federation/apis/federation"
|
"k8s.io/kubernetes/federation/apis/federation"
|
||||||
"k8s.io/kubernetes/federation/apis/federation/v1beta1"
|
"k8s.io/kubernetes/federation/apis/federation/v1beta1"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/apimachinery/pkg/api/meta"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestResourceVersioner(t *testing.T) {
|
func TestResourceVersioner(t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user