mirror of https://github.com/k3s-io/k3s
include multiple versions in clientset
update client-gen to use the term "internalversion" rather than "unversioned"; leave internal one unqualified; cleanup client-genpull/6/head
parent
3bda6884b8
commit
850729bfaf
|
@ -25,7 +25,7 @@ go_library(
|
|||
"//pkg/apis/batch:go_default_library",
|
||||
"//pkg/apis/componentconfig:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/core/unversioned:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library",
|
||||
"//pkg/client/leaderelection:go_default_library",
|
||||
"//pkg/client/leaderelection/resourcelock:go_default_library",
|
||||
"//pkg/client/record:go_default_library",
|
||||
|
|
|
@ -37,7 +37,7 @@ import (
|
|||
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||
"k8s.io/kubernetes/pkg/apis/batch"
|
||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||
unversionedcore "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/unversioned"
|
||||
unversionedcore "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion"
|
||||
"k8s.io/kubernetes/pkg/client/leaderelection"
|
||||
"k8s.io/kubernetes/pkg/client/leaderelection/resourcelock"
|
||||
"k8s.io/kubernetes/pkg/client/record"
|
||||
|
|
|
@ -21,7 +21,7 @@ go_library(
|
|||
"//cmd/kube-proxy/app/options:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/core/unversioned:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library",
|
||||
"//pkg/client/record:go_default_library",
|
||||
"//pkg/client/unversioned/clientcmd:go_default_library",
|
||||
"//pkg/client/unversioned/clientcmd/api:go_default_library",
|
||||
|
|
|
@ -31,7 +31,7 @@ import (
|
|||
"k8s.io/kubernetes/cmd/kube-proxy/app/options"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||
unversionedcore "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/unversioned"
|
||||
unversionedcore "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion"
|
||||
"k8s.io/kubernetes/pkg/client/record"
|
||||
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
|
||||
clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
|
||||
|
|
|
@ -23,7 +23,7 @@ go_library(
|
|||
"//cmd/kubeadm/app/util:go_default_library",
|
||||
"//pkg/apis/certificates:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion:go_default_library",
|
||||
"//pkg/client/unversioned/clientcmd:go_default_library",
|
||||
"//pkg/client/unversioned/clientcmd/api:go_default_library",
|
||||
"//pkg/kubelet/util/csr:go_default_library",
|
||||
|
|
|
@ -26,7 +26,7 @@ import (
|
|||
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
|
||||
"k8s.io/kubernetes/pkg/apis/certificates"
|
||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||
certclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned"
|
||||
certclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion"
|
||||
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
|
||||
"k8s.io/kubernetes/pkg/types"
|
||||
"k8s.io/kubernetes/pkg/util/wait"
|
||||
|
|
|
@ -32,10 +32,10 @@ go_library(
|
|||
"//pkg/capabilities:go_default_library",
|
||||
"//pkg/client/chaosclient:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/authentication/unversioned:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/authorization/unversioned:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/core/unversioned:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library",
|
||||
"//pkg/client/record:go_default_library",
|
||||
"//pkg/client/restclient:go_default_library",
|
||||
"//pkg/client/unversioned/auth:go_default_library",
|
||||
|
|
|
@ -27,8 +27,8 @@ import (
|
|||
"k8s.io/kubernetes/pkg/auth/authorizer"
|
||||
"k8s.io/kubernetes/pkg/auth/group"
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||
authenticationclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authentication/unversioned"
|
||||
authorizationclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authorization/unversioned"
|
||||
authenticationclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion"
|
||||
authorizationclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion"
|
||||
alwaysallowauthorizer "k8s.io/kubernetes/pkg/genericapiserver/authorizer"
|
||||
"k8s.io/kubernetes/pkg/kubelet/server"
|
||||
"k8s.io/kubernetes/pkg/types"
|
||||
|
|
|
@ -25,7 +25,7 @@ import (
|
|||
|
||||
"github.com/golang/glog"
|
||||
|
||||
unversionedcertificates "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned"
|
||||
unversionedcertificates "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion"
|
||||
"k8s.io/kubernetes/pkg/client/restclient"
|
||||
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
|
||||
clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
|
||||
|
|
|
@ -43,7 +43,7 @@ import (
|
|||
"k8s.io/kubernetes/pkg/capabilities"
|
||||
"k8s.io/kubernetes/pkg/client/chaosclient"
|
||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||
unversionedcore "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/unversioned"
|
||||
unversionedcore "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion"
|
||||
"k8s.io/kubernetes/pkg/client/record"
|
||||
"k8s.io/kubernetes/pkg/client/restclient"
|
||||
clientauth "k8s.io/kubernetes/pkg/client/unversioned/auth"
|
||||
|
|
|
@ -17,7 +17,7 @@ go_binary(
|
|||
deps = [
|
||||
"//cmd/libs/go2idl/client-gen/args:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/generators:go_default_library",
|
||||
"//pkg/api/unversioned:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/types:go_default_library",
|
||||
"//vendor:github.com/golang/glog",
|
||||
"//vendor:github.com/spf13/pflag",
|
||||
"//vendor:k8s.io/gengo/args",
|
||||
|
|
|
@ -14,5 +14,5 @@ go_library(
|
|||
name = "go_default_library",
|
||||
srcs = ["args.go"],
|
||||
tags = ["automanaged"],
|
||||
deps = ["//pkg/api/unversioned:go_default_library"],
|
||||
deps = ["//cmd/libs/go2idl/client-gen/types:go_default_library"],
|
||||
)
|
||||
|
|
|
@ -16,22 +16,19 @@ limitations under the License.
|
|||
|
||||
package args
|
||||
|
||||
import "k8s.io/kubernetes/pkg/api/unversioned"
|
||||
import "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types"
|
||||
|
||||
// ClientGenArgs is a wrapper for arguments to client-gen.
|
||||
type Args struct {
|
||||
// TODO: we should make another type declaration of GroupVersion out of the
|
||||
// unversioned package, which is part of our API. Tools like client-gen
|
||||
// shouldn't depend on an API.
|
||||
GroupVersions []unversioned.GroupVersion
|
||||
Groups []types.GroupVersions
|
||||
|
||||
// GroupVersionToInputPath is a map between GroupVersion and the path to
|
||||
// the respective types.go. We still need GroupVersions in the struct because
|
||||
// we need an order.
|
||||
GroupVersionToInputPath map[unversioned.GroupVersion]string
|
||||
GroupVersionToInputPath map[types.GroupVersion]string
|
||||
|
||||
// Overrides for which types should be included in the client.
|
||||
IncludedTypesOverrides map[unversioned.GroupVersion][]string
|
||||
IncludedTypesOverrides map[types.GroupVersion][]string
|
||||
|
||||
// ClientsetName is the name of the clientset to be generated. It's
|
||||
// populated from command-line arguments.
|
||||
|
|
|
@ -24,8 +24,7 @@ go_library(
|
|||
deps = [
|
||||
"//cmd/libs/go2idl/client-gen/args:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/generators/fake:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/generators/normalization:go_default_library",
|
||||
"//pkg/api/unversioned:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/types:go_default_library",
|
||||
"//vendor:github.com/golang/glog",
|
||||
"//vendor:k8s.io/gengo/args",
|
||||
"//vendor:k8s.io/gengo/generator",
|
||||
|
|
|
@ -28,8 +28,7 @@ import (
|
|||
"k8s.io/gengo/types"
|
||||
clientgenargs "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/args"
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/fake"
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/normalization"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
clientgentypes "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types"
|
||||
|
||||
"github.com/golang/glog"
|
||||
)
|
||||
|
@ -62,10 +61,10 @@ func generatedBy(customArgs clientgenargs.Args) string {
|
|||
return fmt.Sprintf("\n// This package is generated by client-gen with the default arguments.\n\n")
|
||||
}
|
||||
|
||||
func packageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packageBasePath string, apiPath string, srcTreePath string, inputPath string, boilerplate []byte, generatedBy string) generator.Package {
|
||||
outputPackagePath := filepath.Join(packageBasePath, gv.Group, gv.Version)
|
||||
func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, packageBasePath string, apiPath string, srcTreePath string, inputPath string, boilerplate []byte, generatedBy string) generator.Package {
|
||||
outputPackagePath := strings.ToLower(filepath.Join(packageBasePath, gv.Group.NonEmpty(), gv.Version.NonEmpty()))
|
||||
return &generator.DefaultPackage{
|
||||
PackageName: gv.Version,
|
||||
PackageName: strings.ToLower(gv.Version.NonEmpty()),
|
||||
PackagePath: outputPackagePath,
|
||||
HeaderText: boilerplate,
|
||||
PackageDocumentation: []byte(
|
||||
|
@ -87,8 +86,8 @@ func packageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packag
|
|||
OptionalName: strings.ToLower(c.Namers["private"].Name(t)),
|
||||
},
|
||||
outputPackage: outputPackagePath,
|
||||
group: normalization.BeforeFirstDot(gv.Group),
|
||||
version: gv.Version,
|
||||
group: gv.Group.NonEmpty(),
|
||||
version: gv.Version.String(),
|
||||
typeToMatch: t,
|
||||
imports: generator.NewImportTracker(),
|
||||
})
|
||||
|
@ -96,12 +95,12 @@ func packageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packag
|
|||
|
||||
generators = append(generators, &genGroup{
|
||||
DefaultGen: generator.DefaultGen{
|
||||
OptionalName: normalization.BeforeFirstDot(gv.Group) + "_client",
|
||||
OptionalName: gv.Group.NonEmpty() + "_client",
|
||||
},
|
||||
outputPackage: outputPackagePath,
|
||||
inputPacakge: inputPath,
|
||||
group: gv.Group,
|
||||
version: gv.Version,
|
||||
group: gv.Group.NonEmpty(),
|
||||
version: gv.Version.String(),
|
||||
apiPath: apiPath,
|
||||
types: typeList,
|
||||
imports: generator.NewImportTracker(),
|
||||
|
@ -144,7 +143,7 @@ func packageForClientset(customArgs clientgenargs.Args, typedClientBasePath stri
|
|||
DefaultGen: generator.DefaultGen{
|
||||
OptionalName: "clientset",
|
||||
},
|
||||
groupVersions: customArgs.GroupVersions,
|
||||
groups: customArgs.Groups,
|
||||
typedClientPath: typedClientBasePath,
|
||||
outputPackage: customArgs.ClientsetName,
|
||||
imports: generator.NewImportTracker(),
|
||||
|
@ -170,7 +169,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
|
|||
|
||||
generatedBy := generatedBy(customArgs)
|
||||
|
||||
gvToTypes := map[unversioned.GroupVersion][]*types.Type{}
|
||||
gvToTypes := map[clientgentypes.GroupVersion][]*types.Type{}
|
||||
for gv, inputDir := range customArgs.GroupVersionToInputPath {
|
||||
p := context.Universe.Package(inputDir)
|
||||
for n, t := range p.Types {
|
||||
|
@ -215,12 +214,15 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
|
|||
}
|
||||
|
||||
orderer := namer.Orderer{Namer: namer.NewPrivateNamer(0)}
|
||||
for _, gv := range customArgs.GroupVersions {
|
||||
for _, group := range customArgs.Groups {
|
||||
for _, version := range group.Versions {
|
||||
gv := clientgentypes.GroupVersion{Group: group.Group, Version: version}
|
||||
types := gvToTypes[gv]
|
||||
inputPath := customArgs.GroupVersionToInputPath[gv]
|
||||
packageList = append(packageList, packageForGroup(normalization.GroupVersion(gv), orderer.OrderTypes(types), typedClientBasePath, customArgs.ClientsetAPIPath, arguments.OutputBase, inputPath, boilerplate, generatedBy))
|
||||
packageList = append(packageList, packageForGroup(gv, orderer.OrderTypes(types), typedClientBasePath, customArgs.ClientsetAPIPath, arguments.OutputBase, inputPath, boilerplate, generatedBy))
|
||||
if customArgs.FakeClient {
|
||||
packageList = append(packageList, fake.PackageForGroup(normalization.GroupVersion(gv), orderer.OrderTypes(types), typedClientBasePath, arguments.OutputBase, inputPath, boilerplate, generatedBy))
|
||||
packageList = append(packageList, fake.PackageForGroup(gv, orderer.OrderTypes(types), typedClientBasePath, arguments.OutputBase, inputPath, boilerplate, generatedBy))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,8 +21,7 @@ go_library(
|
|||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//cmd/libs/go2idl/client-gen/args:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/generators/normalization:go_default_library",
|
||||
"//pkg/api/unversioned:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/types:go_default_library",
|
||||
"//vendor:github.com/golang/glog",
|
||||
"//vendor:k8s.io/gengo/generator",
|
||||
"//vendor:k8s.io/gengo/namer",
|
||||
|
|
|
@ -25,14 +25,13 @@ import (
|
|||
"k8s.io/gengo/generator"
|
||||
"k8s.io/gengo/types"
|
||||
clientgenargs "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/args"
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/normalization"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
clientgentypes "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types"
|
||||
)
|
||||
|
||||
func PackageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packageBasePath string, srcTreePath string, inputPath string, boilerplate []byte, generatedBy string) generator.Package {
|
||||
outputPackagePath := filepath.Join(packageBasePath, gv.Group, gv.Version, "fake")
|
||||
func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, packageBasePath string, srcTreePath string, inputPath string, boilerplate []byte, generatedBy string) generator.Package {
|
||||
outputPackagePath := strings.ToLower(filepath.Join(packageBasePath, gv.Group.NonEmpty(), gv.Version.NonEmpty(), "fake"))
|
||||
// TODO: should make this a function, called by here and in client-generator.go
|
||||
realClientPath := filepath.Join(packageBasePath, gv.Group, gv.Version)
|
||||
realClientPath := filepath.Join(packageBasePath, gv.Group.NonEmpty(), gv.Version.NonEmpty())
|
||||
return &generator.DefaultPackage{
|
||||
PackageName: "fake",
|
||||
PackagePath: outputPackagePath,
|
||||
|
@ -56,9 +55,9 @@ func PackageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packag
|
|||
OptionalName: "fake_" + strings.ToLower(c.Namers["private"].Name(t)),
|
||||
},
|
||||
outputPackage: outputPackagePath,
|
||||
group: normalization.BeforeFirstDot(gv.Group),
|
||||
group: gv.Group.NonEmpty(),
|
||||
version: gv.Version.String(),
|
||||
inputPackage: inputPath,
|
||||
version: gv.Version,
|
||||
typeToMatch: t,
|
||||
imports: generator.NewImportTracker(),
|
||||
})
|
||||
|
@ -66,11 +65,12 @@ func PackageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packag
|
|||
|
||||
generators = append(generators, &genFakeForGroup{
|
||||
DefaultGen: generator.DefaultGen{
|
||||
OptionalName: "fake_" + normalization.BeforeFirstDot(gv.Group) + "_client",
|
||||
OptionalName: "fake_" + gv.Group.NonEmpty() + "_client",
|
||||
},
|
||||
outputPackage: outputPackagePath,
|
||||
realClientPath: realClientPath,
|
||||
group: normalization.BeforeFirstDot(gv.Group),
|
||||
group: gv.Group.NonEmpty(),
|
||||
version: gv.Version.String(),
|
||||
types: typeList,
|
||||
imports: generator.NewImportTracker(),
|
||||
})
|
||||
|
@ -112,7 +112,7 @@ func PackageForClientset(customArgs clientgenargs.Args, typedClientBasePath stri
|
|||
DefaultGen: generator.DefaultGen{
|
||||
OptionalName: "clientset_generated",
|
||||
},
|
||||
groupVersions: customArgs.GroupVersions,
|
||||
groups: customArgs.Groups,
|
||||
typedClientPath: typedClientBasePath,
|
||||
outputPackage: "fake",
|
||||
imports: generator.NewImportTracker(),
|
||||
|
|
|
@ -20,18 +20,18 @@ import (
|
|||
"fmt"
|
||||
"io"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"k8s.io/gengo/generator"
|
||||
"k8s.io/gengo/namer"
|
||||
"k8s.io/gengo/types"
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/normalization"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
clientgentypes "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types"
|
||||
)
|
||||
|
||||
// genClientset generates a package for a clientset.
|
||||
type genClientset struct {
|
||||
generator.DefaultGen
|
||||
groupVersions []unversioned.GroupVersion
|
||||
groups []clientgentypes.GroupVersions
|
||||
typedClientPath string
|
||||
outputPackage string
|
||||
imports namer.ImportTracker
|
||||
|
@ -57,14 +57,13 @@ func (g *genClientset) Filter(c *generator.Context, t *types.Type) bool {
|
|||
|
||||
func (g *genClientset) Imports(c *generator.Context) (imports []string) {
|
||||
imports = append(imports, g.imports.ImportLines()...)
|
||||
for _, gv := range g.groupVersions {
|
||||
group := normalization.Group(gv.Group)
|
||||
version := normalization.Version(gv.Version)
|
||||
undotted_group := normalization.BeforeFirstDot(group)
|
||||
typedClientPath := filepath.Join(g.typedClientPath, group, version)
|
||||
imports = append(imports, fmt.Sprintf("%s%s \"%s\"", version, undotted_group, typedClientPath))
|
||||
for _, group := range g.groups {
|
||||
for _, version := range group.Versions {
|
||||
typedClientPath := filepath.Join(g.typedClientPath, group.Group.NonEmpty(), version.NonEmpty())
|
||||
imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", version.NonEmpty(), group.Group.NonEmpty(), typedClientPath)))
|
||||
fakeTypedClientPath := filepath.Join(typedClientPath, "fake")
|
||||
imports = append(imports, fmt.Sprintf("fake%s%s \"%s\"", version, undotted_group, fakeTypedClientPath))
|
||||
imports = append(imports, strings.ToLower(fmt.Sprintf("fake%s%s \"%s\"", version.NonEmpty(), group.Group.NonEmpty(), fakeTypedClientPath)))
|
||||
}
|
||||
}
|
||||
// the package that has the clientset Interface
|
||||
imports = append(imports, fmt.Sprintf("clientset \"%s\"", g.clientsetPath))
|
||||
|
@ -91,19 +90,14 @@ func (g *genClientset) GenerateType(c *generator.Context, t *types.Type, w io.Wr
|
|||
|
||||
sw.Do(checkImpl, nil)
|
||||
|
||||
type arg struct {
|
||||
Group string
|
||||
PackageName string
|
||||
}
|
||||
allGroups := []arg{}
|
||||
for _, gv := range g.groupVersions {
|
||||
group := normalization.BeforeFirstDot(normalization.Group(gv.Group))
|
||||
version := normalization.Version(gv.Version)
|
||||
allGroups = append(allGroups, arg{namer.IC(group), version + group})
|
||||
}
|
||||
allGroups := clientgentypes.ToGroupVersionPackages(g.groups)
|
||||
|
||||
for _, g := range allGroups {
|
||||
sw.Do(clientsetInterfaceImplTemplate, g)
|
||||
// don't generated the default method if generating internalversion clientset
|
||||
if g.IsDefaultVersion && g.Version != "" {
|
||||
sw.Do(clientsetInterfaceDefaultVersionImpl, g)
|
||||
}
|
||||
}
|
||||
|
||||
return sw.Error()
|
||||
|
@ -148,8 +142,15 @@ var _ clientset.Interface = &Clientset{}
|
|||
`
|
||||
|
||||
var clientsetInterfaceImplTemplate = `
|
||||
// $.Group$ retrieves the $.Group$Client
|
||||
func (c *Clientset) $.Group$() $.PackageName$.$.Group$Interface {
|
||||
return &fake$.PackageName$.Fake$.Group${Fake: &c.Fake}
|
||||
// $.GroupVersion$ retrieves the $.GroupVersion$Client
|
||||
func (c *Clientset) $.GroupVersion$() $.PackageName$.$.GroupVersion$Interface {
|
||||
return &fake$.PackageName$.Fake$.GroupVersion${Fake: &c.Fake}
|
||||
}
|
||||
`
|
||||
|
||||
var clientsetInterfaceDefaultVersionImpl = `
|
||||
// $.Group$ retrieves the $.GroupVersion$Client
|
||||
func (c *Clientset) $.Group$() $.PackageName$.$.GroupVersion$Interface {
|
||||
return &fake$.PackageName$.Fake$.GroupVersion${Fake: &c.Fake}
|
||||
}
|
||||
`
|
||||
|
|
|
@ -20,6 +20,7 @@ import (
|
|||
"fmt"
|
||||
"io"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"k8s.io/gengo/generator"
|
||||
"k8s.io/gengo/namer"
|
||||
|
@ -32,6 +33,7 @@ type genFakeForGroup struct {
|
|||
outputPackage string
|
||||
realClientPath string
|
||||
group string
|
||||
version string
|
||||
// types in this group
|
||||
types []*types.Type
|
||||
imports namer.ImportTracker
|
||||
|
@ -51,7 +53,7 @@ func (g *genFakeForGroup) Namers(c *generator.Context) namer.NameSystems {
|
|||
}
|
||||
|
||||
func (g *genFakeForGroup) Imports(c *generator.Context) (imports []string) {
|
||||
imports = append(g.imports.ImportLines(), fmt.Sprintf("%s \"%s\"", filepath.Base(g.realClientPath), g.realClientPath))
|
||||
imports = append(g.imports.ImportLines(), strings.ToLower(fmt.Sprintf("%s \"%s\"", filepath.Base(g.realClientPath), g.realClientPath)))
|
||||
return imports
|
||||
}
|
||||
|
||||
|
@ -61,7 +63,7 @@ func (g *genFakeForGroup) GenerateType(c *generator.Context, t *types.Type, w io
|
|||
const pkgRESTClient = "k8s.io/kubernetes/pkg/client/restclient"
|
||||
m := map[string]interface{}{
|
||||
"group": g.group,
|
||||
"Group": namer.IC(g.group),
|
||||
"GroupVersion": namer.IC(g.group) + namer.IC(g.version),
|
||||
"Fake": c.Universe.Type(types.Name{Package: pkgTestingCore, Name: "Fake"}),
|
||||
"RESTClientInterface": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Interface"}),
|
||||
"RESTClient": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "RESTClient"}),
|
||||
|
@ -70,8 +72,8 @@ func (g *genFakeForGroup) GenerateType(c *generator.Context, t *types.Type, w io
|
|||
for _, t := range g.types {
|
||||
wrapper := map[string]interface{}{
|
||||
"type": t,
|
||||
"Group": namer.IC(g.group),
|
||||
"realClientPackage": filepath.Base(g.realClientPath),
|
||||
"GroupVersion": namer.IC(g.group) + namer.IC(g.version),
|
||||
"realClientPackage": strings.ToLower(filepath.Base(g.realClientPath)),
|
||||
}
|
||||
namespaced := !extractBoolTagOrDie("nonNamespaced", t.SecondClosestCommentLines)
|
||||
if namespaced {
|
||||
|
@ -86,19 +88,19 @@ func (g *genFakeForGroup) GenerateType(c *generator.Context, t *types.Type, w io
|
|||
}
|
||||
|
||||
var groupClientTemplate = `
|
||||
type Fake$.Group$ struct {
|
||||
type Fake$.GroupVersion$ struct {
|
||||
*$.Fake|raw$
|
||||
}
|
||||
`
|
||||
|
||||
var getterImplNamespaced = `
|
||||
func (c *Fake$.Group$) $.type|publicPlural$(namespace string) $.realClientPackage$.$.type|public$Interface {
|
||||
func (c *Fake$.GroupVersion$) $.type|publicPlural$(namespace string) $.realClientPackage$.$.type|public$Interface {
|
||||
return &Fake$.type|publicPlural${c, namespace}
|
||||
}
|
||||
`
|
||||
|
||||
var getterImplNonNamespaced = `
|
||||
func (c *Fake$.Group$) $.type|publicPlural$() $.realClientPackage$.$.type|public$Interface {
|
||||
func (c *Fake$.GroupVersion$) $.type|publicPlural$() $.realClientPackage$.$.type|public$Interface {
|
||||
return &Fake$.type|publicPlural${c}
|
||||
}
|
||||
`
|
||||
|
@ -106,7 +108,7 @@ func (c *Fake$.Group$) $.type|publicPlural$() $.realClientPackage$.$.type|public
|
|||
var getRESTClient = `
|
||||
// RESTClient returns a RESTClient that is used to communicate
|
||||
// with API server by this client implementation.
|
||||
func (c *Fake$.Group$) RESTClient() $.RESTClientInterface|raw$ {
|
||||
func (c *Fake$.GroupVersion$) RESTClient() $.RESTClientInterface|raw$ {
|
||||
var ret *$.RESTClient|raw$
|
||||
return ret
|
||||
}
|
||||
|
|
|
@ -31,8 +31,8 @@ type genFakeForType struct {
|
|||
generator.DefaultGen
|
||||
outputPackage string
|
||||
group string
|
||||
inputPackage string
|
||||
version string
|
||||
inputPackage string
|
||||
typeToMatch *types.Type
|
||||
imports namer.ImportTracker
|
||||
}
|
||||
|
@ -84,10 +84,6 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
|
|||
if canonicalGroup == "core" {
|
||||
canonicalGroup = ""
|
||||
}
|
||||
canonicalVersion := g.version
|
||||
if canonicalVersion == "unversioned" {
|
||||
canonicalVersion = ""
|
||||
}
|
||||
|
||||
groupName := g.group
|
||||
if g.group == "core" {
|
||||
|
@ -106,9 +102,10 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
|
|||
"Package": namer.IC(pkg),
|
||||
"namespaced": namespaced,
|
||||
"Group": namer.IC(g.group),
|
||||
"GroupVersion": namer.IC(g.group) + namer.IC(g.version),
|
||||
"group": canonicalGroup,
|
||||
"groupName": groupName,
|
||||
"version": canonicalVersion,
|
||||
"version": g.version,
|
||||
"watchInterface": c.Universe.Type(types.Name{Package: "k8s.io/kubernetes/pkg/watch", Name: "Interface"}),
|
||||
"GroupVersionResource": c.Universe.Type(types.Name{Package: "k8s.io/kubernetes/pkg/api/unversioned", Name: "GroupVersionResource"}),
|
||||
"PatchType": c.Universe.Type(types.Name{Package: "k8s.io/kubernetes/pkg/api", Name: "PatchType"}),
|
||||
|
@ -137,7 +134,7 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
|
|||
"ExtractFromListOptions": c.Universe.Function(types.Name{Package: pkgTestingCore, Name: "ExtractFromListOptions"}),
|
||||
}
|
||||
|
||||
if g.version == "unversioned" {
|
||||
if g.version == "" {
|
||||
m["DeleteOptions"] = c.Universe.Type(types.Name{Package: "k8s.io/kubernetes/pkg/api", Name: "DeleteOptions"})
|
||||
m["ListOptions"] = c.Universe.Type(types.Name{Package: "k8s.io/kubernetes/pkg/api", Name: "ListOptions"})
|
||||
} else {
|
||||
|
@ -180,7 +177,7 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
|
|||
var structNamespaced = `
|
||||
// Fake$.type|publicPlural$ implements $.type|public$Interface
|
||||
type Fake$.type|publicPlural$ struct {
|
||||
Fake *Fake$.Group$
|
||||
Fake *Fake$.GroupVersion$
|
||||
ns string
|
||||
}
|
||||
`
|
||||
|
@ -189,7 +186,7 @@ type Fake$.type|publicPlural$ struct {
|
|||
var structNonNamespaced = `
|
||||
// Fake$.type|publicPlural$ implements $.type|public$Interface
|
||||
type Fake$.type|publicPlural$ struct {
|
||||
Fake *Fake$.Group$
|
||||
Fake *Fake$.GroupVersion$
|
||||
}
|
||||
`
|
||||
|
||||
|
|
|
@ -20,18 +20,18 @@ import (
|
|||
"fmt"
|
||||
"io"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"k8s.io/gengo/generator"
|
||||
"k8s.io/gengo/namer"
|
||||
"k8s.io/gengo/types"
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/normalization"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
clientgentypes "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types"
|
||||
)
|
||||
|
||||
// genClientset generates a package for a clientset.
|
||||
type genClientset struct {
|
||||
generator.DefaultGen
|
||||
groupVersions []unversioned.GroupVersion
|
||||
groups []clientgentypes.GroupVersions
|
||||
typedClientPath string
|
||||
outputPackage string
|
||||
imports namer.ImportTracker
|
||||
|
@ -55,12 +55,11 @@ func (g *genClientset) Filter(c *generator.Context, t *types.Type) bool {
|
|||
|
||||
func (g *genClientset) Imports(c *generator.Context) (imports []string) {
|
||||
imports = append(imports, g.imports.ImportLines()...)
|
||||
for _, gv := range g.groupVersions {
|
||||
group := normalization.Group(gv.Group)
|
||||
version := normalization.Version(gv.Version)
|
||||
typedClientPath := filepath.Join(g.typedClientPath, group, version)
|
||||
group = normalization.BeforeFirstDot(group)
|
||||
imports = append(imports, fmt.Sprintf("%s%s \"%s\"", version, group, typedClientPath))
|
||||
for _, group := range g.groups {
|
||||
for _, version := range group.Versions {
|
||||
typedClientPath := filepath.Join(g.typedClientPath, group.Group.NonEmpty(), version.NonEmpty())
|
||||
imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", version.NonEmpty(), group.Group.NonEmpty(), typedClientPath)))
|
||||
}
|
||||
}
|
||||
imports = append(imports, "github.com/golang/glog")
|
||||
imports = append(imports, "k8s.io/kubernetes/pkg/util/flowcontrol")
|
||||
|
@ -76,17 +75,7 @@ func (g *genClientset) GenerateType(c *generator.Context, t *types.Type, w io.Wr
|
|||
const pkgDiscovery = "k8s.io/kubernetes/pkg/client/typed/discovery"
|
||||
const pkgRESTClient = "k8s.io/kubernetes/pkg/client/restclient"
|
||||
|
||||
type arg struct {
|
||||
Group string
|
||||
PackageName string
|
||||
}
|
||||
|
||||
allGroups := []arg{}
|
||||
for _, gv := range g.groupVersions {
|
||||
group := normalization.BeforeFirstDot(normalization.Group(gv.Group))
|
||||
version := normalization.Version(gv.Version)
|
||||
allGroups = append(allGroups, arg{namer.IC(group), version + group})
|
||||
}
|
||||
allGroups := clientgentypes.ToGroupVersionPackages(g.groups)
|
||||
|
||||
m := map[string]interface{}{
|
||||
"allGroups": allGroups,
|
||||
|
@ -99,10 +88,14 @@ func (g *genClientset) GenerateType(c *generator.Context, t *types.Type, w io.Wr
|
|||
"NewDiscoveryClientForConfigOrDie": c.Universe.Function(types.Name{Package: pkgDiscovery, Name: "NewDiscoveryClientForConfigOrDie"}),
|
||||
"NewDiscoveryClient": c.Universe.Function(types.Name{Package: pkgDiscovery, Name: "NewDiscoveryClient"}),
|
||||
}
|
||||
sw.Do(clientsetInterfaceTemplate, m)
|
||||
sw.Do(clientsetInterface, m)
|
||||
sw.Do(clientsetTemplate, m)
|
||||
for _, g := range allGroups {
|
||||
sw.Do(clientsetInterfaceImplTemplate, g)
|
||||
// don't generated the default method if generating internalversion clientset
|
||||
if g.IsDefaultVersion && g.Version != "" {
|
||||
sw.Do(clientsetInterfaceDefaultVersionImpl, g)
|
||||
}
|
||||
}
|
||||
sw.Do(getDiscoveryTemplate, m)
|
||||
sw.Do(newClientsetForConfigTemplate, m)
|
||||
|
@ -112,10 +105,12 @@ func (g *genClientset) GenerateType(c *generator.Context, t *types.Type, w io.Wr
|
|||
return sw.Error()
|
||||
}
|
||||
|
||||
var clientsetInterfaceTemplate = `
|
||||
var clientsetInterface = `
|
||||
type Interface interface {
|
||||
Discovery() $.DiscoveryInterface|raw$
|
||||
$range .allGroups$$.Group$() $.PackageName$.$.Group$Interface
|
||||
$range .allGroups$$.GroupVersion$() $.PackageName$.$.GroupVersion$Interface
|
||||
$if .IsDefaultVersion$// Deprecated: please explicitly pick a version if possible.
|
||||
$.Group$() $.PackageName$.$.GroupVersion$Interface$end$
|
||||
$end$
|
||||
}
|
||||
`
|
||||
|
@ -125,20 +120,32 @@ var clientsetTemplate = `
|
|||
// version included in a Clientset.
|
||||
type Clientset struct {
|
||||
*$.DiscoveryClient|raw$
|
||||
$range .allGroups$*$.PackageName$.$.Group$Client
|
||||
$range .allGroups$*$.PackageName$.$.GroupVersion$Client
|
||||
$end$
|
||||
}
|
||||
`
|
||||
|
||||
var clientsetInterfaceImplTemplate = `
|
||||
// $.Group$ retrieves the $.Group$Client
|
||||
func (c *Clientset) $.Group$() $.PackageName$.$.Group$Interface {
|
||||
// $.GroupVersion$ retrieves the $.GroupVersion$Client
|
||||
func (c *Clientset) $.GroupVersion$() $.PackageName$.$.GroupVersion$Interface {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
return c.$.Group$Client
|
||||
return c.$.GroupVersion$Client
|
||||
}
|
||||
`
|
||||
|
||||
var clientsetInterfaceDefaultVersionImpl = `
|
||||
// Deprecated: $.Group$ retrieves the default version of $.Group$Client.
|
||||
// Please explicitly pick a version.
|
||||
func (c *Clientset) $.Group$() $.PackageName$.$.GroupVersion$Interface {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
return c.$.GroupVersion$Client
|
||||
}
|
||||
`
|
||||
|
||||
var getDiscoveryTemplate = `
|
||||
// Discovery retrieves the DiscoveryClient
|
||||
func (c *Clientset) Discovery() $.DiscoveryInterface|raw$ {
|
||||
|
@ -155,7 +162,7 @@ func NewForConfig(c *$.Config|raw$) (*Clientset, error) {
|
|||
}
|
||||
var clientset Clientset
|
||||
var err error
|
||||
$range .allGroups$ clientset.$.Group$Client, err =$.PackageName$.NewForConfig(&configShallowCopy)
|
||||
$range .allGroups$ clientset.$.GroupVersion$Client, err =$.PackageName$.NewForConfig(&configShallowCopy)
|
||||
if err!=nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -174,7 +181,7 @@ var newClientsetForConfigOrDieTemplate = `
|
|||
// panics if there is an error in the config.
|
||||
func NewForConfigOrDie(c *$.Config|raw$) *Clientset {
|
||||
var clientset Clientset
|
||||
$range .allGroups$ clientset.$.Group$Client =$.PackageName$.NewForConfigOrDie(c)
|
||||
$range .allGroups$ clientset.$.GroupVersion$Client =$.PackageName$.NewForConfigOrDie(c)
|
||||
$end$
|
||||
clientset.DiscoveryClient = $.NewDiscoveryClientForConfigOrDie|raw$(c)
|
||||
return &clientset
|
||||
|
@ -185,7 +192,7 @@ var newClientsetForRESTClientTemplate = `
|
|||
// New creates a new Clientset for the given RESTClient.
|
||||
func New(c $.RESTClientInterface|raw$) *Clientset {
|
||||
var clientset Clientset
|
||||
$range .allGroups$ clientset.$.Group$Client =$.PackageName$.New(c)
|
||||
$range .allGroups$ clientset.$.GroupVersion$Client =$.PackageName$.New(c)
|
||||
$end$
|
||||
clientset.DiscoveryClient = $.NewDiscoveryClient|raw$(c)
|
||||
return &clientset
|
||||
|
|
|
@ -22,7 +22,6 @@ import (
|
|||
"k8s.io/gengo/generator"
|
||||
"k8s.io/gengo/namer"
|
||||
"k8s.io/gengo/types"
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/normalization"
|
||||
)
|
||||
|
||||
// genGroup produces a file for a group client, e.g. ExtensionsClient for the extension group.
|
||||
|
@ -62,6 +61,8 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
|
|||
const pkgRegistered = "k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||
const pkgAPI = "k8s.io/kubernetes/pkg/api"
|
||||
const pkgSerializer = "k8s.io/kubernetes/pkg/runtime/serializer"
|
||||
const pkgUnversioned = "k8s.io/kubernetes/pkg/api/unversioned"
|
||||
|
||||
apiPath := func(group string) string {
|
||||
if len(g.apiPath) > 0 {
|
||||
return `"` + g.apiPath + `"`
|
||||
|
@ -83,16 +84,19 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
|
|||
}
|
||||
|
||||
m := map[string]interface{}{
|
||||
"group": normalization.BeforeFirstDot(g.group),
|
||||
"Group": namer.IC(normalization.BeforeFirstDot(g.group)),
|
||||
"group": g.group,
|
||||
"version": g.version,
|
||||
"GroupVersion": namer.IC(g.group) + namer.IC(g.version),
|
||||
"groupName": groupName,
|
||||
"types": g.types,
|
||||
"Config": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Config"}),
|
||||
"DefaultKubernetesUserAgent": c.Universe.Function(types.Name{Package: pkgRESTClient, Name: "DefaultKubernetesUserAgent"}),
|
||||
"RESTClientInterface": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Interface"}),
|
||||
"RESTClientFor": c.Universe.Function(types.Name{Package: pkgRESTClient, Name: "RESTClientFor"}),
|
||||
"latestGroup": c.Universe.Variable(types.Name{Package: pkgRegistered, Name: "Group"}),
|
||||
"Group": c.Universe.Variable(types.Name{Package: pkgRegistered, Name: "Group"}),
|
||||
"GroupOrDie": c.Universe.Variable(types.Name{Package: pkgRegistered, Name: "GroupOrDie"}),
|
||||
"IsEnabledVersion": c.Universe.Variable(types.Name{Package: pkgRegistered, Name: "IsEnabledVersion"}),
|
||||
"ParseGroupVersion": c.Universe.Function(types.Name{Package: pkgUnversioned, Name: "ParseGroupVersion"}),
|
||||
"apiPath": apiPath(g.group),
|
||||
"codecs": c.Universe.Variable(types.Name{Package: pkgAPI, Name: "Codecs"}),
|
||||
"directCodecFactory": c.Universe.Variable(types.Name{Package: pkgSerializer, Name: "DirectCodecFactory"}),
|
||||
|
@ -103,7 +107,7 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
|
|||
for _, t := range g.types {
|
||||
wrapper := map[string]interface{}{
|
||||
"type": t,
|
||||
"Group": namer.IC(normalization.BeforeFirstDot(g.group)),
|
||||
"GroupVersion": namer.IC(g.group) + namer.IC(g.version),
|
||||
}
|
||||
namespaced := !extractBoolTagOrDie("nonNamespaced", t.SecondClosestCommentLines)
|
||||
if namespaced {
|
||||
|
@ -116,7 +120,7 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
|
|||
sw.Do(newClientForConfigTemplate, m)
|
||||
sw.Do(newClientForConfigOrDieTemplate, m)
|
||||
sw.Do(newClientForRESTClientTemplate, m)
|
||||
if g.version == "unversioned" {
|
||||
if g.version == "" {
|
||||
sw.Do(setInternalVersionClientDefaultsTemplate, m)
|
||||
} else {
|
||||
sw.Do(setClientDefaultsTemplate, m)
|
||||
|
@ -127,7 +131,7 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
|
|||
}
|
||||
|
||||
var groupInterfaceTemplate = `
|
||||
type $.Group$Interface interface {
|
||||
type $.GroupVersion$Interface interface {
|
||||
RESTClient() $.RESTClientInterface|raw$
|
||||
$range .types$ $.|publicPlural$Getter
|
||||
$end$
|
||||
|
@ -135,27 +139,27 @@ type $.Group$Interface interface {
|
|||
`
|
||||
|
||||
var groupClientTemplate = `
|
||||
// $.Group$Client is used to interact with features provided by the $.Group$ group.
|
||||
type $.Group$Client struct {
|
||||
// $.GroupVersion$Client is used to interact with features provided by the $.Group$ group.
|
||||
type $.GroupVersion$Client struct {
|
||||
restClient $.RESTClientInterface|raw$
|
||||
}
|
||||
`
|
||||
|
||||
var getterImplNamespaced = `
|
||||
func (c *$.Group$Client) $.type|publicPlural$(namespace string) $.type|public$Interface {
|
||||
func (c *$.GroupVersion$Client) $.type|publicPlural$(namespace string) $.type|public$Interface {
|
||||
return new$.type|publicPlural$(c, namespace)
|
||||
}
|
||||
`
|
||||
|
||||
var getterImplNonNamespaced = `
|
||||
func (c *$.Group$Client) $.type|publicPlural$() $.type|public$Interface {
|
||||
func (c *$.GroupVersion$Client) $.type|publicPlural$() $.type|public$Interface {
|
||||
return new$.type|publicPlural$(c)
|
||||
}
|
||||
`
|
||||
|
||||
var newClientForConfigTemplate = `
|
||||
// NewForConfig creates a new $.Group$Client for the given config.
|
||||
func NewForConfig(c *$.Config|raw$) (*$.Group$Client, error) {
|
||||
// NewForConfig creates a new $.GroupVersion$Client for the given config.
|
||||
func NewForConfig(c *$.Config|raw$) (*$.GroupVersion$Client, error) {
|
||||
config := *c
|
||||
if err := setConfigDefaults(&config); err != nil {
|
||||
return nil, err
|
||||
|
@ -164,14 +168,14 @@ func NewForConfig(c *$.Config|raw$) (*$.Group$Client, error) {
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &$.Group$Client{client}, nil
|
||||
return &$.GroupVersion$Client{client}, nil
|
||||
}
|
||||
`
|
||||
|
||||
var newClientForConfigOrDieTemplate = `
|
||||
// NewForConfigOrDie creates a new $.Group$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.
|
||||
func NewForConfigOrDie(c *$.Config|raw$) *$.Group$Client {
|
||||
func NewForConfigOrDie(c *$.Config|raw$) *$.GroupVersion$Client {
|
||||
client, err := NewForConfig(c)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
@ -183,7 +187,7 @@ func NewForConfigOrDie(c *$.Config|raw$) *$.Group$Client {
|
|||
var getRESTClient = `
|
||||
// RESTClient returns a RESTClient that is used to communicate
|
||||
// with API server by this client implementation.
|
||||
func (c *$.Group$Client) RESTClient() $.RESTClientInterface|raw$ {
|
||||
func (c *$.GroupVersion$Client) RESTClient() $.RESTClientInterface|raw$ {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
|
@ -192,15 +196,15 @@ func (c *$.Group$Client) RESTClient() $.RESTClientInterface|raw$ {
|
|||
`
|
||||
|
||||
var newClientForRESTClientTemplate = `
|
||||
// New creates a new $.Group$Client for the given RESTClient.
|
||||
func New(c $.RESTClientInterface|raw$) *$.Group$Client {
|
||||
return &$.Group$Client{c}
|
||||
// New creates a new $.GroupVersion$Client for the given RESTClient.
|
||||
func New(c $.RESTClientInterface|raw$) *$.GroupVersion$Client {
|
||||
return &$.GroupVersion$Client{c}
|
||||
}
|
||||
`
|
||||
var setInternalVersionClientDefaultsTemplate = `
|
||||
func setConfigDefaults(config *$.Config|raw$) error {
|
||||
// if $.group$ group is not registered, return an error
|
||||
g, err := $.latestGroup|raw$("$.groupName$")
|
||||
g, err := $.Group|raw$("$.groupName$")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -226,20 +230,20 @@ func setConfigDefaults(config *$.Config|raw$) error {
|
|||
|
||||
var setClientDefaultsTemplate = `
|
||||
func setConfigDefaults(config *$.Config|raw$) error {
|
||||
// if $.group$ group is not registered, return an error
|
||||
g, err := $.latestGroup|raw$("$.groupName$")
|
||||
gv, err := $.ParseGroupVersion|raw$("$.groupName$/$.version$")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// if $.groupName$/$.version$ is not enabled, return an error
|
||||
if ! $.IsEnabledVersion|raw$(gv) {
|
||||
return $.Errorf|raw$("$.groupName$/$.version$ is not enabled")
|
||||
}
|
||||
config.APIPath = $.apiPath$
|
||||
if config.UserAgent == "" {
|
||||
config.UserAgent = $.DefaultKubernetesUserAgent|raw$()
|
||||
}
|
||||
// TODO: Unconditionally set the config.Version, until we fix the config.
|
||||
//if config.Version == "" {
|
||||
copyGroupVersion := g.GroupVersion
|
||||
copyGroupVersion := gv
|
||||
config.GroupVersion = ©GroupVersion
|
||||
//}
|
||||
|
||||
config.NegotiatedSerializer = $.directCodecFactory|raw${CodecFactory: $.codecs|raw$}
|
||||
|
||||
|
|
|
@ -73,6 +73,7 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i
|
|||
"package": pkg,
|
||||
"Package": namer.IC(pkg),
|
||||
"Group": namer.IC(g.group),
|
||||
"GroupVersion": namer.IC(g.group) + namer.IC(g.version),
|
||||
"watchInterface": c.Universe.Type(types.Name{Package: "k8s.io/kubernetes/pkg/watch", Name: "Interface"}),
|
||||
"RESTClientInterface": c.Universe.Type(types.Name{Package: "k8s.io/kubernetes/pkg/client/restclient", Name: "Interface"}),
|
||||
"apiParameterCodec": c.Universe.Type(types.Name{Package: "k8s.io/kubernetes/pkg/api", Name: "ParameterCodec"}),
|
||||
|
@ -80,7 +81,7 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i
|
|||
"namespaced": namespaced,
|
||||
}
|
||||
|
||||
if g.version == "unversioned" {
|
||||
if g.version == "" {
|
||||
m["DeleteOptions"] = c.Universe.Type(types.Name{Package: "k8s.io/kubernetes/pkg/api", Name: "DeleteOptions"})
|
||||
m["ListOptions"] = c.Universe.Type(types.Name{Package: "k8s.io/kubernetes/pkg/api", Name: "ListOptions"})
|
||||
} else {
|
||||
|
@ -195,7 +196,7 @@ type $.type|privatePlural$ struct {
|
|||
|
||||
var newStructNamespaced = `
|
||||
// new$.type|publicPlural$ returns a $.type|publicPlural$
|
||||
func new$.type|publicPlural$(c *$.Group$Client, namespace string) *$.type|privatePlural$ {
|
||||
func new$.type|publicPlural$(c *$.GroupVersion$Client, namespace string) *$.type|privatePlural$ {
|
||||
return &$.type|privatePlural${
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
|
@ -205,7 +206,7 @@ func new$.type|publicPlural$(c *$.Group$Client, namespace string) *$.type|privat
|
|||
|
||||
var newStructNonNamespaced = `
|
||||
// new$.type|publicPlural$ returns a $.type|publicPlural$
|
||||
func new$.type|publicPlural$(c *$.Group$Client) *$.type|privatePlural$ {
|
||||
func new$.type|publicPlural$(c *$.GroupVersion$Client) *$.type|privatePlural$ {
|
||||
return &$.type|privatePlural${
|
||||
client: c.RESTClient(),
|
||||
}
|
||||
|
|
|
@ -1,45 +0,0 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package normalization
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
)
|
||||
|
||||
func Group(group string) string {
|
||||
if group == "api" {
|
||||
return "core"
|
||||
}
|
||||
return group
|
||||
}
|
||||
|
||||
func Version(version string) string {
|
||||
if version == "" {
|
||||
return "unversioned"
|
||||
}
|
||||
return version
|
||||
}
|
||||
|
||||
func GroupVersion(gv unversioned.GroupVersion) unversioned.GroupVersion {
|
||||
return unversioned.GroupVersion{Group: Group(gv.Group), Version: Version(gv.Version)}
|
||||
}
|
||||
|
||||
func BeforeFirstDot(dotted string) string {
|
||||
return strings.Split(dotted, ".")[0]
|
||||
}
|
|
@ -20,12 +20,13 @@ package main
|
|||
import (
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"k8s.io/gengo/args"
|
||||
clientgenargs "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/args"
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types"
|
||||
|
||||
"github.com/golang/glog"
|
||||
flag "github.com/spf13/pflag"
|
||||
|
@ -91,36 +92,48 @@ func parsePathGroupVersion(pgvString string) (gvPath string, gvString string) {
|
|||
}
|
||||
}
|
||||
|
||||
func parseInputVersions() (paths []string, groupVersions []unversioned.GroupVersion, gvToPath map[unversioned.GroupVersion]string, err error) {
|
||||
var visitedGroups = make(map[string]struct{})
|
||||
gvToPath = make(map[unversioned.GroupVersion]string)
|
||||
func parseInputVersions() (paths []string, groups []types.GroupVersions, gvToPath map[types.GroupVersion]string, err error) {
|
||||
var seenGroups = make(map[types.Group]*types.GroupVersions)
|
||||
gvToPath = make(map[types.GroupVersion]string)
|
||||
for _, input := range *inputVersions {
|
||||
gvPath, gvString := parsePathGroupVersion(input)
|
||||
gv, err := unversioned.ParseGroupVersion(gvString)
|
||||
gv, err := types.ToGroupVersion(gvString)
|
||||
if err != nil {
|
||||
return nil, nil, nil, err
|
||||
}
|
||||
|
||||
if _, found := visitedGroups[gv.Group]; found {
|
||||
return nil, nil, nil, fmt.Errorf("group %q appeared more than once in the input. At most one version is allowed for each group.", gv.Group)
|
||||
if group, ok := seenGroups[gv.Group]; ok {
|
||||
(*seenGroups[gv.Group]).Versions = append(group.Versions, gv.Version)
|
||||
} else {
|
||||
seenGroups[gv.Group] = &types.GroupVersions{
|
||||
Group: gv.Group,
|
||||
Versions: []types.Version{gv.Version},
|
||||
}
|
||||
visitedGroups[gv.Group] = struct{}{}
|
||||
groupVersions = append(groupVersions, gv)
|
||||
path := versionToPath(gvPath, gv.Group, gv.Version)
|
||||
}
|
||||
|
||||
path := versionToPath(gvPath, gv.Group.String(), gv.Version.String())
|
||||
paths = append(paths, path)
|
||||
gvToPath[gv] = path
|
||||
}
|
||||
return paths, groupVersions, gvToPath, nil
|
||||
var groupNames []string
|
||||
for groupName := range seenGroups {
|
||||
groupNames = append(groupNames, groupName.String())
|
||||
}
|
||||
sort.Strings(groupNames)
|
||||
for _, groupName := range groupNames {
|
||||
groups = append(groups, *seenGroups[types.Group(groupName)])
|
||||
}
|
||||
|
||||
func parseIncludedTypesOverrides() (map[unversioned.GroupVersion][]string, error) {
|
||||
overrides := make(map[unversioned.GroupVersion][]string)
|
||||
return paths, groups, gvToPath, nil
|
||||
}
|
||||
|
||||
func parseIncludedTypesOverrides() (map[types.GroupVersion][]string, error) {
|
||||
overrides := make(map[types.GroupVersion][]string)
|
||||
for _, input := range *includedTypesOverrides {
|
||||
gvString, typeStr, err := parseGroupVersionType(input)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
gv, err := unversioned.ParseGroupVersion(gvString)
|
||||
gv, err := types.ToGroupVersion(gvString)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -155,12 +168,12 @@ func main() {
|
|||
|
||||
if *test {
|
||||
arguments.InputDirs = append(dependencies, []string{
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io",
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup",
|
||||
}...)
|
||||
arguments.CustomArgs = clientgenargs.Args{
|
||||
GroupVersions: []unversioned.GroupVersion{{Group: "testgroup.k8s.io", Version: ""}},
|
||||
GroupVersionToInputPath: map[unversioned.GroupVersion]string{
|
||||
unversioned.GroupVersion{Group: "testgroup.k8s.io", Version: ""}: "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io",
|
||||
Groups: []types.GroupVersions{{Group: "testgroup", Versions: []types.Version{""}}},
|
||||
GroupVersionToInputPath: map[types.GroupVersion]string{
|
||||
types.GroupVersion{Group: "testgroup", Version: ""}: "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup",
|
||||
},
|
||||
ClientsetName: "test_internalclientset",
|
||||
ClientsetOutputPath: "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/",
|
||||
|
@ -169,7 +182,7 @@ func main() {
|
|||
CmdArgs: cmdArgs,
|
||||
}
|
||||
} else {
|
||||
inputPath, groupVersions, gvToPath, err := parseInputVersions()
|
||||
inputPath, groups, gvToPath, err := parseInputVersions()
|
||||
if err != nil {
|
||||
glog.Fatalf("Error: %v", err)
|
||||
}
|
||||
|
@ -181,7 +194,7 @@ func main() {
|
|||
arguments.InputDirs = append(inputPath, dependencies...)
|
||||
|
||||
arguments.CustomArgs = clientgenargs.Args{
|
||||
GroupVersions: groupVersions,
|
||||
Groups: groups,
|
||||
GroupVersionToInputPath: gvToPath,
|
||||
ClientsetName: *clientsetName,
|
||||
ClientsetAPIPath: *clientsetAPIPath,
|
||||
|
|
|
@ -15,4 +15,4 @@ limitations under the License.
|
|||
*/
|
||||
|
||||
// +groupName=testgroup.k8s.io
|
||||
package testgroup // import "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io"
|
||||
package testgroup // import "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup"
|
|
@ -15,8 +15,8 @@ go_library(
|
|||
srcs = ["install.go"],
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/v1:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/test_apis/testgroup:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/test_apis/testgroup/v1:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/meta:go_default_library",
|
||||
"//pkg/api/unversioned:go_default_library",
|
|
@ -23,8 +23,8 @@ import (
|
|||
|
||||
"github.com/golang/glog"
|
||||
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io"
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/v1"
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup"
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup/v1"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/meta"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
|
@ -34,7 +34,7 @@ import (
|
|||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
)
|
||||
|
||||
const importPrefix = "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io"
|
||||
const importPrefix = "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup"
|
||||
|
||||
var accessor = meta.NewAccessor()
|
||||
|
|
@ -15,4 +15,5 @@ limitations under the License.
|
|||
*/
|
||||
|
||||
// +k8s:openapi-gen=true
|
||||
// +groupName=testgroup.k8s.io
|
||||
package v1
|
|
@ -18,7 +18,7 @@ go_library(
|
|||
],
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup/internalversion:go_default_library",
|
||||
"//pkg/client/restclient:go_default_library",
|
||||
"//pkg/client/typed/discovery:go_default_library",
|
||||
"//pkg/util/flowcontrol:go_default_library",
|
||||
|
|
|
@ -18,7 +18,7 @@ package test_internalclientset
|
|||
|
||||
import (
|
||||
"github.com/golang/glog"
|
||||
unversionedtestgroup "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned"
|
||||
internalversiontestgroup "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup/internalversion"
|
||||
restclient "k8s.io/kubernetes/pkg/client/restclient"
|
||||
discovery "k8s.io/kubernetes/pkg/client/typed/discovery"
|
||||
"k8s.io/kubernetes/pkg/util/flowcontrol"
|
||||
|
@ -27,18 +27,18 @@ import (
|
|||
|
||||
type Interface interface {
|
||||
Discovery() discovery.DiscoveryInterface
|
||||
Testgroup() unversionedtestgroup.TestgroupInterface
|
||||
Testgroup() internalversiontestgroup.TestgroupInterface
|
||||
}
|
||||
|
||||
// Clientset contains the clients for groups. Each group has exactly one
|
||||
// version included in a Clientset.
|
||||
type Clientset struct {
|
||||
*discovery.DiscoveryClient
|
||||
*unversionedtestgroup.TestgroupClient
|
||||
*internalversiontestgroup.TestgroupClient
|
||||
}
|
||||
|
||||
// Testgroup retrieves the TestgroupClient
|
||||
func (c *Clientset) Testgroup() unversionedtestgroup.TestgroupInterface {
|
||||
func (c *Clientset) Testgroup() internalversiontestgroup.TestgroupInterface {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
|
@ -58,7 +58,7 @@ func NewForConfig(c *restclient.Config) (*Clientset, error) {
|
|||
}
|
||||
var clientset Clientset
|
||||
var err error
|
||||
clientset.TestgroupClient, err = unversionedtestgroup.NewForConfig(&configShallowCopy)
|
||||
clientset.TestgroupClient, err = internalversiontestgroup.NewForConfig(&configShallowCopy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ func NewForConfig(c *restclient.Config) (*Clientset, error) {
|
|||
// panics if there is an error in the config.
|
||||
func NewForConfigOrDie(c *restclient.Config) *Clientset {
|
||||
var clientset Clientset
|
||||
clientset.TestgroupClient = unversionedtestgroup.NewForConfigOrDie(c)
|
||||
clientset.TestgroupClient = internalversiontestgroup.NewForConfigOrDie(c)
|
||||
|
||||
clientset.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c)
|
||||
return &clientset
|
||||
|
@ -84,7 +84,7 @@ func NewForConfigOrDie(c *restclient.Config) *Clientset {
|
|||
// New creates a new Clientset for the given RESTClient.
|
||||
func New(c restclient.Interface) *Clientset {
|
||||
var clientset Clientset
|
||||
clientset.TestgroupClient = unversionedtestgroup.New(c)
|
||||
clientset.TestgroupClient = internalversiontestgroup.New(c)
|
||||
|
||||
clientset.DiscoveryClient = discovery.NewDiscoveryClient(c)
|
||||
return &clientset
|
||||
|
|
|
@ -19,8 +19,8 @@ go_library(
|
|||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned/fake:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup/internalversion:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup/internalversion/fake:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/apimachinery/registered:go_default_library",
|
||||
"//pkg/client/testing/core:go_default_library",
|
||||
|
|
|
@ -18,8 +18,8 @@ package fake
|
|||
|
||||
import (
|
||||
clientset "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset"
|
||||
unversionedtestgroup "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned"
|
||||
fakeunversionedtestgroup "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned/fake"
|
||||
internalversiontestgroup "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup/internalversion"
|
||||
fakeinternalversiontestgroup "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup/internalversion/fake"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||
"k8s.io/kubernetes/pkg/client/testing/core"
|
||||
|
@ -63,6 +63,6 @@ func (c *Clientset) Discovery() discovery.DiscoveryInterface {
|
|||
var _ clientset.Interface = &Clientset{}
|
||||
|
||||
// Testgroup retrieves the TestgroupClient
|
||||
func (c *Clientset) Testgroup() unversionedtestgroup.TestgroupInterface {
|
||||
return &fakeunversionedtestgroup.FakeTestgroup{Fake: &c.Fake}
|
||||
func (c *Clientset) Testgroup() internalversiontestgroup.TestgroupInterface {
|
||||
return &fakeinternalversiontestgroup.FakeTestgroup{Fake: &c.Fake}
|
||||
}
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
licenses(["notice"])
|
||||
|
||||
load(
|
||||
"@io_bazel_rules_go//go:def.bzl",
|
||||
"go_binary",
|
||||
"go_library",
|
||||
"go_test",
|
||||
"cgo_library",
|
||||
)
|
||||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = [
|
||||
"doc.go",
|
||||
"generated_expansion.go",
|
||||
"testgroup_client.go",
|
||||
"testtype.go",
|
||||
"testtype_expansion.go",
|
||||
],
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/apimachinery/registered:go_default_library",
|
||||
"//pkg/client/restclient:go_default_library",
|
||||
"//pkg/watch:go_default_library",
|
||||
],
|
||||
)
|
||||
|
||||
go_test(
|
||||
name = "go_default_xtest",
|
||||
srcs = ["testgroup_test.go"],
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/install:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/testapi:go_default_library",
|
||||
"//pkg/api/unversioned:go_default_library",
|
||||
"//pkg/apimachinery/registered:go_default_library",
|
||||
"//pkg/client/restclient:go_default_library",
|
||||
"//pkg/client/unversioned/testclient/simple:go_default_library",
|
||||
"//pkg/labels:go_default_library",
|
||||
],
|
||||
)
|
|
@ -1,293 +0,0 @@
|
|||
/*
|
||||
Copyright 2015 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned_test
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/url"
|
||||
"testing"
|
||||
|
||||
testgroup "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io"
|
||||
_ "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/install"
|
||||
. "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/testapi"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||
"k8s.io/kubernetes/pkg/client/restclient"
|
||||
"k8s.io/kubernetes/pkg/client/unversioned/testclient/simple"
|
||||
"k8s.io/kubernetes/pkg/labels"
|
||||
)
|
||||
|
||||
var testHelper testapi.TestGroup
|
||||
|
||||
func init() {
|
||||
if _, found := testapi.Groups[testgroup.SchemeGroupVersion.Group]; found {
|
||||
return
|
||||
}
|
||||
externalGroupVersion := registered.GroupOrDie(testgroup.SchemeGroupVersion.Group).GroupVersion
|
||||
testapi.Groups[testgroup.SchemeGroupVersion.Group] = testapi.NewTestGroup(
|
||||
externalGroupVersion,
|
||||
testgroup.SchemeGroupVersion,
|
||||
api.Scheme.KnownTypes(testgroup.SchemeGroupVersion),
|
||||
api.Scheme.KnownTypes(externalGroupVersion))
|
||||
testHelper = testapi.Groups[testgroup.SchemeGroupVersion.Group]
|
||||
}
|
||||
|
||||
type DecoratedSimpleClient struct {
|
||||
*TestgroupClient
|
||||
simpleClient simple.Client
|
||||
}
|
||||
|
||||
func (c *DecoratedSimpleClient) Setup(t *testing.T) *DecoratedSimpleClient {
|
||||
c.simpleClient.Setup(t)
|
||||
url := c.simpleClient.ServerURL()
|
||||
c.TestgroupClient = NewForConfigOrDie(&restclient.Config{
|
||||
Host: url,
|
||||
})
|
||||
return c
|
||||
}
|
||||
|
||||
func TestCreateTestTypes(t *testing.T) {
|
||||
ns := api.NamespaceDefault
|
||||
requestTestType := &testgroup.TestType{}
|
||||
c := DecoratedSimpleClient{
|
||||
simpleClient: simple.Client{
|
||||
Request: simple.Request{Method: "POST", Path: testHelper.ResourcePath("testtypes", ns, ""), Query: simple.BuildQueryValues(nil), Body: requestTestType},
|
||||
Response: simple.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
Body: requestTestType,
|
||||
},
|
||||
},
|
||||
}
|
||||
receivedTestType, err := c.Setup(t).TestTypes(ns).Create(requestTestType)
|
||||
c.simpleClient.Validate(t, receivedTestType, err)
|
||||
}
|
||||
|
||||
func TestUpdateTestType(t *testing.T) {
|
||||
ns := api.NamespaceDefault
|
||||
requestTestType := &testgroup.TestType{
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Name: "foo",
|
||||
ResourceVersion: "1",
|
||||
Labels: map[string]string{
|
||||
"foo": "bar",
|
||||
"name": "baz",
|
||||
},
|
||||
},
|
||||
}
|
||||
c := DecoratedSimpleClient{
|
||||
simpleClient: simple.Client{
|
||||
Request: simple.Request{Method: "PUT", Path: testHelper.ResourcePath("testtypes", ns, "foo"), Query: simple.BuildQueryValues(nil)},
|
||||
Response: simple.Response{StatusCode: http.StatusOK, Body: requestTestType},
|
||||
},
|
||||
}
|
||||
receivedTestType, err := c.Setup(t).TestTypes(ns).Update(requestTestType)
|
||||
c.simpleClient.Validate(t, receivedTestType, err)
|
||||
}
|
||||
|
||||
func TestUpdateStatusTestType(t *testing.T) {
|
||||
ns := api.NamespaceDefault
|
||||
requestTestType := &testgroup.TestType{
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Name: "foo",
|
||||
ResourceVersion: "1",
|
||||
Labels: map[string]string{
|
||||
"foo": "bar",
|
||||
"name": "baz",
|
||||
},
|
||||
},
|
||||
Status: testgroup.TestTypeStatus{Blah: "I'm in good status"},
|
||||
}
|
||||
c := DecoratedSimpleClient{
|
||||
simpleClient: simple.Client{
|
||||
Request: simple.Request{Method: "PUT", Path: testHelper.ResourcePath("testtypes", ns, "foo"), Query: simple.BuildQueryValues(nil)},
|
||||
Response: simple.Response{StatusCode: http.StatusOK, Body: requestTestType},
|
||||
},
|
||||
}
|
||||
receivedTestType, err := c.Setup(t).TestTypes(ns).Update(requestTestType)
|
||||
c.simpleClient.Validate(t, receivedTestType, err)
|
||||
}
|
||||
|
||||
func TestDeleteTestType(t *testing.T) {
|
||||
ns := api.NamespaceDefault
|
||||
c := DecoratedSimpleClient{
|
||||
simpleClient: simple.Client{
|
||||
Request: simple.Request{Method: "DELETE", Path: testHelper.ResourcePath("testtypes", ns, "foo"), Query: simple.BuildQueryValues(nil)},
|
||||
Response: simple.Response{StatusCode: http.StatusOK},
|
||||
},
|
||||
}
|
||||
err := c.Setup(t).TestTypes(ns).Delete("foo", nil)
|
||||
c.simpleClient.Validate(t, nil, err)
|
||||
}
|
||||
|
||||
func TestGetTestType(t *testing.T) {
|
||||
ns := api.NamespaceDefault
|
||||
c := DecoratedSimpleClient{
|
||||
simpleClient: simple.Client{
|
||||
Request: simple.Request{Method: "GET", Path: testHelper.ResourcePath("testtypes", ns, "foo"), Query: simple.BuildQueryValues(nil)},
|
||||
Response: simple.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
Body: &testgroup.TestType{
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Labels: map[string]string{
|
||||
"foo": "bar",
|
||||
"name": "baz",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
receivedTestType, err := c.Setup(t).TestTypes(ns).Get("foo")
|
||||
c.simpleClient.Validate(t, receivedTestType, err)
|
||||
}
|
||||
|
||||
func TestGetTestTypeWithNoName(t *testing.T) {
|
||||
ns := api.NamespaceDefault
|
||||
c := DecoratedSimpleClient{
|
||||
simpleClient: simple.Client{Error: true},
|
||||
}
|
||||
receivedTestType, err := c.Setup(t).TestTypes(ns).Get("")
|
||||
if (err != nil) && (err.Error() != simple.NameRequiredError) {
|
||||
t.Errorf("Expected error: %v, but got %v", simple.NameRequiredError, err)
|
||||
}
|
||||
|
||||
c.simpleClient.Validate(t, receivedTestType, err)
|
||||
}
|
||||
|
||||
func TestListEmptyTestTypes(t *testing.T) {
|
||||
ns := api.NamespaceDefault
|
||||
c := DecoratedSimpleClient{
|
||||
simpleClient: simple.Client{
|
||||
Request: simple.Request{Method: "GET", Path: testHelper.ResourcePath("testtypes", ns, ""), Query: simple.BuildQueryValues(nil)},
|
||||
Response: simple.Response{StatusCode: http.StatusOK, Body: &testgroup.TestTypeList{}},
|
||||
},
|
||||
}
|
||||
podList, err := c.Setup(t).TestTypes(ns).List(api.ListOptions{})
|
||||
c.simpleClient.Validate(t, podList, err)
|
||||
}
|
||||
|
||||
func TestListTestTypes(t *testing.T) {
|
||||
ns := api.NamespaceDefault
|
||||
c := DecoratedSimpleClient{
|
||||
simpleClient: simple.Client{
|
||||
Request: simple.Request{Method: "GET", Path: testHelper.ResourcePath("testtypes", ns, ""), Query: simple.BuildQueryValues(nil)},
|
||||
Response: simple.Response{StatusCode: http.StatusOK,
|
||||
Body: &testgroup.TestTypeList{
|
||||
Items: []testgroup.TestType{
|
||||
{
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Labels: map[string]string{
|
||||
"foo": "bar",
|
||||
"name": "baz",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
receivedTestTypeList, err := c.Setup(t).TestTypes(ns).List(api.ListOptions{})
|
||||
c.simpleClient.Validate(t, receivedTestTypeList, err)
|
||||
}
|
||||
|
||||
func TestListTestTypesLabels(t *testing.T) {
|
||||
ns := api.NamespaceDefault
|
||||
labelSelectorQueryParamName := unversioned.LabelSelectorQueryParam(testHelper.GroupVersion().String())
|
||||
c := DecoratedSimpleClient{
|
||||
simpleClient: simple.Client{
|
||||
Request: simple.Request{
|
||||
Method: "GET",
|
||||
Path: testHelper.ResourcePath("testtypes", ns, ""),
|
||||
Query: simple.BuildQueryValues(url.Values{labelSelectorQueryParamName: []string{"foo=bar,name=baz"}})},
|
||||
Response: simple.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
Body: &testgroup.TestTypeList{
|
||||
Items: []testgroup.TestType{
|
||||
{
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Labels: map[string]string{
|
||||
"foo": "bar",
|
||||
"name": "baz",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
c.Setup(t)
|
||||
c.simpleClient.QueryValidator[labelSelectorQueryParamName] = simple.ValidateLabels
|
||||
selector := labels.Set{"foo": "bar", "name": "baz"}.AsSelector()
|
||||
options := api.ListOptions{LabelSelector: selector}
|
||||
receivedTestTypeList, err := c.TestTypes(ns).List(options)
|
||||
c.simpleClient.Validate(t, receivedTestTypeList, err)
|
||||
}
|
||||
|
||||
func TestExpansionInterface(t *testing.T) {
|
||||
c := New(nil)
|
||||
if e, a := "hello!", c.TestTypes("").Hello(); e != a {
|
||||
t.Errorf("expansion failed")
|
||||
}
|
||||
}
|
||||
|
||||
func TestPatchTestType(t *testing.T) {
|
||||
ns := api.NamespaceDefault
|
||||
requestTestType := &testgroup.TestType{
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Name: "foo",
|
||||
ResourceVersion: "1",
|
||||
Labels: map[string]string{
|
||||
"foo": "bar",
|
||||
"name": "baz",
|
||||
},
|
||||
},
|
||||
}
|
||||
c := DecoratedSimpleClient{
|
||||
simpleClient: simple.Client{
|
||||
Request: simple.Request{Method: "PATCH", Path: testHelper.ResourcePath("testtypes", ns, "foo"), Query: simple.BuildQueryValues(nil)},
|
||||
Response: simple.Response{StatusCode: http.StatusOK, Body: requestTestType},
|
||||
},
|
||||
}
|
||||
receivedTestType, err := c.Setup(t).TestTypes(ns).Patch(requestTestType.Name, api.StrategicMergePatchType, []byte{})
|
||||
c.simpleClient.Validate(t, receivedTestType, err)
|
||||
}
|
||||
|
||||
func TestPatchSubresourcesTestType(t *testing.T) {
|
||||
ns := api.NamespaceDefault
|
||||
requestTestType := &testgroup.TestType{
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Name: "foo",
|
||||
ResourceVersion: "1",
|
||||
Labels: map[string]string{
|
||||
"foo": "bar",
|
||||
"name": "baz",
|
||||
},
|
||||
},
|
||||
}
|
||||
c := DecoratedSimpleClient{
|
||||
simpleClient: simple.Client{
|
||||
Request: simple.Request{Method: "PATCH", Path: testHelper.ResourcePath("testtypes", ns, "foo/status"), Query: simple.BuildQueryValues(nil)},
|
||||
Response: simple.Response{StatusCode: http.StatusOK, Body: requestTestType},
|
||||
},
|
||||
}
|
||||
receivedTestType, err := c.Setup(t).TestTypes(ns).Patch(requestTestType.Name, api.StrategicMergePatchType, []byte{}, "status")
|
||||
c.simpleClient.Validate(t, receivedTestType, err)
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
licenses(["notice"])
|
||||
|
||||
load(
|
||||
"@io_bazel_rules_go//go:def.bzl",
|
||||
"go_binary",
|
||||
"go_library",
|
||||
"go_test",
|
||||
"cgo_library",
|
||||
)
|
||||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = [
|
||||
"doc.go",
|
||||
"generated_expansion.go",
|
||||
"testgroup_client.go",
|
||||
"testtype.go",
|
||||
],
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//cmd/libs/go2idl/client-gen/test_apis/testgroup:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/apimachinery/registered:go_default_library",
|
||||
"//pkg/client/restclient:go_default_library",
|
||||
"//pkg/watch:go_default_library",
|
||||
],
|
||||
)
|
|
@ -17,4 +17,4 @@ limitations under the License.
|
|||
// This package is generated by client-gen with arguments: --test=true
|
||||
|
||||
// This package has the automatically generated typed clients.
|
||||
package unversioned
|
||||
package internalversion
|
|
@ -16,12 +16,11 @@ go_library(
|
|||
"doc.go",
|
||||
"fake_testgroup_client.go",
|
||||
"fake_testtype.go",
|
||||
"fake_testtype_expansion.go",
|
||||
],
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/test_apis/testgroup:go_default_library",
|
||||
"//cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup/internalversion:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/unversioned:go_default_library",
|
||||
"//pkg/client/restclient:go_default_library",
|
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||
package fake
|
||||
|
||||
import (
|
||||
unversioned "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned"
|
||||
internalversion "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup/internalversion"
|
||||
restclient "k8s.io/kubernetes/pkg/client/restclient"
|
||||
core "k8s.io/kubernetes/pkg/client/testing/core"
|
||||
)
|
||||
|
@ -26,7 +26,7 @@ type FakeTestgroup struct {
|
|||
*core.Fake
|
||||
}
|
||||
|
||||
func (c *FakeTestgroup) TestTypes(namespace string) unversioned.TestTypeInterface {
|
||||
func (c *FakeTestgroup) TestTypes(namespace string) internalversion.TestTypeInterface {
|
||||
return &FakeTestTypes{c, namespace}
|
||||
}
|
||||
|
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||
package fake
|
||||
|
||||
import (
|
||||
testgroup_k8s_io "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io"
|
||||
testgroup "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup"
|
||||
api "k8s.io/kubernetes/pkg/api"
|
||||
unversioned "k8s.io/kubernetes/pkg/api/unversioned"
|
||||
core "k8s.io/kubernetes/pkg/client/testing/core"
|
||||
|
@ -33,39 +33,39 @@ type FakeTestTypes struct {
|
|||
|
||||
var testtypesResource = unversioned.GroupVersionResource{Group: "testgroup.k8s.io", Version: "", Resource: "testtypes"}
|
||||
|
||||
func (c *FakeTestTypes) Create(testType *testgroup_k8s_io.TestType) (result *testgroup_k8s_io.TestType, err error) {
|
||||
func (c *FakeTestTypes) Create(testType *testgroup.TestType) (result *testgroup.TestType, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(core.NewCreateAction(testtypesResource, c.ns, testType), &testgroup_k8s_io.TestType{})
|
||||
Invokes(core.NewCreateAction(testtypesResource, c.ns, testType), &testgroup.TestType{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*testgroup_k8s_io.TestType), err
|
||||
return obj.(*testgroup.TestType), err
|
||||
}
|
||||
|
||||
func (c *FakeTestTypes) Update(testType *testgroup_k8s_io.TestType) (result *testgroup_k8s_io.TestType, err error) {
|
||||
func (c *FakeTestTypes) Update(testType *testgroup.TestType) (result *testgroup.TestType, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(core.NewUpdateAction(testtypesResource, c.ns, testType), &testgroup_k8s_io.TestType{})
|
||||
Invokes(core.NewUpdateAction(testtypesResource, c.ns, testType), &testgroup.TestType{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*testgroup_k8s_io.TestType), err
|
||||
return obj.(*testgroup.TestType), err
|
||||
}
|
||||
|
||||
func (c *FakeTestTypes) UpdateStatus(testType *testgroup_k8s_io.TestType) (*testgroup_k8s_io.TestType, error) {
|
||||
func (c *FakeTestTypes) UpdateStatus(testType *testgroup.TestType) (*testgroup.TestType, error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(core.NewUpdateSubresourceAction(testtypesResource, "status", c.ns, testType), &testgroup_k8s_io.TestType{})
|
||||
Invokes(core.NewUpdateSubresourceAction(testtypesResource, "status", c.ns, testType), &testgroup.TestType{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*testgroup_k8s_io.TestType), err
|
||||
return obj.(*testgroup.TestType), err
|
||||
}
|
||||
|
||||
func (c *FakeTestTypes) Delete(name string, options *api.DeleteOptions) error {
|
||||
_, err := c.Fake.
|
||||
Invokes(core.NewDeleteAction(testtypesResource, c.ns, name), &testgroup_k8s_io.TestType{})
|
||||
Invokes(core.NewDeleteAction(testtypesResource, c.ns, name), &testgroup.TestType{})
|
||||
|
||||
return err
|
||||
}
|
||||
|
@ -73,23 +73,23 @@ func (c *FakeTestTypes) Delete(name string, options *api.DeleteOptions) error {
|
|||
func (c *FakeTestTypes) DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error {
|
||||
action := core.NewDeleteCollectionAction(testtypesResource, c.ns, listOptions)
|
||||
|
||||
_, err := c.Fake.Invokes(action, &testgroup_k8s_io.TestTypeList{})
|
||||
_, err := c.Fake.Invokes(action, &testgroup.TestTypeList{})
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *FakeTestTypes) Get(name string) (result *testgroup_k8s_io.TestType, err error) {
|
||||
func (c *FakeTestTypes) Get(name string) (result *testgroup.TestType, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(core.NewGetAction(testtypesResource, c.ns, name), &testgroup_k8s_io.TestType{})
|
||||
Invokes(core.NewGetAction(testtypesResource, c.ns, name), &testgroup.TestType{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*testgroup_k8s_io.TestType), err
|
||||
return obj.(*testgroup.TestType), err
|
||||
}
|
||||
|
||||
func (c *FakeTestTypes) List(opts api.ListOptions) (result *testgroup_k8s_io.TestTypeList, err error) {
|
||||
func (c *FakeTestTypes) List(opts api.ListOptions) (result *testgroup.TestTypeList, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(core.NewListAction(testtypesResource, c.ns, opts), &testgroup_k8s_io.TestTypeList{})
|
||||
Invokes(core.NewListAction(testtypesResource, c.ns, opts), &testgroup.TestTypeList{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
|
@ -99,8 +99,8 @@ func (c *FakeTestTypes) List(opts api.ListOptions) (result *testgroup_k8s_io.Tes
|
|||
if label == nil {
|
||||
label = labels.Everything()
|
||||
}
|
||||
list := &testgroup_k8s_io.TestTypeList{}
|
||||
for _, item := range obj.(*testgroup_k8s_io.TestTypeList).Items {
|
||||
list := &testgroup.TestTypeList{}
|
||||
for _, item := range obj.(*testgroup.TestTypeList).Items {
|
||||
if label.Matches(labels.Set(item.Labels)) {
|
||||
list.Items = append(list.Items, item)
|
||||
}
|
||||
|
@ -116,12 +116,12 @@ func (c *FakeTestTypes) Watch(opts api.ListOptions) (watch.Interface, error) {
|
|||
}
|
||||
|
||||
// Patch applies the patch and returns the patched testType.
|
||||
func (c *FakeTestTypes) Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *testgroup_k8s_io.TestType, err error) {
|
||||
func (c *FakeTestTypes) Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *testgroup.TestType, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(core.NewPatchSubresourceAction(testtypesResource, c.ns, name, data, subresources...), &testgroup_k8s_io.TestType{})
|
||||
Invokes(core.NewPatchSubresourceAction(testtypesResource, c.ns, name, data, subresources...), &testgroup.TestType{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*testgroup_k8s_io.TestType), err
|
||||
return obj.(*testgroup.TestType), err
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package internalversion
|
||||
|
||||
type TestTypeExpansion interface{}
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
import (
|
||||
api "k8s.io/kubernetes/pkg/api"
|
||||
|
@ -27,7 +27,7 @@ type TestgroupInterface interface {
|
|||
TestTypesGetter
|
||||
}
|
||||
|
||||
// TestgroupClient is used to interact with features provided by the Testgroup group.
|
||||
// TestgroupClient is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group.
|
||||
type TestgroupClient struct {
|
||||
restClient restclient.Interface
|
||||
}
|
|
@ -14,10 +14,10 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
import (
|
||||
testgroup_k8s_io "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io"
|
||||
testgroup "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup"
|
||||
api "k8s.io/kubernetes/pkg/api"
|
||||
restclient "k8s.io/kubernetes/pkg/client/restclient"
|
||||
watch "k8s.io/kubernetes/pkg/watch"
|
||||
|
@ -31,15 +31,15 @@ type TestTypesGetter interface {
|
|||
|
||||
// TestTypeInterface has methods to work with TestType resources.
|
||||
type TestTypeInterface interface {
|
||||
Create(*testgroup_k8s_io.TestType) (*testgroup_k8s_io.TestType, error)
|
||||
Update(*testgroup_k8s_io.TestType) (*testgroup_k8s_io.TestType, error)
|
||||
UpdateStatus(*testgroup_k8s_io.TestType) (*testgroup_k8s_io.TestType, error)
|
||||
Create(*testgroup.TestType) (*testgroup.TestType, error)
|
||||
Update(*testgroup.TestType) (*testgroup.TestType, error)
|
||||
UpdateStatus(*testgroup.TestType) (*testgroup.TestType, error)
|
||||
Delete(name string, options *api.DeleteOptions) error
|
||||
DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error
|
||||
Get(name string) (*testgroup_k8s_io.TestType, error)
|
||||
List(opts api.ListOptions) (*testgroup_k8s_io.TestTypeList, error)
|
||||
Get(name string) (*testgroup.TestType, error)
|
||||
List(opts api.ListOptions) (*testgroup.TestTypeList, error)
|
||||
Watch(opts api.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *testgroup_k8s_io.TestType, err error)
|
||||
Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *testgroup.TestType, err error)
|
||||
TestTypeExpansion
|
||||
}
|
||||
|
||||
|
@ -58,8 +58,8 @@ func newTestTypes(c *TestgroupClient, namespace string) *testTypes {
|
|||
}
|
||||
|
||||
// Create takes the representation of a testType and creates it. Returns the server's representation of the testType, and an error, if there is any.
|
||||
func (c *testTypes) Create(testType *testgroup_k8s_io.TestType) (result *testgroup_k8s_io.TestType, err error) {
|
||||
result = &testgroup_k8s_io.TestType{}
|
||||
func (c *testTypes) Create(testType *testgroup.TestType) (result *testgroup.TestType, err error) {
|
||||
result = &testgroup.TestType{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("testtypes").
|
||||
|
@ -70,8 +70,8 @@ func (c *testTypes) Create(testType *testgroup_k8s_io.TestType) (result *testgro
|
|||
}
|
||||
|
||||
// Update takes the representation of a testType and updates it. Returns the server's representation of the testType, and an error, if there is any.
|
||||
func (c *testTypes) Update(testType *testgroup_k8s_io.TestType) (result *testgroup_k8s_io.TestType, err error) {
|
||||
result = &testgroup_k8s_io.TestType{}
|
||||
func (c *testTypes) Update(testType *testgroup.TestType) (result *testgroup.TestType, err error) {
|
||||
result = &testgroup.TestType{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("testtypes").
|
||||
|
@ -82,8 +82,8 @@ func (c *testTypes) Update(testType *testgroup_k8s_io.TestType) (result *testgro
|
|||
return
|
||||
}
|
||||
|
||||
func (c *testTypes) UpdateStatus(testType *testgroup_k8s_io.TestType) (result *testgroup_k8s_io.TestType, err error) {
|
||||
result = &testgroup_k8s_io.TestType{}
|
||||
func (c *testTypes) UpdateStatus(testType *testgroup.TestType) (result *testgroup.TestType, err error) {
|
||||
result = &testgroup.TestType{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("testtypes").
|
||||
|
@ -118,8 +118,8 @@ func (c *testTypes) DeleteCollection(options *api.DeleteOptions, listOptions api
|
|||
}
|
||||
|
||||
// Get takes name of the testType, and returns the corresponding testType object, and an error if there is any.
|
||||
func (c *testTypes) Get(name string) (result *testgroup_k8s_io.TestType, err error) {
|
||||
result = &testgroup_k8s_io.TestType{}
|
||||
func (c *testTypes) Get(name string) (result *testgroup.TestType, err error) {
|
||||
result = &testgroup.TestType{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("testtypes").
|
||||
|
@ -130,8 +130,8 @@ func (c *testTypes) Get(name string) (result *testgroup_k8s_io.TestType, err err
|
|||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of TestTypes that match those selectors.
|
||||
func (c *testTypes) List(opts api.ListOptions) (result *testgroup_k8s_io.TestTypeList, err error) {
|
||||
result = &testgroup_k8s_io.TestTypeList{}
|
||||
func (c *testTypes) List(opts api.ListOptions) (result *testgroup.TestTypeList, err error) {
|
||||
result = &testgroup.TestTypeList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("testtypes").
|
||||
|
@ -152,8 +152,8 @@ func (c *testTypes) Watch(opts api.ListOptions) (watch.Interface, error) {
|
|||
}
|
||||
|
||||
// Patch applies the patch and returns the patched testType.
|
||||
func (c *testTypes) Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *testgroup_k8s_io.TestType, err error) {
|
||||
result = &testgroup_k8s_io.TestType{}
|
||||
func (c *testTypes) Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *testgroup.TestType, err error) {
|
||||
result = &testgroup.TestType{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("testtypes").
|
|
@ -12,7 +12,18 @@ load(
|
|||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["normalization.go"],
|
||||
srcs = [
|
||||
"helpers.go",
|
||||
"types.go",
|
||||
],
|
||||
tags = ["automanaged"],
|
||||
deps = ["//pkg/api/unversioned:go_default_library"],
|
||||
deps = ["//vendor:k8s.io/gengo/namer"],
|
||||
)
|
||||
|
||||
go_test(
|
||||
name = "go_default_test",
|
||||
srcs = ["helpers_test.go"],
|
||||
library = "go_default_library",
|
||||
tags = ["automanaged"],
|
||||
deps = [],
|
||||
)
|
|
@ -0,0 +1,108 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package types
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"regexp"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"k8s.io/gengo/namer"
|
||||
)
|
||||
|
||||
// ToGroupVersion turns "group/version" string into a GroupVersion struct. It reports error
|
||||
// if it cannot parse the string.
|
||||
func ToGroupVersion(gv string) (GroupVersion, error) {
|
||||
// this can be the internal version for the legacy kube types
|
||||
// TODO once we've cleared the last uses as strings, this special case should be removed.
|
||||
if (len(gv) == 0) || (gv == "/") {
|
||||
return GroupVersion{}, nil
|
||||
}
|
||||
|
||||
switch strings.Count(gv, "/") {
|
||||
case 0:
|
||||
return GroupVersion{"", Version(gv)}, nil
|
||||
case 1:
|
||||
i := strings.Index(gv, "/")
|
||||
return GroupVersion{Group(gv[:i]), Version(gv[i+1:])}, nil
|
||||
default:
|
||||
return GroupVersion{}, fmt.Errorf("unexpected GroupVersion string: %v", gv)
|
||||
}
|
||||
}
|
||||
|
||||
type sortableSliceOfVersions []string
|
||||
|
||||
func (a sortableSliceOfVersions) Len() int { return len(a) }
|
||||
func (a sortableSliceOfVersions) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
||||
func (a sortableSliceOfVersions) Less(i, j int) bool {
|
||||
vi, vj := strings.TrimLeft(a[i], "v"), strings.TrimLeft(a[j], "v")
|
||||
major := regexp.MustCompile("^[0-9]+")
|
||||
viMajor, vjMajor := major.FindString(vi), major.FindString(vj)
|
||||
viRemaining, vjRemaining := strings.TrimLeft(vi, viMajor), strings.TrimLeft(vj, vjMajor)
|
||||
switch {
|
||||
case len(viRemaining) == 0 && len(vjRemaining) == 0:
|
||||
return viMajor < vjMajor
|
||||
case len(viRemaining) == 0 && len(vjRemaining) != 0:
|
||||
// stable version is greater than unstable version
|
||||
return false
|
||||
case len(viRemaining) != 0 && len(vjRemaining) == 0:
|
||||
// stable version is greater than unstable version
|
||||
return true
|
||||
}
|
||||
// neither are stable versions
|
||||
if viMajor != vjMajor {
|
||||
return viMajor < vjMajor
|
||||
}
|
||||
// assuming at most we have one alpha or one beta version, so if vi contains "alpha", it's the lesser one.
|
||||
return strings.Contains(viRemaining, "alpha")
|
||||
}
|
||||
|
||||
// Determine the default version among versions. If a user calls a group client
|
||||
// without specifying the version (e.g., c.Core(), instead of c.CoreV1()), the
|
||||
// default version will be returned.
|
||||
func defaultVersion(versions []Version) Version {
|
||||
var versionStrings []string
|
||||
for _, version := range versions {
|
||||
versionStrings = append(versionStrings, string(version))
|
||||
}
|
||||
sort.Sort(sortableSliceOfVersions(versionStrings))
|
||||
return Version(versionStrings[len(versionStrings)-1])
|
||||
}
|
||||
|
||||
// ToGroupVersionPackages is a helper function used by generators for groups.
|
||||
func ToGroupVersionPackages(groups []GroupVersions) []GroupVersionPackage {
|
||||
var groupVersionPackages []GroupVersionPackage
|
||||
for _, group := range groups {
|
||||
defaultVersion := defaultVersion(group.Versions)
|
||||
for _, version := range group.Versions {
|
||||
groupVersionPackages = append(groupVersionPackages, GroupVersionPackage{
|
||||
Group: Group(namer.IC(group.Group.NonEmpty())),
|
||||
Version: Version(namer.IC(version.String())),
|
||||
GroupVersion: namer.IC(group.Group.NonEmpty()) + namer.IC(version.String()),
|
||||
PackageName: strings.ToLower(version.NonEmpty() + group.Group.NonEmpty()),
|
||||
IsDefaultVersion: version == defaultVersion && version != "",
|
||||
})
|
||||
}
|
||||
}
|
||||
return groupVersionPackages
|
||||
}
|
||||
|
||||
// NormalizeGroupVersion calls normalizes the GroupVersion.
|
||||
//func NormalizeGroupVersion(gv GroupVersion) GroupVersion {
|
||||
// return GroupVersion{Group: gv.Group.NonEmpty(), Version: gv.Version, NonEmptyVersion: normalization.Version(gv.Version)}
|
||||
//}
|
|
@ -14,12 +14,19 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package types
|
||||
|
||||
type TestTypeExpansion interface {
|
||||
Hello() string
|
||||
}
|
||||
import (
|
||||
"reflect"
|
||||
"sort"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func (c *testTypes) Hello() string {
|
||||
return "hello!"
|
||||
func TestVersionSort(t *testing.T) {
|
||||
unsortedVersions := []string{"v4beta1", "v2beta1", "v2alpha1", "v3", "v1"}
|
||||
expected := []string{"v2alpha1", "v2beta1", "v4beta1", "v1", "v3"}
|
||||
sort.Sort(sortableSliceOfVersions(unsortedVersions))
|
||||
if !reflect.DeepEqual(unsortedVersions, expected) {
|
||||
t.Errorf("expected %#v\ngot %#v", expected, unsortedVersions)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package types
|
||||
|
||||
type Version string
|
||||
|
||||
func (v Version) String() string {
|
||||
return string(v)
|
||||
}
|
||||
|
||||
func (v Version) NonEmpty() string {
|
||||
if v == "" {
|
||||
return "internalVersion"
|
||||
}
|
||||
return v.String()
|
||||
}
|
||||
|
||||
type Group string
|
||||
|
||||
func (g Group) String() string {
|
||||
return string(g)
|
||||
}
|
||||
|
||||
func (g Group) NonEmpty() string {
|
||||
if g == "api" {
|
||||
return "core"
|
||||
}
|
||||
return string(g)
|
||||
}
|
||||
|
||||
type GroupVersion struct {
|
||||
Group Group
|
||||
Version Version
|
||||
}
|
||||
|
||||
type GroupVersions struct {
|
||||
Group Group
|
||||
Versions []Version
|
||||
}
|
||||
|
||||
// GroupVersionPackage contains group name, version name, and the package name client-gen will generate for this group version.
|
||||
type GroupVersionPackage struct {
|
||||
Group Group
|
||||
Version Version
|
||||
// If a user calls a group client without specifying the version (e.g.,
|
||||
// c.Core(), instead of c.CoreV1()), the default version will be returned.
|
||||
IsDefaultVersion bool
|
||||
GroupVersion string
|
||||
PackageName string
|
||||
}
|
|
@ -20,7 +20,7 @@ import (
|
|||
"fmt"
|
||||
"net"
|
||||
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/v1"
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup/v1"
|
||||
testgroupetcd "k8s.io/kubernetes/examples/apiserver/rest"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/rest"
|
||||
|
@ -34,7 +34,7 @@ import (
|
|||
"k8s.io/kubernetes/pkg/storage/storagebackend"
|
||||
|
||||
// Install the testgroup API
|
||||
_ "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/install"
|
||||
_ "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup/install"
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
|
@ -19,7 +19,7 @@ package rest
|
|||
import (
|
||||
"fmt"
|
||||
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io"
|
||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/fields"
|
||||
"k8s.io/kubernetes/pkg/labels"
|
||||
|
|
|
@ -20,9 +20,9 @@ go_library(
|
|||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//federation/apis/federation/install:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/core/internalversion:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion:go_default_library",
|
||||
"//pkg/client/restclient:go_default_library",
|
||||
"//pkg/client/typed/discovery:go_default_library",
|
||||
"//pkg/util/flowcontrol:go_default_library",
|
||||
|
|
|
@ -18,9 +18,9 @@ package federation_internalclientset
|
|||
|
||||
import (
|
||||
"github.com/golang/glog"
|
||||
unversionedcore "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned"
|
||||
unversionedextensions "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned"
|
||||
unversionedfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned"
|
||||
internalversioncore "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/internalversion"
|
||||
internalversionextensions "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion"
|
||||
internalversionfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion"
|
||||
restclient "k8s.io/kubernetes/pkg/client/restclient"
|
||||
discovery "k8s.io/kubernetes/pkg/client/typed/discovery"
|
||||
"k8s.io/kubernetes/pkg/util/flowcontrol"
|
||||
|
@ -29,30 +29,24 @@ import (
|
|||
|
||||
type Interface interface {
|
||||
Discovery() discovery.DiscoveryInterface
|
||||
Federation() unversionedfederation.FederationInterface
|
||||
Core() unversionedcore.CoreInterface
|
||||
Extensions() unversionedextensions.ExtensionsInterface
|
||||
Core() internalversioncore.CoreInterface
|
||||
|
||||
Extensions() internalversionextensions.ExtensionsInterface
|
||||
|
||||
Federation() internalversionfederation.FederationInterface
|
||||
}
|
||||
|
||||
// Clientset contains the clients for groups. Each group has exactly one
|
||||
// version included in a Clientset.
|
||||
type Clientset struct {
|
||||
*discovery.DiscoveryClient
|
||||
*unversionedfederation.FederationClient
|
||||
*unversionedcore.CoreClient
|
||||
*unversionedextensions.ExtensionsClient
|
||||
}
|
||||
|
||||
// Federation retrieves the FederationClient
|
||||
func (c *Clientset) Federation() unversionedfederation.FederationInterface {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
return c.FederationClient
|
||||
*internalversioncore.CoreClient
|
||||
*internalversionextensions.ExtensionsClient
|
||||
*internalversionfederation.FederationClient
|
||||
}
|
||||
|
||||
// Core retrieves the CoreClient
|
||||
func (c *Clientset) Core() unversionedcore.CoreInterface {
|
||||
func (c *Clientset) Core() internalversioncore.CoreInterface {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
|
@ -60,13 +54,21 @@ func (c *Clientset) Core() unversionedcore.CoreInterface {
|
|||
}
|
||||
|
||||
// Extensions retrieves the ExtensionsClient
|
||||
func (c *Clientset) Extensions() unversionedextensions.ExtensionsInterface {
|
||||
func (c *Clientset) Extensions() internalversionextensions.ExtensionsInterface {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
return c.ExtensionsClient
|
||||
}
|
||||
|
||||
// Federation retrieves the FederationClient
|
||||
func (c *Clientset) Federation() internalversionfederation.FederationInterface {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
return c.FederationClient
|
||||
}
|
||||
|
||||
// Discovery retrieves the DiscoveryClient
|
||||
func (c *Clientset) Discovery() discovery.DiscoveryInterface {
|
||||
return c.DiscoveryClient
|
||||
|
@ -80,15 +82,15 @@ func NewForConfig(c *restclient.Config) (*Clientset, error) {
|
|||
}
|
||||
var clientset Clientset
|
||||
var err error
|
||||
clientset.FederationClient, err = unversionedfederation.NewForConfig(&configShallowCopy)
|
||||
clientset.CoreClient, err = internalversioncore.NewForConfig(&configShallowCopy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
clientset.CoreClient, err = unversionedcore.NewForConfig(&configShallowCopy)
|
||||
clientset.ExtensionsClient, err = internalversionextensions.NewForConfig(&configShallowCopy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
clientset.ExtensionsClient, err = unversionedextensions.NewForConfig(&configShallowCopy)
|
||||
clientset.FederationClient, err = internalversionfederation.NewForConfig(&configShallowCopy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -105,9 +107,9 @@ func NewForConfig(c *restclient.Config) (*Clientset, error) {
|
|||
// panics if there is an error in the config.
|
||||
func NewForConfigOrDie(c *restclient.Config) *Clientset {
|
||||
var clientset Clientset
|
||||
clientset.FederationClient = unversionedfederation.NewForConfigOrDie(c)
|
||||
clientset.CoreClient = unversionedcore.NewForConfigOrDie(c)
|
||||
clientset.ExtensionsClient = unversionedextensions.NewForConfigOrDie(c)
|
||||
clientset.CoreClient = internalversioncore.NewForConfigOrDie(c)
|
||||
clientset.ExtensionsClient = internalversionextensions.NewForConfigOrDie(c)
|
||||
clientset.FederationClient = internalversionfederation.NewForConfigOrDie(c)
|
||||
|
||||
clientset.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c)
|
||||
return &clientset
|
||||
|
@ -116,9 +118,9 @@ func NewForConfigOrDie(c *restclient.Config) *Clientset {
|
|||
// New creates a new Clientset for the given RESTClient.
|
||||
func New(c restclient.Interface) *Clientset {
|
||||
var clientset Clientset
|
||||
clientset.FederationClient = unversionedfederation.New(c)
|
||||
clientset.CoreClient = unversionedcore.New(c)
|
||||
clientset.ExtensionsClient = unversionedextensions.New(c)
|
||||
clientset.CoreClient = internalversioncore.New(c)
|
||||
clientset.ExtensionsClient = internalversionextensions.New(c)
|
||||
clientset.FederationClient = internalversionfederation.New(c)
|
||||
|
||||
clientset.DiscoveryClient = discovery.NewDiscoveryClient(c)
|
||||
return &clientset
|
||||
|
|
|
@ -19,12 +19,12 @@ go_library(
|
|||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//federation/client/clientset_generated/federation_internalclientset:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned/fake:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/fake:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/core/internalversion:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/core/internalversion/fake:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion/fake:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion/fake:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/apimachinery/registered:go_default_library",
|
||||
"//pkg/client/testing/core:go_default_library",
|
||||
|
|
|
@ -18,12 +18,12 @@ package fake
|
|||
|
||||
import (
|
||||
clientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset"
|
||||
unversionedcore "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned"
|
||||
fakeunversionedcore "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake"
|
||||
unversionedextensions "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned"
|
||||
fakeunversionedextensions "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned/fake"
|
||||
unversionedfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned"
|
||||
fakeunversionedfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/fake"
|
||||
internalversioncore "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/internalversion"
|
||||
fakeinternalversioncore "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/internalversion/fake"
|
||||
internalversionextensions "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion"
|
||||
fakeinternalversionextensions "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion/fake"
|
||||
internalversionfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion"
|
||||
fakeinternalversionfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion/fake"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||
"k8s.io/kubernetes/pkg/client/testing/core"
|
||||
|
@ -66,17 +66,17 @@ func (c *Clientset) Discovery() discovery.DiscoveryInterface {
|
|||
|
||||
var _ clientset.Interface = &Clientset{}
|
||||
|
||||
// Federation retrieves the FederationClient
|
||||
func (c *Clientset) Federation() unversionedfederation.FederationInterface {
|
||||
return &fakeunversionedfederation.FakeFederation{Fake: &c.Fake}
|
||||
}
|
||||
|
||||
// Core retrieves the CoreClient
|
||||
func (c *Clientset) Core() unversionedcore.CoreInterface {
|
||||
return &fakeunversionedcore.FakeCore{Fake: &c.Fake}
|
||||
func (c *Clientset) Core() internalversioncore.CoreInterface {
|
||||
return &fakeinternalversioncore.FakeCore{Fake: &c.Fake}
|
||||
}
|
||||
|
||||
// Extensions retrieves the ExtensionsClient
|
||||
func (c *Clientset) Extensions() unversionedextensions.ExtensionsInterface {
|
||||
return &fakeunversionedextensions.FakeExtensions{Fake: &c.Fake}
|
||||
func (c *Clientset) Extensions() internalversionextensions.ExtensionsInterface {
|
||||
return &fakeinternalversionextensions.FakeExtensions{Fake: &c.Fake}
|
||||
}
|
||||
|
||||
// Federation retrieves the FederationClient
|
||||
func (c *Clientset) Federation() internalversionfederation.FederationInterface {
|
||||
return &fakeinternalversionfederation.FakeFederation{Fake: &c.Fake}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
import (
|
||||
api "k8s.io/kubernetes/pkg/api"
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
import (
|
||||
api "k8s.io/kubernetes/pkg/api"
|
||||
|
@ -31,7 +31,7 @@ type CoreInterface interface {
|
|||
ServicesGetter
|
||||
}
|
||||
|
||||
// CoreClient is used to interact with features provided by the Core group.
|
||||
// CoreClient is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group.
|
||||
type CoreClient struct {
|
||||
restClient restclient.Interface
|
||||
}
|
|
@ -17,4 +17,4 @@ limitations under the License.
|
|||
// This package is generated by client-gen with arguments: --clientset-name=federation_internalclientset --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/Service,api/Namespace,extensions/ReplicaSet,api/Secret,extensions/Ingress,extensions/Deployment,extensions/DaemonSet,api/ConfigMap,api/Event] --input=[../../federation/apis/federation/,api/,extensions/]
|
||||
|
||||
// This package has the automatically generated typed clients.
|
||||
package unversioned
|
||||
package internalversion
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
import (
|
||||
api "k8s.io/kubernetes/pkg/api"
|
|
@ -24,7 +24,7 @@ go_library(
|
|||
],
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/core/internalversion:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/unversioned:go_default_library",
|
||||
"//pkg/client/restclient:go_default_library",
|
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||
package fake
|
||||
|
||||
import (
|
||||
unversioned "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned"
|
||||
internalversion "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/internalversion"
|
||||
restclient "k8s.io/kubernetes/pkg/client/restclient"
|
||||
core "k8s.io/kubernetes/pkg/client/testing/core"
|
||||
)
|
||||
|
@ -26,23 +26,23 @@ type FakeCore struct {
|
|||
*core.Fake
|
||||
}
|
||||
|
||||
func (c *FakeCore) ConfigMaps(namespace string) unversioned.ConfigMapInterface {
|
||||
func (c *FakeCore) ConfigMaps(namespace string) internalversion.ConfigMapInterface {
|
||||
return &FakeConfigMaps{c, namespace}
|
||||
}
|
||||
|
||||
func (c *FakeCore) Events(namespace string) unversioned.EventInterface {
|
||||
func (c *FakeCore) Events(namespace string) internalversion.EventInterface {
|
||||
return &FakeEvents{c, namespace}
|
||||
}
|
||||
|
||||
func (c *FakeCore) Namespaces() unversioned.NamespaceInterface {
|
||||
func (c *FakeCore) Namespaces() internalversion.NamespaceInterface {
|
||||
return &FakeNamespaces{c}
|
||||
}
|
||||
|
||||
func (c *FakeCore) Secrets(namespace string) unversioned.SecretInterface {
|
||||
func (c *FakeCore) Secrets(namespace string) internalversion.SecretInterface {
|
||||
return &FakeSecrets{c, namespace}
|
||||
}
|
||||
|
||||
func (c *FakeCore) Services(namespace string) unversioned.ServiceInterface {
|
||||
func (c *FakeCore) Services(namespace string) internalversion.ServiceInterface {
|
||||
return &FakeServices{c, namespace}
|
||||
}
|
||||
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
type ConfigMapExpansion interface{}
|
||||
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
import (
|
||||
api "k8s.io/kubernetes/pkg/api"
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
import "k8s.io/kubernetes/pkg/api"
|
||||
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
import (
|
||||
api "k8s.io/kubernetes/pkg/api"
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
import (
|
||||
api "k8s.io/kubernetes/pkg/api"
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
import (
|
||||
api "k8s.io/kubernetes/pkg/api"
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
import (
|
||||
api "k8s.io/kubernetes/pkg/api"
|
|
@ -17,4 +17,4 @@ limitations under the License.
|
|||
// This package is generated by client-gen with arguments: --clientset-name=federation_internalclientset --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/Service,api/Namespace,extensions/ReplicaSet,api/Secret,extensions/Ingress,extensions/Deployment,extensions/DaemonSet,api/ConfigMap,api/Event] --input=[../../federation/apis/federation/,api/,extensions/]
|
||||
|
||||
// This package has the automatically generated typed clients.
|
||||
package unversioned
|
||||
package internalversion
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
import (
|
||||
api "k8s.io/kubernetes/pkg/api"
|
||||
|
@ -30,7 +30,7 @@ type ExtensionsInterface interface {
|
|||
ReplicaSetsGetter
|
||||
}
|
||||
|
||||
// ExtensionsClient is used to interact with features provided by the Extensions group.
|
||||
// ExtensionsClient is used to interact with features provided by the k8s.io/kubernetes/pkg/apimachinery/registered.Group group.
|
||||
type ExtensionsClient struct {
|
||||
restClient restclient.Interface
|
||||
}
|
|
@ -22,7 +22,7 @@ go_library(
|
|||
],
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/unversioned:go_default_library",
|
||||
"//pkg/apis/extensions:go_default_library",
|
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||
package fake
|
||||
|
||||
import (
|
||||
unversioned "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned"
|
||||
internalversion "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion"
|
||||
restclient "k8s.io/kubernetes/pkg/client/restclient"
|
||||
core "k8s.io/kubernetes/pkg/client/testing/core"
|
||||
)
|
||||
|
@ -26,19 +26,19 @@ type FakeExtensions struct {
|
|||
*core.Fake
|
||||
}
|
||||
|
||||
func (c *FakeExtensions) DaemonSets(namespace string) unversioned.DaemonSetInterface {
|
||||
func (c *FakeExtensions) DaemonSets(namespace string) internalversion.DaemonSetInterface {
|
||||
return &FakeDaemonSets{c, namespace}
|
||||
}
|
||||
|
||||
func (c *FakeExtensions) Deployments(namespace string) unversioned.DeploymentInterface {
|
||||
func (c *FakeExtensions) Deployments(namespace string) internalversion.DeploymentInterface {
|
||||
return &FakeDeployments{c, namespace}
|
||||
}
|
||||
|
||||
func (c *FakeExtensions) Ingresses(namespace string) unversioned.IngressInterface {
|
||||
func (c *FakeExtensions) Ingresses(namespace string) internalversion.IngressInterface {
|
||||
return &FakeIngresses{c, namespace}
|
||||
}
|
||||
|
||||
func (c *FakeExtensions) ReplicaSets(namespace string) unversioned.ReplicaSetInterface {
|
||||
func (c *FakeExtensions) ReplicaSets(namespace string) internalversion.ReplicaSetInterface {
|
||||
return &FakeReplicaSets{c, namespace}
|
||||
}
|
||||
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
type DaemonSetExpansion interface{}
|
||||
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
import (
|
||||
api "k8s.io/kubernetes/pkg/api"
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
import (
|
||||
api "k8s.io/kubernetes/pkg/api"
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
package internalversion
|
||||
|
||||
import (
|
||||
federation "k8s.io/kubernetes/federation/apis/federation"
|
|
@ -17,4 +17,4 @@ limitations under the License.
|
|||
// This package is generated by client-gen with arguments: --clientset-name=federation_internalclientset --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/Service,api/Namespace,extensions/ReplicaSet,api/Secret,extensions/Ingress,extensions/Deployment,extensions/DaemonSet,api/ConfigMap,api/Event] --input=[../../federation/apis/federation/,api/,extensions/]
|
||||
|
||||
// This package has the automatically generated typed clients.
|
||||
package unversioned
|
||||
package internalversion
|
|
@ -20,7 +20,7 @@ go_library(
|
|||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//federation/apis/federation:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned:go_default_library",
|
||||
"//federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/unversioned:go_default_library",
|
||||
"//pkg/client/restclient:go_default_library",
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue