include multiple versions in clientset
update client-gen to use the term "internalversion" rather than "unversioned"; leave internal one unqualified; cleanup client-gen
This commit is contained in:
parent
3bda6884b8
commit
850729bfaf
@ -25,7 +25,7 @@ go_library(
|
|||||||
"//pkg/apis/batch:go_default_library",
|
"//pkg/apis/batch:go_default_library",
|
||||||
"//pkg/apis/componentconfig:go_default_library",
|
"//pkg/apis/componentconfig:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset: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:go_default_library",
|
||||||
"//pkg/client/leaderelection/resourcelock:go_default_library",
|
"//pkg/client/leaderelection/resourcelock:go_default_library",
|
||||||
"//pkg/client/record:go_default_library",
|
"//pkg/client/record:go_default_library",
|
||||||
|
@ -37,7 +37,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||||
"k8s.io/kubernetes/pkg/apis/batch"
|
"k8s.io/kubernetes/pkg/apis/batch"
|
||||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
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"
|
||||||
"k8s.io/kubernetes/pkg/client/leaderelection/resourcelock"
|
"k8s.io/kubernetes/pkg/client/leaderelection/resourcelock"
|
||||||
"k8s.io/kubernetes/pkg/client/record"
|
"k8s.io/kubernetes/pkg/client/record"
|
||||||
|
@ -21,7 +21,7 @@ go_library(
|
|||||||
"//cmd/kube-proxy/app/options:go_default_library",
|
"//cmd/kube-proxy/app/options:go_default_library",
|
||||||
"//pkg/api:go_default_library",
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset: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/record:go_default_library",
|
||||||
"//pkg/client/unversioned/clientcmd:go_default_library",
|
"//pkg/client/unversioned/clientcmd:go_default_library",
|
||||||
"//pkg/client/unversioned/clientcmd/api: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/cmd/kube-proxy/app/options"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
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/record"
|
||||||
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
|
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
|
||||||
clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
|
clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
|
||||||
|
@ -23,7 +23,7 @@ go_library(
|
|||||||
"//cmd/kubeadm/app/util:go_default_library",
|
"//cmd/kubeadm/app/util:go_default_library",
|
||||||
"//pkg/apis/certificates:go_default_library",
|
"//pkg/apis/certificates:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset: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:go_default_library",
|
||||||
"//pkg/client/unversioned/clientcmd/api:go_default_library",
|
"//pkg/client/unversioned/clientcmd/api:go_default_library",
|
||||||
"//pkg/kubelet/util/csr:go_default_library",
|
"//pkg/kubelet/util/csr:go_default_library",
|
||||||
|
@ -26,7 +26,7 @@ import (
|
|||||||
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
|
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
|
||||||
"k8s.io/kubernetes/pkg/apis/certificates"
|
"k8s.io/kubernetes/pkg/apis/certificates"
|
||||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
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/client/unversioned/clientcmd"
|
||||||
"k8s.io/kubernetes/pkg/types"
|
"k8s.io/kubernetes/pkg/types"
|
||||||
"k8s.io/kubernetes/pkg/util/wait"
|
"k8s.io/kubernetes/pkg/util/wait"
|
||||||
|
@ -32,10 +32,10 @@ go_library(
|
|||||||
"//pkg/capabilities:go_default_library",
|
"//pkg/capabilities:go_default_library",
|
||||||
"//pkg/client/chaosclient:go_default_library",
|
"//pkg/client/chaosclient:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset: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/authentication/internalversion:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/authorization/unversioned:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion: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/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/record:go_default_library",
|
||||||
"//pkg/client/restclient:go_default_library",
|
"//pkg/client/restclient:go_default_library",
|
||||||
"//pkg/client/unversioned/auth: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/authorizer"
|
||||||
"k8s.io/kubernetes/pkg/auth/group"
|
"k8s.io/kubernetes/pkg/auth/group"
|
||||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||||
authenticationclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authentication/unversioned"
|
authenticationclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion"
|
||||||
authorizationclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authorization/unversioned"
|
authorizationclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion"
|
||||||
alwaysallowauthorizer "k8s.io/kubernetes/pkg/genericapiserver/authorizer"
|
alwaysallowauthorizer "k8s.io/kubernetes/pkg/genericapiserver/authorizer"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/server"
|
"k8s.io/kubernetes/pkg/kubelet/server"
|
||||||
"k8s.io/kubernetes/pkg/types"
|
"k8s.io/kubernetes/pkg/types"
|
||||||
|
@ -25,7 +25,7 @@ import (
|
|||||||
|
|
||||||
"github.com/golang/glog"
|
"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/restclient"
|
||||||
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
|
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
|
||||||
clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
|
clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
|
||||||
|
@ -43,7 +43,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/capabilities"
|
"k8s.io/kubernetes/pkg/capabilities"
|
||||||
"k8s.io/kubernetes/pkg/client/chaosclient"
|
"k8s.io/kubernetes/pkg/client/chaosclient"
|
||||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
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/record"
|
||||||
"k8s.io/kubernetes/pkg/client/restclient"
|
"k8s.io/kubernetes/pkg/client/restclient"
|
||||||
clientauth "k8s.io/kubernetes/pkg/client/unversioned/auth"
|
clientauth "k8s.io/kubernetes/pkg/client/unversioned/auth"
|
||||||
|
@ -17,7 +17,7 @@ go_binary(
|
|||||||
deps = [
|
deps = [
|
||||||
"//cmd/libs/go2idl/client-gen/args:go_default_library",
|
"//cmd/libs/go2idl/client-gen/args:go_default_library",
|
||||||
"//cmd/libs/go2idl/client-gen/generators: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/golang/glog",
|
||||||
"//vendor:github.com/spf13/pflag",
|
"//vendor:github.com/spf13/pflag",
|
||||||
"//vendor:k8s.io/gengo/args",
|
"//vendor:k8s.io/gengo/args",
|
||||||
|
@ -14,5 +14,5 @@ go_library(
|
|||||||
name = "go_default_library",
|
name = "go_default_library",
|
||||||
srcs = ["args.go"],
|
srcs = ["args.go"],
|
||||||
tags = ["automanaged"],
|
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
|
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.
|
// ClientGenArgs is a wrapper for arguments to client-gen.
|
||||||
type Args struct {
|
type Args struct {
|
||||||
// TODO: we should make another type declaration of GroupVersion out of the
|
Groups []types.GroupVersions
|
||||||
// unversioned package, which is part of our API. Tools like client-gen
|
|
||||||
// shouldn't depend on an API.
|
|
||||||
GroupVersions []unversioned.GroupVersion
|
|
||||||
|
|
||||||
// GroupVersionToInputPath is a map between GroupVersion and the path to
|
// GroupVersionToInputPath is a map between GroupVersion and the path to
|
||||||
// the respective types.go. We still need GroupVersions in the struct because
|
// the respective types.go. We still need GroupVersions in the struct because
|
||||||
// we need an order.
|
// we need an order.
|
||||||
GroupVersionToInputPath map[unversioned.GroupVersion]string
|
GroupVersionToInputPath map[types.GroupVersion]string
|
||||||
|
|
||||||
// Overrides for which types should be included in the client.
|
// 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
|
// ClientsetName is the name of the clientset to be generated. It's
|
||||||
// populated from command-line arguments.
|
// populated from command-line arguments.
|
||||||
|
@ -24,8 +24,7 @@ go_library(
|
|||||||
deps = [
|
deps = [
|
||||||
"//cmd/libs/go2idl/client-gen/args:go_default_library",
|
"//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/fake:go_default_library",
|
||||||
"//cmd/libs/go2idl/client-gen/generators/normalization:go_default_library",
|
"//cmd/libs/go2idl/client-gen/types:go_default_library",
|
||||||
"//pkg/api/unversioned:go_default_library",
|
|
||||||
"//vendor:github.com/golang/glog",
|
"//vendor:github.com/golang/glog",
|
||||||
"//vendor:k8s.io/gengo/args",
|
"//vendor:k8s.io/gengo/args",
|
||||||
"//vendor:k8s.io/gengo/generator",
|
"//vendor:k8s.io/gengo/generator",
|
||||||
|
@ -28,8 +28,7 @@ import (
|
|||||||
"k8s.io/gengo/types"
|
"k8s.io/gengo/types"
|
||||||
clientgenargs "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/args"
|
clientgenargs "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/args"
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/fake"
|
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/fake"
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/normalization"
|
clientgentypes "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"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")
|
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 {
|
func packageForGroup(gv clientgentypes.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)
|
outputPackagePath := strings.ToLower(filepath.Join(packageBasePath, gv.Group.NonEmpty(), gv.Version.NonEmpty()))
|
||||||
return &generator.DefaultPackage{
|
return &generator.DefaultPackage{
|
||||||
PackageName: gv.Version,
|
PackageName: strings.ToLower(gv.Version.NonEmpty()),
|
||||||
PackagePath: outputPackagePath,
|
PackagePath: outputPackagePath,
|
||||||
HeaderText: boilerplate,
|
HeaderText: boilerplate,
|
||||||
PackageDocumentation: []byte(
|
PackageDocumentation: []byte(
|
||||||
@ -87,8 +86,8 @@ func packageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packag
|
|||||||
OptionalName: strings.ToLower(c.Namers["private"].Name(t)),
|
OptionalName: strings.ToLower(c.Namers["private"].Name(t)),
|
||||||
},
|
},
|
||||||
outputPackage: outputPackagePath,
|
outputPackage: outputPackagePath,
|
||||||
group: normalization.BeforeFirstDot(gv.Group),
|
group: gv.Group.NonEmpty(),
|
||||||
version: gv.Version,
|
version: gv.Version.String(),
|
||||||
typeToMatch: t,
|
typeToMatch: t,
|
||||||
imports: generator.NewImportTracker(),
|
imports: generator.NewImportTracker(),
|
||||||
})
|
})
|
||||||
@ -96,12 +95,12 @@ func packageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packag
|
|||||||
|
|
||||||
generators = append(generators, &genGroup{
|
generators = append(generators, &genGroup{
|
||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: normalization.BeforeFirstDot(gv.Group) + "_client",
|
OptionalName: gv.Group.NonEmpty() + "_client",
|
||||||
},
|
},
|
||||||
outputPackage: outputPackagePath,
|
outputPackage: outputPackagePath,
|
||||||
inputPacakge: inputPath,
|
inputPacakge: inputPath,
|
||||||
group: gv.Group,
|
group: gv.Group.NonEmpty(),
|
||||||
version: gv.Version,
|
version: gv.Version.String(),
|
||||||
apiPath: apiPath,
|
apiPath: apiPath,
|
||||||
types: typeList,
|
types: typeList,
|
||||||
imports: generator.NewImportTracker(),
|
imports: generator.NewImportTracker(),
|
||||||
@ -144,7 +143,7 @@ func packageForClientset(customArgs clientgenargs.Args, typedClientBasePath stri
|
|||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: "clientset",
|
OptionalName: "clientset",
|
||||||
},
|
},
|
||||||
groupVersions: customArgs.GroupVersions,
|
groups: customArgs.Groups,
|
||||||
typedClientPath: typedClientBasePath,
|
typedClientPath: typedClientBasePath,
|
||||||
outputPackage: customArgs.ClientsetName,
|
outputPackage: customArgs.ClientsetName,
|
||||||
imports: generator.NewImportTracker(),
|
imports: generator.NewImportTracker(),
|
||||||
@ -170,7 +169,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
|
|||||||
|
|
||||||
generatedBy := generatedBy(customArgs)
|
generatedBy := generatedBy(customArgs)
|
||||||
|
|
||||||
gvToTypes := map[unversioned.GroupVersion][]*types.Type{}
|
gvToTypes := map[clientgentypes.GroupVersion][]*types.Type{}
|
||||||
for gv, inputDir := range customArgs.GroupVersionToInputPath {
|
for gv, inputDir := range customArgs.GroupVersionToInputPath {
|
||||||
p := context.Universe.Package(inputDir)
|
p := context.Universe.Package(inputDir)
|
||||||
for n, t := range p.Types {
|
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)}
|
orderer := namer.Orderer{Namer: namer.NewPrivateNamer(0)}
|
||||||
for _, gv := range customArgs.GroupVersions {
|
for _, group := range customArgs.Groups {
|
||||||
types := gvToTypes[gv]
|
for _, version := range group.Versions {
|
||||||
inputPath := customArgs.GroupVersionToInputPath[gv]
|
gv := clientgentypes.GroupVersion{Group: group.Group, Version: version}
|
||||||
packageList = append(packageList, packageForGroup(normalization.GroupVersion(gv), orderer.OrderTypes(types), typedClientBasePath, customArgs.ClientsetAPIPath, arguments.OutputBase, inputPath, boilerplate, generatedBy))
|
types := gvToTypes[gv]
|
||||||
if customArgs.FakeClient {
|
inputPath := customArgs.GroupVersionToInputPath[gv]
|
||||||
packageList = append(packageList, fake.PackageForGroup(normalization.GroupVersion(gv), orderer.OrderTypes(types), typedClientBasePath, 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(gv, orderer.OrderTypes(types), typedClientBasePath, arguments.OutputBase, inputPath, boilerplate, generatedBy))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,8 +21,7 @@ go_library(
|
|||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
"//cmd/libs/go2idl/client-gen/args:go_default_library",
|
"//cmd/libs/go2idl/client-gen/args:go_default_library",
|
||||||
"//cmd/libs/go2idl/client-gen/generators/normalization:go_default_library",
|
"//cmd/libs/go2idl/client-gen/types:go_default_library",
|
||||||
"//pkg/api/unversioned:go_default_library",
|
|
||||||
"//vendor:github.com/golang/glog",
|
"//vendor:github.com/golang/glog",
|
||||||
"//vendor:k8s.io/gengo/generator",
|
"//vendor:k8s.io/gengo/generator",
|
||||||
"//vendor:k8s.io/gengo/namer",
|
"//vendor:k8s.io/gengo/namer",
|
||||||
|
@ -25,14 +25,13 @@ import (
|
|||||||
"k8s.io/gengo/generator"
|
"k8s.io/gengo/generator"
|
||||||
"k8s.io/gengo/types"
|
"k8s.io/gengo/types"
|
||||||
clientgenargs "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/args"
|
clientgenargs "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/args"
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/normalization"
|
clientgentypes "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func PackageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packageBasePath string, srcTreePath string, inputPath string, boilerplate []byte, generatedBy string) generator.Package {
|
func PackageForGroup(gv clientgentypes.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")
|
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
|
// 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{
|
return &generator.DefaultPackage{
|
||||||
PackageName: "fake",
|
PackageName: "fake",
|
||||||
PackagePath: outputPackagePath,
|
PackagePath: outputPackagePath,
|
||||||
@ -56,9 +55,9 @@ func PackageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packag
|
|||||||
OptionalName: "fake_" + strings.ToLower(c.Namers["private"].Name(t)),
|
OptionalName: "fake_" + strings.ToLower(c.Namers["private"].Name(t)),
|
||||||
},
|
},
|
||||||
outputPackage: outputPackagePath,
|
outputPackage: outputPackagePath,
|
||||||
group: normalization.BeforeFirstDot(gv.Group),
|
group: gv.Group.NonEmpty(),
|
||||||
|
version: gv.Version.String(),
|
||||||
inputPackage: inputPath,
|
inputPackage: inputPath,
|
||||||
version: gv.Version,
|
|
||||||
typeToMatch: t,
|
typeToMatch: t,
|
||||||
imports: generator.NewImportTracker(),
|
imports: generator.NewImportTracker(),
|
||||||
})
|
})
|
||||||
@ -66,11 +65,12 @@ func PackageForGroup(gv unversioned.GroupVersion, typeList []*types.Type, packag
|
|||||||
|
|
||||||
generators = append(generators, &genFakeForGroup{
|
generators = append(generators, &genFakeForGroup{
|
||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: "fake_" + normalization.BeforeFirstDot(gv.Group) + "_client",
|
OptionalName: "fake_" + gv.Group.NonEmpty() + "_client",
|
||||||
},
|
},
|
||||||
outputPackage: outputPackagePath,
|
outputPackage: outputPackagePath,
|
||||||
realClientPath: realClientPath,
|
realClientPath: realClientPath,
|
||||||
group: normalization.BeforeFirstDot(gv.Group),
|
group: gv.Group.NonEmpty(),
|
||||||
|
version: gv.Version.String(),
|
||||||
types: typeList,
|
types: typeList,
|
||||||
imports: generator.NewImportTracker(),
|
imports: generator.NewImportTracker(),
|
||||||
})
|
})
|
||||||
@ -112,7 +112,7 @@ func PackageForClientset(customArgs clientgenargs.Args, typedClientBasePath stri
|
|||||||
DefaultGen: generator.DefaultGen{
|
DefaultGen: generator.DefaultGen{
|
||||||
OptionalName: "clientset_generated",
|
OptionalName: "clientset_generated",
|
||||||
},
|
},
|
||||||
groupVersions: customArgs.GroupVersions,
|
groups: customArgs.Groups,
|
||||||
typedClientPath: typedClientBasePath,
|
typedClientPath: typedClientBasePath,
|
||||||
outputPackage: "fake",
|
outputPackage: "fake",
|
||||||
imports: generator.NewImportTracker(),
|
imports: generator.NewImportTracker(),
|
||||||
|
@ -20,18 +20,18 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"k8s.io/gengo/generator"
|
"k8s.io/gengo/generator"
|
||||||
"k8s.io/gengo/namer"
|
"k8s.io/gengo/namer"
|
||||||
"k8s.io/gengo/types"
|
"k8s.io/gengo/types"
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/normalization"
|
clientgentypes "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// genClientset generates a package for a clientset.
|
// genClientset generates a package for a clientset.
|
||||||
type genClientset struct {
|
type genClientset struct {
|
||||||
generator.DefaultGen
|
generator.DefaultGen
|
||||||
groupVersions []unversioned.GroupVersion
|
groups []clientgentypes.GroupVersions
|
||||||
typedClientPath string
|
typedClientPath string
|
||||||
outputPackage string
|
outputPackage string
|
||||||
imports namer.ImportTracker
|
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) {
|
func (g *genClientset) Imports(c *generator.Context) (imports []string) {
|
||||||
imports = append(imports, g.imports.ImportLines()...)
|
imports = append(imports, g.imports.ImportLines()...)
|
||||||
for _, gv := range g.groupVersions {
|
for _, group := range g.groups {
|
||||||
group := normalization.Group(gv.Group)
|
for _, version := range group.Versions {
|
||||||
version := normalization.Version(gv.Version)
|
typedClientPath := filepath.Join(g.typedClientPath, group.Group.NonEmpty(), version.NonEmpty())
|
||||||
undotted_group := normalization.BeforeFirstDot(group)
|
imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", version.NonEmpty(), group.Group.NonEmpty(), typedClientPath)))
|
||||||
typedClientPath := filepath.Join(g.typedClientPath, group, version)
|
fakeTypedClientPath := filepath.Join(typedClientPath, "fake")
|
||||||
imports = append(imports, fmt.Sprintf("%s%s \"%s\"", version, undotted_group, typedClientPath))
|
imports = append(imports, strings.ToLower(fmt.Sprintf("fake%s%s \"%s\"", version.NonEmpty(), group.Group.NonEmpty(), fakeTypedClientPath)))
|
||||||
fakeTypedClientPath := filepath.Join(typedClientPath, "fake")
|
}
|
||||||
imports = append(imports, fmt.Sprintf("fake%s%s \"%s\"", version, undotted_group, fakeTypedClientPath))
|
|
||||||
}
|
}
|
||||||
// the package that has the clientset Interface
|
// the package that has the clientset Interface
|
||||||
imports = append(imports, fmt.Sprintf("clientset \"%s\"", g.clientsetPath))
|
imports = append(imports, fmt.Sprintf("clientset \"%s\"", g.clientsetPath))
|
||||||
@ -91,19 +90,14 @@ func (g *genClientset) GenerateType(c *generator.Context, t *types.Type, w io.Wr
|
|||||||
|
|
||||||
sw.Do(checkImpl, nil)
|
sw.Do(checkImpl, nil)
|
||||||
|
|
||||||
type arg struct {
|
allGroups := clientgentypes.ToGroupVersionPackages(g.groups)
|
||||||
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})
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, g := range allGroups {
|
for _, g := range allGroups {
|
||||||
sw.Do(clientsetInterfaceImplTemplate, g)
|
sw.Do(clientsetInterfaceImplTemplate, g)
|
||||||
|
// don't generated the default method if generating internalversion clientset
|
||||||
|
if g.IsDefaultVersion && g.Version != "" {
|
||||||
|
sw.Do(clientsetInterfaceDefaultVersionImpl, g)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return sw.Error()
|
return sw.Error()
|
||||||
@ -148,8 +142,15 @@ var _ clientset.Interface = &Clientset{}
|
|||||||
`
|
`
|
||||||
|
|
||||||
var clientsetInterfaceImplTemplate = `
|
var clientsetInterfaceImplTemplate = `
|
||||||
// $.Group$ retrieves the $.Group$Client
|
// $.GroupVersion$ retrieves the $.GroupVersion$Client
|
||||||
func (c *Clientset) $.Group$() $.PackageName$.$.Group$Interface {
|
func (c *Clientset) $.GroupVersion$() $.PackageName$.$.GroupVersion$Interface {
|
||||||
return &fake$.PackageName$.Fake$.Group${Fake: &c.Fake}
|
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"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"k8s.io/gengo/generator"
|
"k8s.io/gengo/generator"
|
||||||
"k8s.io/gengo/namer"
|
"k8s.io/gengo/namer"
|
||||||
@ -32,6 +33,7 @@ type genFakeForGroup struct {
|
|||||||
outputPackage string
|
outputPackage string
|
||||||
realClientPath string
|
realClientPath string
|
||||||
group string
|
group string
|
||||||
|
version string
|
||||||
// types in this group
|
// types in this group
|
||||||
types []*types.Type
|
types []*types.Type
|
||||||
imports namer.ImportTracker
|
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) {
|
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
|
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"
|
const pkgRESTClient = "k8s.io/kubernetes/pkg/client/restclient"
|
||||||
m := map[string]interface{}{
|
m := map[string]interface{}{
|
||||||
"group": g.group,
|
"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"}),
|
"Fake": c.Universe.Type(types.Name{Package: pkgTestingCore, Name: "Fake"}),
|
||||||
"RESTClientInterface": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Interface"}),
|
"RESTClientInterface": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Interface"}),
|
||||||
"RESTClient": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "RESTClient"}),
|
"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 {
|
for _, t := range g.types {
|
||||||
wrapper := map[string]interface{}{
|
wrapper := map[string]interface{}{
|
||||||
"type": t,
|
"type": t,
|
||||||
"Group": namer.IC(g.group),
|
"GroupVersion": namer.IC(g.group) + namer.IC(g.version),
|
||||||
"realClientPackage": filepath.Base(g.realClientPath),
|
"realClientPackage": strings.ToLower(filepath.Base(g.realClientPath)),
|
||||||
}
|
}
|
||||||
namespaced := !extractBoolTagOrDie("nonNamespaced", t.SecondClosestCommentLines)
|
namespaced := !extractBoolTagOrDie("nonNamespaced", t.SecondClosestCommentLines)
|
||||||
if namespaced {
|
if namespaced {
|
||||||
@ -86,19 +88,19 @@ func (g *genFakeForGroup) GenerateType(c *generator.Context, t *types.Type, w io
|
|||||||
}
|
}
|
||||||
|
|
||||||
var groupClientTemplate = `
|
var groupClientTemplate = `
|
||||||
type Fake$.Group$ struct {
|
type Fake$.GroupVersion$ struct {
|
||||||
*$.Fake|raw$
|
*$.Fake|raw$
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
var getterImplNamespaced = `
|
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}
|
return &Fake$.type|publicPlural${c, namespace}
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
var getterImplNonNamespaced = `
|
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}
|
return &Fake$.type|publicPlural${c}
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
@ -106,7 +108,7 @@ func (c *Fake$.Group$) $.type|publicPlural$() $.realClientPackage$.$.type|public
|
|||||||
var getRESTClient = `
|
var getRESTClient = `
|
||||||
// RESTClient returns a RESTClient that is used to communicate
|
// RESTClient returns a RESTClient that is used to communicate
|
||||||
// with API server by this client implementation.
|
// with API server by this client implementation.
|
||||||
func (c *Fake$.Group$) RESTClient() $.RESTClientInterface|raw$ {
|
func (c *Fake$.GroupVersion$) RESTClient() $.RESTClientInterface|raw$ {
|
||||||
var ret *$.RESTClient|raw$
|
var ret *$.RESTClient|raw$
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
@ -31,8 +31,8 @@ type genFakeForType struct {
|
|||||||
generator.DefaultGen
|
generator.DefaultGen
|
||||||
outputPackage string
|
outputPackage string
|
||||||
group string
|
group string
|
||||||
inputPackage string
|
|
||||||
version string
|
version string
|
||||||
|
inputPackage string
|
||||||
typeToMatch *types.Type
|
typeToMatch *types.Type
|
||||||
imports namer.ImportTracker
|
imports namer.ImportTracker
|
||||||
}
|
}
|
||||||
@ -84,10 +84,6 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
|
|||||||
if canonicalGroup == "core" {
|
if canonicalGroup == "core" {
|
||||||
canonicalGroup = ""
|
canonicalGroup = ""
|
||||||
}
|
}
|
||||||
canonicalVersion := g.version
|
|
||||||
if canonicalVersion == "unversioned" {
|
|
||||||
canonicalVersion = ""
|
|
||||||
}
|
|
||||||
|
|
||||||
groupName := g.group
|
groupName := g.group
|
||||||
if g.group == "core" {
|
if g.group == "core" {
|
||||||
@ -106,9 +102,10 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
|
|||||||
"Package": namer.IC(pkg),
|
"Package": namer.IC(pkg),
|
||||||
"namespaced": namespaced,
|
"namespaced": namespaced,
|
||||||
"Group": namer.IC(g.group),
|
"Group": namer.IC(g.group),
|
||||||
|
"GroupVersion": namer.IC(g.group) + namer.IC(g.version),
|
||||||
"group": canonicalGroup,
|
"group": canonicalGroup,
|
||||||
"groupName": groupName,
|
"groupName": groupName,
|
||||||
"version": canonicalVersion,
|
"version": g.version,
|
||||||
"watchInterface": c.Universe.Type(types.Name{Package: "k8s.io/kubernetes/pkg/watch", Name: "Interface"}),
|
"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"}),
|
"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"}),
|
"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"}),
|
"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["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"})
|
m["ListOptions"] = c.Universe.Type(types.Name{Package: "k8s.io/kubernetes/pkg/api", Name: "ListOptions"})
|
||||||
} else {
|
} else {
|
||||||
@ -180,7 +177,7 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
|
|||||||
var structNamespaced = `
|
var structNamespaced = `
|
||||||
// Fake$.type|publicPlural$ implements $.type|public$Interface
|
// Fake$.type|publicPlural$ implements $.type|public$Interface
|
||||||
type Fake$.type|publicPlural$ struct {
|
type Fake$.type|publicPlural$ struct {
|
||||||
Fake *Fake$.Group$
|
Fake *Fake$.GroupVersion$
|
||||||
ns string
|
ns string
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
@ -189,7 +186,7 @@ type Fake$.type|publicPlural$ struct {
|
|||||||
var structNonNamespaced = `
|
var structNonNamespaced = `
|
||||||
// Fake$.type|publicPlural$ implements $.type|public$Interface
|
// Fake$.type|publicPlural$ implements $.type|public$Interface
|
||||||
type Fake$.type|publicPlural$ struct {
|
type Fake$.type|publicPlural$ struct {
|
||||||
Fake *Fake$.Group$
|
Fake *Fake$.GroupVersion$
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
|
@ -20,18 +20,18 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"k8s.io/gengo/generator"
|
"k8s.io/gengo/generator"
|
||||||
"k8s.io/gengo/namer"
|
"k8s.io/gengo/namer"
|
||||||
"k8s.io/gengo/types"
|
"k8s.io/gengo/types"
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/normalization"
|
clientgentypes "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// genClientset generates a package for a clientset.
|
// genClientset generates a package for a clientset.
|
||||||
type genClientset struct {
|
type genClientset struct {
|
||||||
generator.DefaultGen
|
generator.DefaultGen
|
||||||
groupVersions []unversioned.GroupVersion
|
groups []clientgentypes.GroupVersions
|
||||||
typedClientPath string
|
typedClientPath string
|
||||||
outputPackage string
|
outputPackage string
|
||||||
imports namer.ImportTracker
|
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) {
|
func (g *genClientset) Imports(c *generator.Context) (imports []string) {
|
||||||
imports = append(imports, g.imports.ImportLines()...)
|
imports = append(imports, g.imports.ImportLines()...)
|
||||||
for _, gv := range g.groupVersions {
|
for _, group := range g.groups {
|
||||||
group := normalization.Group(gv.Group)
|
for _, version := range group.Versions {
|
||||||
version := normalization.Version(gv.Version)
|
typedClientPath := filepath.Join(g.typedClientPath, group.Group.NonEmpty(), version.NonEmpty())
|
||||||
typedClientPath := filepath.Join(g.typedClientPath, group, version)
|
imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", version.NonEmpty(), group.Group.NonEmpty(), typedClientPath)))
|
||||||
group = normalization.BeforeFirstDot(group)
|
}
|
||||||
imports = append(imports, fmt.Sprintf("%s%s \"%s\"", version, group, typedClientPath))
|
|
||||||
}
|
}
|
||||||
imports = append(imports, "github.com/golang/glog")
|
imports = append(imports, "github.com/golang/glog")
|
||||||
imports = append(imports, "k8s.io/kubernetes/pkg/util/flowcontrol")
|
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 pkgDiscovery = "k8s.io/kubernetes/pkg/client/typed/discovery"
|
||||||
const pkgRESTClient = "k8s.io/kubernetes/pkg/client/restclient"
|
const pkgRESTClient = "k8s.io/kubernetes/pkg/client/restclient"
|
||||||
|
|
||||||
type arg struct {
|
allGroups := clientgentypes.ToGroupVersionPackages(g.groups)
|
||||||
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})
|
|
||||||
}
|
|
||||||
|
|
||||||
m := map[string]interface{}{
|
m := map[string]interface{}{
|
||||||
"allGroups": allGroups,
|
"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"}),
|
"NewDiscoveryClientForConfigOrDie": c.Universe.Function(types.Name{Package: pkgDiscovery, Name: "NewDiscoveryClientForConfigOrDie"}),
|
||||||
"NewDiscoveryClient": c.Universe.Function(types.Name{Package: pkgDiscovery, Name: "NewDiscoveryClient"}),
|
"NewDiscoveryClient": c.Universe.Function(types.Name{Package: pkgDiscovery, Name: "NewDiscoveryClient"}),
|
||||||
}
|
}
|
||||||
sw.Do(clientsetInterfaceTemplate, m)
|
sw.Do(clientsetInterface, m)
|
||||||
sw.Do(clientsetTemplate, m)
|
sw.Do(clientsetTemplate, m)
|
||||||
for _, g := range allGroups {
|
for _, g := range allGroups {
|
||||||
sw.Do(clientsetInterfaceImplTemplate, g)
|
sw.Do(clientsetInterfaceImplTemplate, g)
|
||||||
|
// don't generated the default method if generating internalversion clientset
|
||||||
|
if g.IsDefaultVersion && g.Version != "" {
|
||||||
|
sw.Do(clientsetInterfaceDefaultVersionImpl, g)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
sw.Do(getDiscoveryTemplate, m)
|
sw.Do(getDiscoveryTemplate, m)
|
||||||
sw.Do(newClientsetForConfigTemplate, 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()
|
return sw.Error()
|
||||||
}
|
}
|
||||||
|
|
||||||
var clientsetInterfaceTemplate = `
|
var clientsetInterface = `
|
||||||
type Interface interface {
|
type Interface interface {
|
||||||
Discovery() $.DiscoveryInterface|raw$
|
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$
|
$end$
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
@ -125,20 +120,32 @@ var clientsetTemplate = `
|
|||||||
// version included in a Clientset.
|
// version included in a Clientset.
|
||||||
type Clientset struct {
|
type Clientset struct {
|
||||||
*$.DiscoveryClient|raw$
|
*$.DiscoveryClient|raw$
|
||||||
$range .allGroups$*$.PackageName$.$.Group$Client
|
$range .allGroups$*$.PackageName$.$.GroupVersion$Client
|
||||||
$end$
|
$end$
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
var clientsetInterfaceImplTemplate = `
|
var clientsetInterfaceImplTemplate = `
|
||||||
// $.Group$ retrieves the $.Group$Client
|
// $.GroupVersion$ retrieves the $.GroupVersion$Client
|
||||||
func (c *Clientset) $.Group$() $.PackageName$.$.Group$Interface {
|
func (c *Clientset) $.GroupVersion$() $.PackageName$.$.GroupVersion$Interface {
|
||||||
if c == nil {
|
if c == nil {
|
||||||
return 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 = `
|
var getDiscoveryTemplate = `
|
||||||
// Discovery retrieves the DiscoveryClient
|
// Discovery retrieves the DiscoveryClient
|
||||||
func (c *Clientset) Discovery() $.DiscoveryInterface|raw$ {
|
func (c *Clientset) Discovery() $.DiscoveryInterface|raw$ {
|
||||||
@ -155,7 +162,7 @@ func NewForConfig(c *$.Config|raw$) (*Clientset, error) {
|
|||||||
}
|
}
|
||||||
var clientset Clientset
|
var clientset Clientset
|
||||||
var err error
|
var err error
|
||||||
$range .allGroups$ clientset.$.Group$Client, err =$.PackageName$.NewForConfig(&configShallowCopy)
|
$range .allGroups$ clientset.$.GroupVersion$Client, err =$.PackageName$.NewForConfig(&configShallowCopy)
|
||||||
if err!=nil {
|
if err!=nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -174,7 +181,7 @@ var newClientsetForConfigOrDieTemplate = `
|
|||||||
// panics if there is an error in the config.
|
// panics if there is an error in the config.
|
||||||
func NewForConfigOrDie(c *$.Config|raw$) *Clientset {
|
func NewForConfigOrDie(c *$.Config|raw$) *Clientset {
|
||||||
var clientset Clientset
|
var clientset Clientset
|
||||||
$range .allGroups$ clientset.$.Group$Client =$.PackageName$.NewForConfigOrDie(c)
|
$range .allGroups$ clientset.$.GroupVersion$Client =$.PackageName$.NewForConfigOrDie(c)
|
||||||
$end$
|
$end$
|
||||||
clientset.DiscoveryClient = $.NewDiscoveryClientForConfigOrDie|raw$(c)
|
clientset.DiscoveryClient = $.NewDiscoveryClientForConfigOrDie|raw$(c)
|
||||||
return &clientset
|
return &clientset
|
||||||
@ -185,7 +192,7 @@ var newClientsetForRESTClientTemplate = `
|
|||||||
// New creates a new Clientset for the given RESTClient.
|
// New creates a new Clientset for the given RESTClient.
|
||||||
func New(c $.RESTClientInterface|raw$) *Clientset {
|
func New(c $.RESTClientInterface|raw$) *Clientset {
|
||||||
var clientset Clientset
|
var clientset Clientset
|
||||||
$range .allGroups$ clientset.$.Group$Client =$.PackageName$.New(c)
|
$range .allGroups$ clientset.$.GroupVersion$Client =$.PackageName$.New(c)
|
||||||
$end$
|
$end$
|
||||||
clientset.DiscoveryClient = $.NewDiscoveryClient|raw$(c)
|
clientset.DiscoveryClient = $.NewDiscoveryClient|raw$(c)
|
||||||
return &clientset
|
return &clientset
|
||||||
|
@ -22,7 +22,6 @@ import (
|
|||||||
"k8s.io/gengo/generator"
|
"k8s.io/gengo/generator"
|
||||||
"k8s.io/gengo/namer"
|
"k8s.io/gengo/namer"
|
||||||
"k8s.io/gengo/types"
|
"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.
|
// 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 pkgRegistered = "k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||||
const pkgAPI = "k8s.io/kubernetes/pkg/api"
|
const pkgAPI = "k8s.io/kubernetes/pkg/api"
|
||||||
const pkgSerializer = "k8s.io/kubernetes/pkg/runtime/serializer"
|
const pkgSerializer = "k8s.io/kubernetes/pkg/runtime/serializer"
|
||||||
|
const pkgUnversioned = "k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
|
|
||||||
apiPath := func(group string) string {
|
apiPath := func(group string) string {
|
||||||
if len(g.apiPath) > 0 {
|
if len(g.apiPath) > 0 {
|
||||||
return `"` + g.apiPath + `"`
|
return `"` + g.apiPath + `"`
|
||||||
@ -83,16 +84,19 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
|
|||||||
}
|
}
|
||||||
|
|
||||||
m := map[string]interface{}{
|
m := map[string]interface{}{
|
||||||
"group": normalization.BeforeFirstDot(g.group),
|
"group": g.group,
|
||||||
"Group": namer.IC(normalization.BeforeFirstDot(g.group)),
|
"version": g.version,
|
||||||
|
"GroupVersion": namer.IC(g.group) + namer.IC(g.version),
|
||||||
"groupName": groupName,
|
"groupName": groupName,
|
||||||
"types": g.types,
|
"types": g.types,
|
||||||
"Config": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Config"}),
|
"Config": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Config"}),
|
||||||
"DefaultKubernetesUserAgent": c.Universe.Function(types.Name{Package: pkgRESTClient, Name: "DefaultKubernetesUserAgent"}),
|
"DefaultKubernetesUserAgent": c.Universe.Function(types.Name{Package: pkgRESTClient, Name: "DefaultKubernetesUserAgent"}),
|
||||||
"RESTClientInterface": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Interface"}),
|
"RESTClientInterface": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Interface"}),
|
||||||
"RESTClientFor": c.Universe.Function(types.Name{Package: pkgRESTClient, Name: "RESTClientFor"}),
|
"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"}),
|
"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),
|
"apiPath": apiPath(g.group),
|
||||||
"codecs": c.Universe.Variable(types.Name{Package: pkgAPI, Name: "Codecs"}),
|
"codecs": c.Universe.Variable(types.Name{Package: pkgAPI, Name: "Codecs"}),
|
||||||
"directCodecFactory": c.Universe.Variable(types.Name{Package: pkgSerializer, Name: "DirectCodecFactory"}),
|
"directCodecFactory": c.Universe.Variable(types.Name{Package: pkgSerializer, Name: "DirectCodecFactory"}),
|
||||||
@ -102,8 +106,8 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
|
|||||||
sw.Do(groupClientTemplate, m)
|
sw.Do(groupClientTemplate, m)
|
||||||
for _, t := range g.types {
|
for _, t := range g.types {
|
||||||
wrapper := map[string]interface{}{
|
wrapper := map[string]interface{}{
|
||||||
"type": t,
|
"type": t,
|
||||||
"Group": namer.IC(normalization.BeforeFirstDot(g.group)),
|
"GroupVersion": namer.IC(g.group) + namer.IC(g.version),
|
||||||
}
|
}
|
||||||
namespaced := !extractBoolTagOrDie("nonNamespaced", t.SecondClosestCommentLines)
|
namespaced := !extractBoolTagOrDie("nonNamespaced", t.SecondClosestCommentLines)
|
||||||
if namespaced {
|
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(newClientForConfigTemplate, m)
|
||||||
sw.Do(newClientForConfigOrDieTemplate, m)
|
sw.Do(newClientForConfigOrDieTemplate, m)
|
||||||
sw.Do(newClientForRESTClientTemplate, m)
|
sw.Do(newClientForRESTClientTemplate, m)
|
||||||
if g.version == "unversioned" {
|
if g.version == "" {
|
||||||
sw.Do(setInternalVersionClientDefaultsTemplate, m)
|
sw.Do(setInternalVersionClientDefaultsTemplate, m)
|
||||||
} else {
|
} else {
|
||||||
sw.Do(setClientDefaultsTemplate, m)
|
sw.Do(setClientDefaultsTemplate, m)
|
||||||
@ -127,7 +131,7 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
|
|||||||
}
|
}
|
||||||
|
|
||||||
var groupInterfaceTemplate = `
|
var groupInterfaceTemplate = `
|
||||||
type $.Group$Interface interface {
|
type $.GroupVersion$Interface interface {
|
||||||
RESTClient() $.RESTClientInterface|raw$
|
RESTClient() $.RESTClientInterface|raw$
|
||||||
$range .types$ $.|publicPlural$Getter
|
$range .types$ $.|publicPlural$Getter
|
||||||
$end$
|
$end$
|
||||||
@ -135,27 +139,27 @@ type $.Group$Interface interface {
|
|||||||
`
|
`
|
||||||
|
|
||||||
var groupClientTemplate = `
|
var groupClientTemplate = `
|
||||||
// $.Group$Client is used to interact with features provided by the $.Group$ group.
|
// $.GroupVersion$Client is used to interact with features provided by the $.Group$ group.
|
||||||
type $.Group$Client struct {
|
type $.GroupVersion$Client struct {
|
||||||
restClient $.RESTClientInterface|raw$
|
restClient $.RESTClientInterface|raw$
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
var getterImplNamespaced = `
|
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)
|
return new$.type|publicPlural$(c, namespace)
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
var getterImplNonNamespaced = `
|
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)
|
return new$.type|publicPlural$(c)
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
var newClientForConfigTemplate = `
|
var newClientForConfigTemplate = `
|
||||||
// NewForConfig creates a new $.Group$Client for the given config.
|
// NewForConfig creates a new $.GroupVersion$Client for the given config.
|
||||||
func NewForConfig(c *$.Config|raw$) (*$.Group$Client, error) {
|
func NewForConfig(c *$.Config|raw$) (*$.GroupVersion$Client, error) {
|
||||||
config := *c
|
config := *c
|
||||||
if err := setConfigDefaults(&config); err != nil {
|
if err := setConfigDefaults(&config); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -164,14 +168,14 @@ func NewForConfig(c *$.Config|raw$) (*$.Group$Client, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return &$.Group$Client{client}, nil
|
return &$.GroupVersion$Client{client}, nil
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
var newClientForConfigOrDieTemplate = `
|
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.
|
// 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)
|
client, err := NewForConfig(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
@ -183,7 +187,7 @@ func NewForConfigOrDie(c *$.Config|raw$) *$.Group$Client {
|
|||||||
var getRESTClient = `
|
var getRESTClient = `
|
||||||
// RESTClient returns a RESTClient that is used to communicate
|
// RESTClient returns a RESTClient that is used to communicate
|
||||||
// with API server by this client implementation.
|
// with API server by this client implementation.
|
||||||
func (c *$.Group$Client) RESTClient() $.RESTClientInterface|raw$ {
|
func (c *$.GroupVersion$Client) RESTClient() $.RESTClientInterface|raw$ {
|
||||||
if c == nil {
|
if c == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -192,15 +196,15 @@ func (c *$.Group$Client) RESTClient() $.RESTClientInterface|raw$ {
|
|||||||
`
|
`
|
||||||
|
|
||||||
var newClientForRESTClientTemplate = `
|
var newClientForRESTClientTemplate = `
|
||||||
// New creates a new $.Group$Client for the given RESTClient.
|
// New creates a new $.GroupVersion$Client for the given RESTClient.
|
||||||
func New(c $.RESTClientInterface|raw$) *$.Group$Client {
|
func New(c $.RESTClientInterface|raw$) *$.GroupVersion$Client {
|
||||||
return &$.Group$Client{c}
|
return &$.GroupVersion$Client{c}
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
var setInternalVersionClientDefaultsTemplate = `
|
var setInternalVersionClientDefaultsTemplate = `
|
||||||
func setConfigDefaults(config *$.Config|raw$) error {
|
func setConfigDefaults(config *$.Config|raw$) error {
|
||||||
// if $.group$ group is not registered, return an error
|
// if $.group$ group is not registered, return an error
|
||||||
g, err := $.latestGroup|raw$("$.groupName$")
|
g, err := $.Group|raw$("$.groupName$")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -226,20 +230,20 @@ func setConfigDefaults(config *$.Config|raw$) error {
|
|||||||
|
|
||||||
var setClientDefaultsTemplate = `
|
var setClientDefaultsTemplate = `
|
||||||
func setConfigDefaults(config *$.Config|raw$) error {
|
func setConfigDefaults(config *$.Config|raw$) error {
|
||||||
// if $.group$ group is not registered, return an error
|
gv, err := $.ParseGroupVersion|raw$("$.groupName$/$.version$")
|
||||||
g, err := $.latestGroup|raw$("$.groupName$")
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
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$
|
config.APIPath = $.apiPath$
|
||||||
if config.UserAgent == "" {
|
if config.UserAgent == "" {
|
||||||
config.UserAgent = $.DefaultKubernetesUserAgent|raw$()
|
config.UserAgent = $.DefaultKubernetesUserAgent|raw$()
|
||||||
}
|
}
|
||||||
// TODO: Unconditionally set the config.Version, until we fix the config.
|
copyGroupVersion := gv
|
||||||
//if config.Version == "" {
|
|
||||||
copyGroupVersion := g.GroupVersion
|
|
||||||
config.GroupVersion = ©GroupVersion
|
config.GroupVersion = ©GroupVersion
|
||||||
//}
|
|
||||||
|
|
||||||
config.NegotiatedSerializer = $.directCodecFactory|raw${CodecFactory: $.codecs|raw$}
|
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": pkg,
|
||||||
"Package": namer.IC(pkg),
|
"Package": namer.IC(pkg),
|
||||||
"Group": namer.IC(g.group),
|
"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"}),
|
"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"}),
|
"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"}),
|
"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,
|
"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["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"})
|
m["ListOptions"] = c.Universe.Type(types.Name{Package: "k8s.io/kubernetes/pkg/api", Name: "ListOptions"})
|
||||||
} else {
|
} else {
|
||||||
@ -195,7 +196,7 @@ type $.type|privatePlural$ struct {
|
|||||||
|
|
||||||
var newStructNamespaced = `
|
var newStructNamespaced = `
|
||||||
// new$.type|publicPlural$ returns a $.type|publicPlural$
|
// 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${
|
return &$.type|privatePlural${
|
||||||
client: c.RESTClient(),
|
client: c.RESTClient(),
|
||||||
ns: namespace,
|
ns: namespace,
|
||||||
@ -205,7 +206,7 @@ func new$.type|publicPlural$(c *$.Group$Client, namespace string) *$.type|privat
|
|||||||
|
|
||||||
var newStructNonNamespaced = `
|
var newStructNonNamespaced = `
|
||||||
// new$.type|publicPlural$ returns a $.type|publicPlural$
|
// 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${
|
return &$.type|privatePlural${
|
||||||
client: c.RESTClient(),
|
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 (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"k8s.io/gengo/args"
|
"k8s.io/gengo/args"
|
||||||
clientgenargs "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/args"
|
clientgenargs "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/args"
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators"
|
"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"
|
"github.com/golang/glog"
|
||||||
flag "github.com/spf13/pflag"
|
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) {
|
func parseInputVersions() (paths []string, groups []types.GroupVersions, gvToPath map[types.GroupVersion]string, err error) {
|
||||||
var visitedGroups = make(map[string]struct{})
|
var seenGroups = make(map[types.Group]*types.GroupVersions)
|
||||||
gvToPath = make(map[unversioned.GroupVersion]string)
|
gvToPath = make(map[types.GroupVersion]string)
|
||||||
for _, input := range *inputVersions {
|
for _, input := range *inputVersions {
|
||||||
gvPath, gvString := parsePathGroupVersion(input)
|
gvPath, gvString := parsePathGroupVersion(input)
|
||||||
gv, err := unversioned.ParseGroupVersion(gvString)
|
gv, err := types.ToGroupVersion(gvString)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, nil, err
|
return nil, nil, nil, err
|
||||||
}
|
}
|
||||||
|
if group, ok := seenGroups[gv.Group]; ok {
|
||||||
if _, found := visitedGroups[gv.Group]; found {
|
(*seenGroups[gv.Group]).Versions = append(group.Versions, gv.Version)
|
||||||
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)
|
} 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.String(), gv.Version.String())
|
||||||
path := versionToPath(gvPath, gv.Group, gv.Version)
|
|
||||||
paths = append(paths, path)
|
paths = append(paths, path)
|
||||||
gvToPath[gv] = 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)])
|
||||||
|
}
|
||||||
|
|
||||||
|
return paths, groups, gvToPath, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseIncludedTypesOverrides() (map[unversioned.GroupVersion][]string, error) {
|
func parseIncludedTypesOverrides() (map[types.GroupVersion][]string, error) {
|
||||||
overrides := make(map[unversioned.GroupVersion][]string)
|
overrides := make(map[types.GroupVersion][]string)
|
||||||
for _, input := range *includedTypesOverrides {
|
for _, input := range *includedTypesOverrides {
|
||||||
gvString, typeStr, err := parseGroupVersionType(input)
|
gvString, typeStr, err := parseGroupVersionType(input)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
gv, err := unversioned.ParseGroupVersion(gvString)
|
gv, err := types.ToGroupVersion(gvString)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -155,12 +168,12 @@ func main() {
|
|||||||
|
|
||||||
if *test {
|
if *test {
|
||||||
arguments.InputDirs = append(dependencies, []string{
|
arguments.InputDirs = append(dependencies, []string{
|
||||||
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io",
|
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup",
|
||||||
}...)
|
}...)
|
||||||
arguments.CustomArgs = clientgenargs.Args{
|
arguments.CustomArgs = clientgenargs.Args{
|
||||||
GroupVersions: []unversioned.GroupVersion{{Group: "testgroup.k8s.io", Version: ""}},
|
Groups: []types.GroupVersions{{Group: "testgroup", Versions: []types.Version{""}}},
|
||||||
GroupVersionToInputPath: map[unversioned.GroupVersion]string{
|
GroupVersionToInputPath: map[types.GroupVersion]string{
|
||||||
unversioned.GroupVersion{Group: "testgroup.k8s.io", Version: ""}: "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io",
|
types.GroupVersion{Group: "testgroup", Version: ""}: "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup",
|
||||||
},
|
},
|
||||||
ClientsetName: "test_internalclientset",
|
ClientsetName: "test_internalclientset",
|
||||||
ClientsetOutputPath: "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/",
|
ClientsetOutputPath: "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/",
|
||||||
@ -169,7 +182,7 @@ func main() {
|
|||||||
CmdArgs: cmdArgs,
|
CmdArgs: cmdArgs,
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
inputPath, groupVersions, gvToPath, err := parseInputVersions()
|
inputPath, groups, gvToPath, err := parseInputVersions()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Fatalf("Error: %v", err)
|
glog.Fatalf("Error: %v", err)
|
||||||
}
|
}
|
||||||
@ -181,7 +194,7 @@ func main() {
|
|||||||
arguments.InputDirs = append(inputPath, dependencies...)
|
arguments.InputDirs = append(inputPath, dependencies...)
|
||||||
|
|
||||||
arguments.CustomArgs = clientgenargs.Args{
|
arguments.CustomArgs = clientgenargs.Args{
|
||||||
GroupVersions: groupVersions,
|
Groups: groups,
|
||||||
GroupVersionToInputPath: gvToPath,
|
GroupVersionToInputPath: gvToPath,
|
||||||
ClientsetName: *clientsetName,
|
ClientsetName: *clientsetName,
|
||||||
ClientsetAPIPath: *clientsetAPIPath,
|
ClientsetAPIPath: *clientsetAPIPath,
|
||||||
|
@ -15,4 +15,4 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// +groupName=testgroup.k8s.io
|
// +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"],
|
srcs = ["install.go"],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
"//cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io:go_default_library",
|
"//cmd/libs/go2idl/client-gen/test_apis/testgroup: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/v1:go_default_library",
|
||||||
"//pkg/api:go_default_library",
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/api/meta:go_default_library",
|
"//pkg/api/meta:go_default_library",
|
||||||
"//pkg/api/unversioned:go_default_library",
|
"//pkg/api/unversioned:go_default_library",
|
@ -23,8 +23,8 @@ import (
|
|||||||
|
|
||||||
"github.com/golang/glog"
|
"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/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io/v1"
|
"k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup/v1"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/meta"
|
"k8s.io/kubernetes/pkg/api/meta"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
@ -34,7 +34,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/util/sets"
|
"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()
|
var accessor = meta.NewAccessor()
|
||||||
|
|
@ -15,4 +15,5 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// +k8s:openapi-gen=true
|
// +k8s:openapi-gen=true
|
||||||
|
// +groupName=testgroup.k8s.io
|
||||||
package v1
|
package v1
|
@ -18,7 +18,7 @@ go_library(
|
|||||||
],
|
],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
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/restclient:go_default_library",
|
||||||
"//pkg/client/typed/discovery:go_default_library",
|
"//pkg/client/typed/discovery:go_default_library",
|
||||||
"//pkg/util/flowcontrol:go_default_library",
|
"//pkg/util/flowcontrol:go_default_library",
|
||||||
|
@ -18,7 +18,7 @@ package test_internalclientset
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/golang/glog"
|
"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"
|
restclient "k8s.io/kubernetes/pkg/client/restclient"
|
||||||
discovery "k8s.io/kubernetes/pkg/client/typed/discovery"
|
discovery "k8s.io/kubernetes/pkg/client/typed/discovery"
|
||||||
"k8s.io/kubernetes/pkg/util/flowcontrol"
|
"k8s.io/kubernetes/pkg/util/flowcontrol"
|
||||||
@ -27,18 +27,18 @@ import (
|
|||||||
|
|
||||||
type Interface interface {
|
type Interface interface {
|
||||||
Discovery() discovery.DiscoveryInterface
|
Discovery() discovery.DiscoveryInterface
|
||||||
Testgroup() unversionedtestgroup.TestgroupInterface
|
Testgroup() internalversiontestgroup.TestgroupInterface
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clientset contains the clients for groups. Each group has exactly one
|
// Clientset contains the clients for groups. Each group has exactly one
|
||||||
// version included in a Clientset.
|
// version included in a Clientset.
|
||||||
type Clientset struct {
|
type Clientset struct {
|
||||||
*discovery.DiscoveryClient
|
*discovery.DiscoveryClient
|
||||||
*unversionedtestgroup.TestgroupClient
|
*internalversiontestgroup.TestgroupClient
|
||||||
}
|
}
|
||||||
|
|
||||||
// Testgroup retrieves the TestgroupClient
|
// Testgroup retrieves the TestgroupClient
|
||||||
func (c *Clientset) Testgroup() unversionedtestgroup.TestgroupInterface {
|
func (c *Clientset) Testgroup() internalversiontestgroup.TestgroupInterface {
|
||||||
if c == nil {
|
if c == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -58,7 +58,7 @@ func NewForConfig(c *restclient.Config) (*Clientset, error) {
|
|||||||
}
|
}
|
||||||
var clientset Clientset
|
var clientset Clientset
|
||||||
var err error
|
var err error
|
||||||
clientset.TestgroupClient, err = unversionedtestgroup.NewForConfig(&configShallowCopy)
|
clientset.TestgroupClient, err = internalversiontestgroup.NewForConfig(&configShallowCopy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -75,7 +75,7 @@ func NewForConfig(c *restclient.Config) (*Clientset, error) {
|
|||||||
// panics if there is an error in the config.
|
// panics if there is an error in the config.
|
||||||
func NewForConfigOrDie(c *restclient.Config) *Clientset {
|
func NewForConfigOrDie(c *restclient.Config) *Clientset {
|
||||||
var clientset Clientset
|
var clientset Clientset
|
||||||
clientset.TestgroupClient = unversionedtestgroup.NewForConfigOrDie(c)
|
clientset.TestgroupClient = internalversiontestgroup.NewForConfigOrDie(c)
|
||||||
|
|
||||||
clientset.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c)
|
clientset.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c)
|
||||||
return &clientset
|
return &clientset
|
||||||
@ -84,7 +84,7 @@ func NewForConfigOrDie(c *restclient.Config) *Clientset {
|
|||||||
// New creates a new Clientset for the given RESTClient.
|
// New creates a new Clientset for the given RESTClient.
|
||||||
func New(c restclient.Interface) *Clientset {
|
func New(c restclient.Interface) *Clientset {
|
||||||
var clientset Clientset
|
var clientset Clientset
|
||||||
clientset.TestgroupClient = unversionedtestgroup.New(c)
|
clientset.TestgroupClient = internalversiontestgroup.New(c)
|
||||||
|
|
||||||
clientset.DiscoveryClient = discovery.NewDiscoveryClient(c)
|
clientset.DiscoveryClient = discovery.NewDiscoveryClient(c)
|
||||||
return &clientset
|
return &clientset
|
||||||
|
@ -19,8 +19,8 @@ go_library(
|
|||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
"//cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset:go_default_library",
|
"//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/internalversion: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/fake:go_default_library",
|
||||||
"//pkg/api:go_default_library",
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/apimachinery/registered:go_default_library",
|
"//pkg/apimachinery/registered:go_default_library",
|
||||||
"//pkg/client/testing/core:go_default_library",
|
"//pkg/client/testing/core:go_default_library",
|
||||||
|
@ -18,8 +18,8 @@ package fake
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
clientset "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset"
|
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"
|
internalversiontestgroup "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup/internalversion"
|
||||||
fakeunversionedtestgroup "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup.k8s.io/unversioned/fake"
|
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/api"
|
||||||
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||||
"k8s.io/kubernetes/pkg/client/testing/core"
|
"k8s.io/kubernetes/pkg/client/testing/core"
|
||||||
@ -63,6 +63,6 @@ func (c *Clientset) Discovery() discovery.DiscoveryInterface {
|
|||||||
var _ clientset.Interface = &Clientset{}
|
var _ clientset.Interface = &Clientset{}
|
||||||
|
|
||||||
// Testgroup retrieves the TestgroupClient
|
// Testgroup retrieves the TestgroupClient
|
||||||
func (c *Clientset) Testgroup() unversionedtestgroup.TestgroupInterface {
|
func (c *Clientset) Testgroup() internalversiontestgroup.TestgroupInterface {
|
||||||
return &fakeunversionedtestgroup.FakeTestgroup{Fake: &c.Fake}
|
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 is generated by client-gen with arguments: --test=true
|
||||||
|
|
||||||
// This package has the automatically generated typed clients.
|
// This package has the automatically generated typed clients.
|
||||||
package unversioned
|
package internalversion
|
@ -16,12 +16,11 @@ go_library(
|
|||||||
"doc.go",
|
"doc.go",
|
||||||
"fake_testgroup_client.go",
|
"fake_testgroup_client.go",
|
||||||
"fake_testtype.go",
|
"fake_testtype.go",
|
||||||
"fake_testtype_expansion.go",
|
|
||||||
],
|
],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
"//cmd/libs/go2idl/client-gen/test_apis/testgroup.k8s.io: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.k8s.io/unversioned: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:go_default_library",
|
||||||
"//pkg/api/unversioned:go_default_library",
|
"//pkg/api/unversioned:go_default_library",
|
||||||
"//pkg/client/restclient:go_default_library",
|
"//pkg/client/restclient:go_default_library",
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||||||
package fake
|
package fake
|
||||||
|
|
||||||
import (
|
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"
|
restclient "k8s.io/kubernetes/pkg/client/restclient"
|
||||||
core "k8s.io/kubernetes/pkg/client/testing/core"
|
core "k8s.io/kubernetes/pkg/client/testing/core"
|
||||||
)
|
)
|
||||||
@ -26,7 +26,7 @@ type FakeTestgroup struct {
|
|||||||
*core.Fake
|
*core.Fake
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *FakeTestgroup) TestTypes(namespace string) unversioned.TestTypeInterface {
|
func (c *FakeTestgroup) TestTypes(namespace string) internalversion.TestTypeInterface {
|
||||||
return &FakeTestTypes{c, namespace}
|
return &FakeTestTypes{c, namespace}
|
||||||
}
|
}
|
||||||
|
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||||||
package fake
|
package fake
|
||||||
|
|
||||||
import (
|
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"
|
api "k8s.io/kubernetes/pkg/api"
|
||||||
unversioned "k8s.io/kubernetes/pkg/api/unversioned"
|
unversioned "k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
core "k8s.io/kubernetes/pkg/client/testing/core"
|
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"}
|
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.
|
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 {
|
if obj == nil {
|
||||||
return nil, err
|
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.
|
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 {
|
if obj == nil {
|
||||||
return nil, err
|
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.
|
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 {
|
if obj == nil {
|
||||||
return nil, err
|
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 {
|
func (c *FakeTestTypes) Delete(name string, options *api.DeleteOptions) error {
|
||||||
_, err := c.Fake.
|
_, 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
|
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 {
|
func (c *FakeTestTypes) DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error {
|
||||||
action := core.NewDeleteCollectionAction(testtypesResource, c.ns, listOptions)
|
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
|
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.
|
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 {
|
if obj == nil {
|
||||||
return nil, err
|
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.
|
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 {
|
if obj == nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -99,8 +99,8 @@ func (c *FakeTestTypes) List(opts api.ListOptions) (result *testgroup_k8s_io.Tes
|
|||||||
if label == nil {
|
if label == nil {
|
||||||
label = labels.Everything()
|
label = labels.Everything()
|
||||||
}
|
}
|
||||||
list := &testgroup_k8s_io.TestTypeList{}
|
list := &testgroup.TestTypeList{}
|
||||||
for _, item := range obj.(*testgroup_k8s_io.TestTypeList).Items {
|
for _, item := range obj.(*testgroup.TestTypeList).Items {
|
||||||
if label.Matches(labels.Set(item.Labels)) {
|
if label.Matches(labels.Set(item.Labels)) {
|
||||||
list.Items = append(list.Items, item)
|
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.
|
// 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.
|
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 {
|
if obj == nil {
|
||||||
return nil, err
|
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.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
import (
|
import (
|
||||||
api "k8s.io/kubernetes/pkg/api"
|
api "k8s.io/kubernetes/pkg/api"
|
||||||
@ -27,7 +27,7 @@ type TestgroupInterface interface {
|
|||||||
TestTypesGetter
|
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 {
|
type TestgroupClient struct {
|
||||||
restClient restclient.Interface
|
restClient restclient.Interface
|
||||||
}
|
}
|
@ -14,10 +14,10 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
import (
|
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"
|
api "k8s.io/kubernetes/pkg/api"
|
||||||
restclient "k8s.io/kubernetes/pkg/client/restclient"
|
restclient "k8s.io/kubernetes/pkg/client/restclient"
|
||||||
watch "k8s.io/kubernetes/pkg/watch"
|
watch "k8s.io/kubernetes/pkg/watch"
|
||||||
@ -31,15 +31,15 @@ type TestTypesGetter interface {
|
|||||||
|
|
||||||
// TestTypeInterface has methods to work with TestType resources.
|
// TestTypeInterface has methods to work with TestType resources.
|
||||||
type TestTypeInterface interface {
|
type TestTypeInterface interface {
|
||||||
Create(*testgroup_k8s_io.TestType) (*testgroup_k8s_io.TestType, error)
|
Create(*testgroup.TestType) (*testgroup.TestType, error)
|
||||||
Update(*testgroup_k8s_io.TestType) (*testgroup_k8s_io.TestType, error)
|
Update(*testgroup.TestType) (*testgroup.TestType, error)
|
||||||
UpdateStatus(*testgroup_k8s_io.TestType) (*testgroup_k8s_io.TestType, error)
|
UpdateStatus(*testgroup.TestType) (*testgroup.TestType, error)
|
||||||
Delete(name string, options *api.DeleteOptions) error
|
Delete(name string, options *api.DeleteOptions) error
|
||||||
DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error
|
DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error
|
||||||
Get(name string) (*testgroup_k8s_io.TestType, error)
|
Get(name string) (*testgroup.TestType, error)
|
||||||
List(opts api.ListOptions) (*testgroup_k8s_io.TestTypeList, error)
|
List(opts api.ListOptions) (*testgroup.TestTypeList, error)
|
||||||
Watch(opts api.ListOptions) (watch.Interface, 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
|
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.
|
// 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) {
|
func (c *testTypes) Create(testType *testgroup.TestType) (result *testgroup.TestType, err error) {
|
||||||
result = &testgroup_k8s_io.TestType{}
|
result = &testgroup.TestType{}
|
||||||
err = c.client.Post().
|
err = c.client.Post().
|
||||||
Namespace(c.ns).
|
Namespace(c.ns).
|
||||||
Resource("testtypes").
|
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.
|
// 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) {
|
func (c *testTypes) Update(testType *testgroup.TestType) (result *testgroup.TestType, err error) {
|
||||||
result = &testgroup_k8s_io.TestType{}
|
result = &testgroup.TestType{}
|
||||||
err = c.client.Put().
|
err = c.client.Put().
|
||||||
Namespace(c.ns).
|
Namespace(c.ns).
|
||||||
Resource("testtypes").
|
Resource("testtypes").
|
||||||
@ -82,8 +82,8 @@ func (c *testTypes) Update(testType *testgroup_k8s_io.TestType) (result *testgro
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *testTypes) UpdateStatus(testType *testgroup_k8s_io.TestType) (result *testgroup_k8s_io.TestType, err error) {
|
func (c *testTypes) UpdateStatus(testType *testgroup.TestType) (result *testgroup.TestType, err error) {
|
||||||
result = &testgroup_k8s_io.TestType{}
|
result = &testgroup.TestType{}
|
||||||
err = c.client.Put().
|
err = c.client.Put().
|
||||||
Namespace(c.ns).
|
Namespace(c.ns).
|
||||||
Resource("testtypes").
|
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.
|
// 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) {
|
func (c *testTypes) Get(name string) (result *testgroup.TestType, err error) {
|
||||||
result = &testgroup_k8s_io.TestType{}
|
result = &testgroup.TestType{}
|
||||||
err = c.client.Get().
|
err = c.client.Get().
|
||||||
Namespace(c.ns).
|
Namespace(c.ns).
|
||||||
Resource("testtypes").
|
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.
|
// 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) {
|
func (c *testTypes) List(opts api.ListOptions) (result *testgroup.TestTypeList, err error) {
|
||||||
result = &testgroup_k8s_io.TestTypeList{}
|
result = &testgroup.TestTypeList{}
|
||||||
err = c.client.Get().
|
err = c.client.Get().
|
||||||
Namespace(c.ns).
|
Namespace(c.ns).
|
||||||
Resource("testtypes").
|
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.
|
// 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) {
|
func (c *testTypes) Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *testgroup.TestType, err error) {
|
||||||
result = &testgroup_k8s_io.TestType{}
|
result = &testgroup.TestType{}
|
||||||
err = c.client.Patch(pt).
|
err = c.client.Patch(pt).
|
||||||
Namespace(c.ns).
|
Namespace(c.ns).
|
||||||
Resource("testtypes").
|
Resource("testtypes").
|
@ -12,7 +12,18 @@ load(
|
|||||||
|
|
||||||
go_library(
|
go_library(
|
||||||
name = "go_default_library",
|
name = "go_default_library",
|
||||||
srcs = ["normalization.go"],
|
srcs = [
|
||||||
|
"helpers.go",
|
||||||
|
"types.go",
|
||||||
|
],
|
||||||
tags = ["automanaged"],
|
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 = [],
|
||||||
)
|
)
|
108
cmd/libs/go2idl/client-gen/types/helpers.go
Normal file
108
cmd/libs/go2idl/client-gen/types/helpers.go
Normal file
@ -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.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package types
|
||||||
|
|
||||||
type TestTypeExpansion interface {
|
import (
|
||||||
Hello() string
|
"reflect"
|
||||||
}
|
"sort"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
func (c *testTypes) Hello() string {
|
func TestVersionSort(t *testing.T) {
|
||||||
return "hello!"
|
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)
|
||||||
|
}
|
||||||
}
|
}
|
64
cmd/libs/go2idl/client-gen/types/types.go
Normal file
64
cmd/libs/go2idl/client-gen/types/types.go
Normal file
@ -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"
|
"fmt"
|
||||||
"net"
|
"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"
|
testgroupetcd "k8s.io/kubernetes/examples/apiserver/rest"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/rest"
|
"k8s.io/kubernetes/pkg/api/rest"
|
||||||
@ -34,7 +34,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/storage/storagebackend"
|
"k8s.io/kubernetes/pkg/storage/storagebackend"
|
||||||
|
|
||||||
// Install the testgroup API
|
// 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 (
|
const (
|
||||||
|
@ -19,7 +19,7 @@ package rest
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"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/api"
|
||||||
"k8s.io/kubernetes/pkg/fields"
|
"k8s.io/kubernetes/pkg/fields"
|
||||||
"k8s.io/kubernetes/pkg/labels"
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
|
@ -20,9 +20,9 @@ go_library(
|
|||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
"//federation/apis/federation/install:go_default_library",
|
"//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/core/internalversion:go_default_library",
|
||||||
"//federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned:go_default_library",
|
"//federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion: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/client/restclient:go_default_library",
|
"//pkg/client/restclient:go_default_library",
|
||||||
"//pkg/client/typed/discovery:go_default_library",
|
"//pkg/client/typed/discovery:go_default_library",
|
||||||
"//pkg/util/flowcontrol:go_default_library",
|
"//pkg/util/flowcontrol:go_default_library",
|
||||||
|
@ -18,9 +18,9 @@ package federation_internalclientset
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
unversionedcore "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned"
|
internalversioncore "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/internalversion"
|
||||||
unversionedextensions "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned"
|
internalversionextensions "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion"
|
||||||
unversionedfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned"
|
internalversionfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion"
|
||||||
restclient "k8s.io/kubernetes/pkg/client/restclient"
|
restclient "k8s.io/kubernetes/pkg/client/restclient"
|
||||||
discovery "k8s.io/kubernetes/pkg/client/typed/discovery"
|
discovery "k8s.io/kubernetes/pkg/client/typed/discovery"
|
||||||
"k8s.io/kubernetes/pkg/util/flowcontrol"
|
"k8s.io/kubernetes/pkg/util/flowcontrol"
|
||||||
@ -29,30 +29,24 @@ import (
|
|||||||
|
|
||||||
type Interface interface {
|
type Interface interface {
|
||||||
Discovery() discovery.DiscoveryInterface
|
Discovery() discovery.DiscoveryInterface
|
||||||
Federation() unversionedfederation.FederationInterface
|
Core() internalversioncore.CoreInterface
|
||||||
Core() unversionedcore.CoreInterface
|
|
||||||
Extensions() unversionedextensions.ExtensionsInterface
|
Extensions() internalversionextensions.ExtensionsInterface
|
||||||
|
|
||||||
|
Federation() internalversionfederation.FederationInterface
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clientset contains the clients for groups. Each group has exactly one
|
// Clientset contains the clients for groups. Each group has exactly one
|
||||||
// version included in a Clientset.
|
// version included in a Clientset.
|
||||||
type Clientset struct {
|
type Clientset struct {
|
||||||
*discovery.DiscoveryClient
|
*discovery.DiscoveryClient
|
||||||
*unversionedfederation.FederationClient
|
*internalversioncore.CoreClient
|
||||||
*unversionedcore.CoreClient
|
*internalversionextensions.ExtensionsClient
|
||||||
*unversionedextensions.ExtensionsClient
|
*internalversionfederation.FederationClient
|
||||||
}
|
|
||||||
|
|
||||||
// Federation retrieves the FederationClient
|
|
||||||
func (c *Clientset) Federation() unversionedfederation.FederationInterface {
|
|
||||||
if c == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return c.FederationClient
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Core retrieves the CoreClient
|
// Core retrieves the CoreClient
|
||||||
func (c *Clientset) Core() unversionedcore.CoreInterface {
|
func (c *Clientset) Core() internalversioncore.CoreInterface {
|
||||||
if c == nil {
|
if c == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -60,13 +54,21 @@ func (c *Clientset) Core() unversionedcore.CoreInterface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Extensions retrieves the ExtensionsClient
|
// Extensions retrieves the ExtensionsClient
|
||||||
func (c *Clientset) Extensions() unversionedextensions.ExtensionsInterface {
|
func (c *Clientset) Extensions() internalversionextensions.ExtensionsInterface {
|
||||||
if c == nil {
|
if c == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return c.ExtensionsClient
|
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
|
// Discovery retrieves the DiscoveryClient
|
||||||
func (c *Clientset) Discovery() discovery.DiscoveryInterface {
|
func (c *Clientset) Discovery() discovery.DiscoveryInterface {
|
||||||
return c.DiscoveryClient
|
return c.DiscoveryClient
|
||||||
@ -80,15 +82,15 @@ func NewForConfig(c *restclient.Config) (*Clientset, error) {
|
|||||||
}
|
}
|
||||||
var clientset Clientset
|
var clientset Clientset
|
||||||
var err error
|
var err error
|
||||||
clientset.FederationClient, err = unversionedfederation.NewForConfig(&configShallowCopy)
|
clientset.CoreClient, err = internalversioncore.NewForConfig(&configShallowCopy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
clientset.CoreClient, err = unversionedcore.NewForConfig(&configShallowCopy)
|
clientset.ExtensionsClient, err = internalversionextensions.NewForConfig(&configShallowCopy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
clientset.ExtensionsClient, err = unversionedextensions.NewForConfig(&configShallowCopy)
|
clientset.FederationClient, err = internalversionfederation.NewForConfig(&configShallowCopy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -105,9 +107,9 @@ func NewForConfig(c *restclient.Config) (*Clientset, error) {
|
|||||||
// panics if there is an error in the config.
|
// panics if there is an error in the config.
|
||||||
func NewForConfigOrDie(c *restclient.Config) *Clientset {
|
func NewForConfigOrDie(c *restclient.Config) *Clientset {
|
||||||
var clientset Clientset
|
var clientset Clientset
|
||||||
clientset.FederationClient = unversionedfederation.NewForConfigOrDie(c)
|
clientset.CoreClient = internalversioncore.NewForConfigOrDie(c)
|
||||||
clientset.CoreClient = unversionedcore.NewForConfigOrDie(c)
|
clientset.ExtensionsClient = internalversionextensions.NewForConfigOrDie(c)
|
||||||
clientset.ExtensionsClient = unversionedextensions.NewForConfigOrDie(c)
|
clientset.FederationClient = internalversionfederation.NewForConfigOrDie(c)
|
||||||
|
|
||||||
clientset.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c)
|
clientset.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c)
|
||||||
return &clientset
|
return &clientset
|
||||||
@ -116,9 +118,9 @@ func NewForConfigOrDie(c *restclient.Config) *Clientset {
|
|||||||
// New creates a new Clientset for the given RESTClient.
|
// New creates a new Clientset for the given RESTClient.
|
||||||
func New(c restclient.Interface) *Clientset {
|
func New(c restclient.Interface) *Clientset {
|
||||||
var clientset Clientset
|
var clientset Clientset
|
||||||
clientset.FederationClient = unversionedfederation.New(c)
|
clientset.CoreClient = internalversioncore.New(c)
|
||||||
clientset.CoreClient = unversionedcore.New(c)
|
clientset.ExtensionsClient = internalversionextensions.New(c)
|
||||||
clientset.ExtensionsClient = unversionedextensions.New(c)
|
clientset.FederationClient = internalversionfederation.New(c)
|
||||||
|
|
||||||
clientset.DiscoveryClient = discovery.NewDiscoveryClient(c)
|
clientset.DiscoveryClient = discovery.NewDiscoveryClient(c)
|
||||||
return &clientset
|
return &clientset
|
||||||
|
@ -19,12 +19,12 @@ go_library(
|
|||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
"//federation/client/clientset_generated/federation_internalclientset:go_default_library",
|
"//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/internalversion:go_default_library",
|
||||||
"//federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake:go_default_library",
|
"//federation/client/clientset_generated/federation_internalclientset/typed/core/internalversion/fake:go_default_library",
|
||||||
"//federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned:go_default_library",
|
"//federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion:go_default_library",
|
||||||
"//federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned/fake:go_default_library",
|
"//federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion/fake: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",
|
||||||
"//federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/fake:go_default_library",
|
"//federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion/fake:go_default_library",
|
||||||
"//pkg/api:go_default_library",
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/apimachinery/registered:go_default_library",
|
"//pkg/apimachinery/registered:go_default_library",
|
||||||
"//pkg/client/testing/core:go_default_library",
|
"//pkg/client/testing/core:go_default_library",
|
||||||
|
@ -18,12 +18,12 @@ package fake
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
clientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset"
|
clientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset"
|
||||||
unversionedcore "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned"
|
internalversioncore "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/internalversion"
|
||||||
fakeunversionedcore "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake"
|
fakeinternalversioncore "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/internalversion/fake"
|
||||||
unversionedextensions "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned"
|
internalversionextensions "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion"
|
||||||
fakeunversionedextensions "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/extensions/unversioned/fake"
|
fakeinternalversionextensions "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion/fake"
|
||||||
unversionedfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned"
|
internalversionfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion"
|
||||||
fakeunversionedfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/fake"
|
fakeinternalversionfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion/fake"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||||
"k8s.io/kubernetes/pkg/client/testing/core"
|
"k8s.io/kubernetes/pkg/client/testing/core"
|
||||||
@ -66,17 +66,17 @@ func (c *Clientset) Discovery() discovery.DiscoveryInterface {
|
|||||||
|
|
||||||
var _ clientset.Interface = &Clientset{}
|
var _ clientset.Interface = &Clientset{}
|
||||||
|
|
||||||
// Federation retrieves the FederationClient
|
|
||||||
func (c *Clientset) Federation() unversionedfederation.FederationInterface {
|
|
||||||
return &fakeunversionedfederation.FakeFederation{Fake: &c.Fake}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Core retrieves the CoreClient
|
// Core retrieves the CoreClient
|
||||||
func (c *Clientset) Core() unversionedcore.CoreInterface {
|
func (c *Clientset) Core() internalversioncore.CoreInterface {
|
||||||
return &fakeunversionedcore.FakeCore{Fake: &c.Fake}
|
return &fakeinternalversioncore.FakeCore{Fake: &c.Fake}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extensions retrieves the ExtensionsClient
|
// Extensions retrieves the ExtensionsClient
|
||||||
func (c *Clientset) Extensions() unversionedextensions.ExtensionsInterface {
|
func (c *Clientset) Extensions() internalversionextensions.ExtensionsInterface {
|
||||||
return &fakeunversionedextensions.FakeExtensions{Fake: &c.Fake}
|
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.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
import (
|
import (
|
||||||
api "k8s.io/kubernetes/pkg/api"
|
api "k8s.io/kubernetes/pkg/api"
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
import (
|
import (
|
||||||
api "k8s.io/kubernetes/pkg/api"
|
api "k8s.io/kubernetes/pkg/api"
|
||||||
@ -31,7 +31,7 @@ type CoreInterface interface {
|
|||||||
ServicesGetter
|
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 {
|
type CoreClient struct {
|
||||||
restClient restclient.Interface
|
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 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.
|
// 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.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
import (
|
import (
|
||||||
api "k8s.io/kubernetes/pkg/api"
|
api "k8s.io/kubernetes/pkg/api"
|
@ -24,7 +24,7 @@ go_library(
|
|||||||
],
|
],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
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:go_default_library",
|
||||||
"//pkg/api/unversioned:go_default_library",
|
"//pkg/api/unversioned:go_default_library",
|
||||||
"//pkg/client/restclient:go_default_library",
|
"//pkg/client/restclient:go_default_library",
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||||||
package fake
|
package fake
|
||||||
|
|
||||||
import (
|
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"
|
restclient "k8s.io/kubernetes/pkg/client/restclient"
|
||||||
core "k8s.io/kubernetes/pkg/client/testing/core"
|
core "k8s.io/kubernetes/pkg/client/testing/core"
|
||||||
)
|
)
|
||||||
@ -26,23 +26,23 @@ type FakeCore struct {
|
|||||||
*core.Fake
|
*core.Fake
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *FakeCore) ConfigMaps(namespace string) unversioned.ConfigMapInterface {
|
func (c *FakeCore) ConfigMaps(namespace string) internalversion.ConfigMapInterface {
|
||||||
return &FakeConfigMaps{c, namespace}
|
return &FakeConfigMaps{c, namespace}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *FakeCore) Events(namespace string) unversioned.EventInterface {
|
func (c *FakeCore) Events(namespace string) internalversion.EventInterface {
|
||||||
return &FakeEvents{c, namespace}
|
return &FakeEvents{c, namespace}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *FakeCore) Namespaces() unversioned.NamespaceInterface {
|
func (c *FakeCore) Namespaces() internalversion.NamespaceInterface {
|
||||||
return &FakeNamespaces{c}
|
return &FakeNamespaces{c}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *FakeCore) Secrets(namespace string) unversioned.SecretInterface {
|
func (c *FakeCore) Secrets(namespace string) internalversion.SecretInterface {
|
||||||
return &FakeSecrets{c, namespace}
|
return &FakeSecrets{c, namespace}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *FakeCore) Services(namespace string) unversioned.ServiceInterface {
|
func (c *FakeCore) Services(namespace string) internalversion.ServiceInterface {
|
||||||
return &FakeServices{c, namespace}
|
return &FakeServices{c, namespace}
|
||||||
}
|
}
|
||||||
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
type ConfigMapExpansion interface{}
|
type ConfigMapExpansion interface{}
|
||||||
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
import (
|
import (
|
||||||
api "k8s.io/kubernetes/pkg/api"
|
api "k8s.io/kubernetes/pkg/api"
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
import "k8s.io/kubernetes/pkg/api"
|
import "k8s.io/kubernetes/pkg/api"
|
||||||
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
import (
|
import (
|
||||||
api "k8s.io/kubernetes/pkg/api"
|
api "k8s.io/kubernetes/pkg/api"
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
import (
|
import (
|
||||||
api "k8s.io/kubernetes/pkg/api"
|
api "k8s.io/kubernetes/pkg/api"
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
import (
|
import (
|
||||||
api "k8s.io/kubernetes/pkg/api"
|
api "k8s.io/kubernetes/pkg/api"
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
import (
|
import (
|
||||||
api "k8s.io/kubernetes/pkg/api"
|
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 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.
|
// 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.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
import (
|
import (
|
||||||
api "k8s.io/kubernetes/pkg/api"
|
api "k8s.io/kubernetes/pkg/api"
|
||||||
@ -30,7 +30,7 @@ type ExtensionsInterface interface {
|
|||||||
ReplicaSetsGetter
|
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 {
|
type ExtensionsClient struct {
|
||||||
restClient restclient.Interface
|
restClient restclient.Interface
|
||||||
}
|
}
|
@ -22,7 +22,7 @@ go_library(
|
|||||||
],
|
],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
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:go_default_library",
|
||||||
"//pkg/api/unversioned:go_default_library",
|
"//pkg/api/unversioned:go_default_library",
|
||||||
"//pkg/apis/extensions:go_default_library",
|
"//pkg/apis/extensions:go_default_library",
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||||||
package fake
|
package fake
|
||||||
|
|
||||||
import (
|
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"
|
restclient "k8s.io/kubernetes/pkg/client/restclient"
|
||||||
core "k8s.io/kubernetes/pkg/client/testing/core"
|
core "k8s.io/kubernetes/pkg/client/testing/core"
|
||||||
)
|
)
|
||||||
@ -26,19 +26,19 @@ type FakeExtensions struct {
|
|||||||
*core.Fake
|
*core.Fake
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *FakeExtensions) DaemonSets(namespace string) unversioned.DaemonSetInterface {
|
func (c *FakeExtensions) DaemonSets(namespace string) internalversion.DaemonSetInterface {
|
||||||
return &FakeDaemonSets{c, namespace}
|
return &FakeDaemonSets{c, namespace}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *FakeExtensions) Deployments(namespace string) unversioned.DeploymentInterface {
|
func (c *FakeExtensions) Deployments(namespace string) internalversion.DeploymentInterface {
|
||||||
return &FakeDeployments{c, namespace}
|
return &FakeDeployments{c, namespace}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *FakeExtensions) Ingresses(namespace string) unversioned.IngressInterface {
|
func (c *FakeExtensions) Ingresses(namespace string) internalversion.IngressInterface {
|
||||||
return &FakeIngresses{c, namespace}
|
return &FakeIngresses{c, namespace}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *FakeExtensions) ReplicaSets(namespace string) unversioned.ReplicaSetInterface {
|
func (c *FakeExtensions) ReplicaSets(namespace string) internalversion.ReplicaSetInterface {
|
||||||
return &FakeReplicaSets{c, namespace}
|
return &FakeReplicaSets{c, namespace}
|
||||||
}
|
}
|
||||||
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
type DaemonSetExpansion interface{}
|
type DaemonSetExpansion interface{}
|
||||||
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
import (
|
import (
|
||||||
api "k8s.io/kubernetes/pkg/api"
|
api "k8s.io/kubernetes/pkg/api"
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
import (
|
import (
|
||||||
api "k8s.io/kubernetes/pkg/api"
|
api "k8s.io/kubernetes/pkg/api"
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package unversioned
|
package internalversion
|
||||||
|
|
||||||
import (
|
import (
|
||||||
federation "k8s.io/kubernetes/federation/apis/federation"
|
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 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.
|
// This package has the automatically generated typed clients.
|
||||||
package unversioned
|
package internalversion
|
@ -20,7 +20,7 @@ go_library(
|
|||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
"//federation/apis/federation:go_default_library",
|
"//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:go_default_library",
|
||||||
"//pkg/api/unversioned:go_default_library",
|
"//pkg/api/unversioned:go_default_library",
|
||||||
"//pkg/client/restclient: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
Block a user