diff --git a/cmd/libs/go2idl/client-gen/args/args.go b/cmd/libs/go2idl/client-gen/args/args.go index af27a94cef..1e7099e49e 100644 --- a/cmd/libs/go2idl/client-gen/args/args.go +++ b/cmd/libs/go2idl/client-gen/args/args.go @@ -29,6 +29,10 @@ type Args struct { // the respective types.go. We still need GroupVersions in the struct because // we need an order. GroupVersionToInputPath map[unversioned.GroupVersion]string + + // Overrides for which types should be included in the client. + IncludedTypesOverrides map[unversioned.GroupVersion][]string + // ClientsetName is the name of the clientset to be generated. It's // populated from command-line arguments. ClientsetName string diff --git a/cmd/libs/go2idl/client-gen/generators/client_generator.go b/cmd/libs/go2idl/client-gen/generators/client_generator.go index 76c8329b6e..dcefb1d9ed 100644 --- a/cmd/libs/go2idl/client-gen/generators/client_generator.go +++ b/cmd/libs/go2idl/client-gen/generators/client_generator.go @@ -166,15 +166,32 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat if !ok { glog.Fatalf("cannot convert arguments.CustomArgs to clientgenargs.Args") } + includedTypesOverrides := customArgs.IncludedTypesOverrides generatedBy := generatedBy(customArgs) gvToTypes := map[unversioned.GroupVersion][]*types.Type{} for gv, inputDir := range customArgs.GroupVersionToInputPath { p := context.Universe.Package(inputDir) - for _, t := range p.Types { - if types.ExtractCommentTags("+", t.SecondClosestCommentLines)["genclient"] != "true" { - continue + for n, t := range p.Types { + // filter out types which are not included in user specified overrides. + typesOverride, ok := includedTypesOverrides[gv] + if ok { + found := false + for _, typeStr := range typesOverride { + if typeStr == n { + found = true + } + } + if !found { + continue + } + } else { + // User has not specified any override for this group version. + // filter out types which dont have genclient=true. + if types.ExtractCommentTags("+", t.SecondClosestCommentLines)["genclient"] != "true" { + continue + } } if _, found := gvToTypes[gv]; !found { gvToTypes[gv] = []*types.Type{} diff --git a/cmd/libs/go2idl/client-gen/main.go b/cmd/libs/go2idl/client-gen/main.go index afff4d0126..e6bce2ba18 100644 --- a/cmd/libs/go2idl/client-gen/main.go +++ b/cmd/libs/go2idl/client-gen/main.go @@ -33,13 +33,14 @@ import ( ) var ( - test = flag.BoolP("test", "t", false, "set this flag to generate the client code for the testdata") - inputVersions = flag.StringSlice("input", []string{"api/", "extensions/", "autoscaling/", "batch/"}, "group/versions that client-gen will generate clients for. At most one version per group is allowed. Specified in the format \"group1/version1,group2/version2...\". Default to \"api/,extensions/,autoscaling/,batch/\"") - basePath = flag.String("input-base", "k8s.io/kubernetes/pkg/apis", "base path to look for the api group. Default to \"k8s.io/kubernetes/pkg/apis\"") - clientsetName = flag.StringP("clientset-name", "n", "internalclientset", "the name of the generated clientset package.") - clientsetPath = flag.String("clientset-path", "k8s.io/kubernetes/pkg/client/clientset_generated/", "the generated clientset will be output to /. Default to \"k8s.io/kubernetes/pkg/client/clientset_generated/\"") - clientsetOnly = flag.Bool("clientset-only", false, "when set, client-gen only generates the clientset shell, without generating the individual typed clients") - fakeClient = flag.Bool("fake-clientset", true, "when set, client-gen will generate the fake clientset that can be used in tests") + test = flag.BoolP("test", "t", false, "set this flag to generate the client code for the testdata") + inputVersions = flag.StringSlice("input", []string{"api/", "extensions/", "autoscaling/", "batch/"}, "group/versions that client-gen will generate clients for. At most one version per group is allowed. Specified in the format \"group1/version1,group2/version2...\". Default to \"api/,extensions/,autoscaling/,batch/\"") + includedTypesOverrides = flag.StringSlice("included-types-overrides", []string{}, "list of group/version/type for which client should be generated. By default, client is generated for all types which have genclient=true in types.go. This overrides that. For each groupVersion in this list, only the types mentioned here will be included. The default check of genclient=true will be used for other group versions.") + basePath = flag.String("input-base", "k8s.io/kubernetes/pkg/apis", "base path to look for the api group. Default to \"k8s.io/kubernetes/pkg/apis\"") + clientsetName = flag.StringP("clientset-name", "n", "internalclientset", "the name of the generated clientset package.") + clientsetPath = flag.String("clientset-path", "k8s.io/kubernetes/pkg/client/clientset_generated/", "the generated clientset will be output to /. Default to \"k8s.io/kubernetes/pkg/client/clientset_generated/\"") + clientsetOnly = flag.Bool("clientset-only", false, "when set, client-gen only generates the clientset shell, without generating the individual typed clients") + fakeClient = flag.Bool("fake-clientset", true, "when set, client-gen will generate the fake clientset that can be used in tests") ) func versionToPath(gvPath string, group string, version string) (path string) { @@ -52,6 +53,24 @@ func versionToPath(gvPath string, group string, version string) (path string) { return } +func parseGroupVersionType(gvtString string) (gvString string, typeStr string, err error) { + invalidFormatErr := fmt.Errorf("invalid value: %s, should be of the form group/version/type", gvtString) + subs := strings.Split(gvtString, "/") + length := len(subs) + switch length { + case 2: + // handle legacy api group version. + if subs[0] == "api" { + return "api/", subs[1], nil + } + return "", "", invalidFormatErr + case 3: + return strings.Join(subs[:length-1], "/"), subs[length-1], nil + default: + return "", "", invalidFormatErr + } +} + func parsePathGroupVersion(pgvString string) (gvPath string, gvString string) { subs := strings.Split(pgvString, "/") length := len(subs) @@ -85,6 +104,27 @@ func parseInputVersions() (paths []string, groupVersions []unversioned.GroupVers return paths, groupVersions, gvToPath, nil } +func parseIncludedTypesOverrides() (map[unversioned.GroupVersion][]string, error) { + overrides := make(map[unversioned.GroupVersion][]string) + for _, input := range *includedTypesOverrides { + gvString, typeStr, err := parseGroupVersionType(input) + if err != nil { + return nil, err + } + gv, err := unversioned.ParseGroupVersion(gvString) + if err != nil { + return nil, err + } + types, ok := overrides[gv] + if !ok { + types = []string{} + } + types = append(types, typeStr) + overrides[gv] = types + } + return overrides, nil +} + func main() { arguments := args.Default() flag.Parse() @@ -124,6 +164,10 @@ func main() { if err != nil { glog.Fatalf("Error: %v", err) } + includedTypesOverrides, err := parseIncludedTypesOverrides() + if err != nil { + glog.Fatalf("Unexpected error: %v", err) + } glog.Infof("going to generate clientset from these input paths: %v", inputPath) arguments.InputDirs = append(inputPath, dependencies...) @@ -135,6 +179,7 @@ func main() { ClientsetOnly: *clientsetOnly, FakeClient: *fakeClient, CmdArgs: cmdArgs, + IncludedTypesOverrides: includedTypesOverrides, } fmt.Printf("==arguments: %v\n", arguments) diff --git a/federation/client/clientset_generated/federation_internalclientset/clientset.go b/federation/client/clientset_generated/federation_internalclientset/clientset.go index f7d7d7ae4a..37c13f858a 100644 --- a/federation/client/clientset_generated/federation_internalclientset/clientset.go +++ b/federation/client/clientset_generated/federation_internalclientset/clientset.go @@ -18,6 +18,7 @@ package federation_internalclientset import ( "github.com/golang/glog" + unversionedcore "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned" unversionedfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned" restclient "k8s.io/kubernetes/pkg/client/restclient" discovery "k8s.io/kubernetes/pkg/client/typed/discovery" @@ -27,6 +28,7 @@ import ( type Interface interface { Discovery() discovery.DiscoveryInterface Federation() unversionedfederation.FederationInterface + Core() unversionedcore.CoreInterface } // Clientset contains the clients for groups. Each group has exactly one @@ -34,6 +36,7 @@ type Interface interface { type Clientset struct { *discovery.DiscoveryClient *unversionedfederation.FederationClient + *unversionedcore.CoreClient } // Federation retrieves the FederationClient @@ -44,6 +47,14 @@ func (c *Clientset) Federation() unversionedfederation.FederationInterface { return c.FederationClient } +// Core retrieves the CoreClient +func (c *Clientset) Core() unversionedcore.CoreInterface { + if c == nil { + return nil + } + return c.CoreClient +} + // Discovery retrieves the DiscoveryClient func (c *Clientset) Discovery() discovery.DiscoveryInterface { return c.DiscoveryClient @@ -61,6 +72,10 @@ func NewForConfig(c *restclient.Config) (*Clientset, error) { if err != nil { return &clientset, err } + clientset.CoreClient, err = unversionedcore.NewForConfig(&configShallowCopy) + if err != nil { + return &clientset, err + } clientset.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy) if err != nil { @@ -74,6 +89,7 @@ func NewForConfig(c *restclient.Config) (*Clientset, error) { func NewForConfigOrDie(c *restclient.Config) *Clientset { var clientset Clientset clientset.FederationClient = unversionedfederation.NewForConfigOrDie(c) + clientset.CoreClient = unversionedcore.NewForConfigOrDie(c) clientset.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c) return &clientset @@ -83,6 +99,7 @@ func NewForConfigOrDie(c *restclient.Config) *Clientset { func New(c *restclient.RESTClient) *Clientset { var clientset Clientset clientset.FederationClient = unversionedfederation.New(c) + clientset.CoreClient = unversionedcore.New(c) clientset.DiscoveryClient = discovery.NewDiscoveryClient(c) return &clientset diff --git a/federation/client/clientset_generated/federation_internalclientset/doc.go b/federation/client/clientset_generated/federation_internalclientset/doc.go index 04a11b0ad6..40d4acceae 100644 --- a/federation/client/clientset_generated/federation_internalclientset/doc.go +++ b/federation/client/clientset_generated/federation_internalclientset/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and 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 --input=[../../federation/apis/federation/] +// 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] --input=[../../federation/apis/federation/,api/] // This package has the automatically generated clientset. package federation_internalclientset diff --git a/federation/client/clientset_generated/federation_internalclientset/fake/clientset_generated.go b/federation/client/clientset_generated/federation_internalclientset/fake/clientset_generated.go index 064c0e54cf..21b95c03fb 100644 --- a/federation/client/clientset_generated/federation_internalclientset/fake/clientset_generated.go +++ b/federation/client/clientset_generated/federation_internalclientset/fake/clientset_generated.go @@ -18,6 +18,8 @@ package fake import ( clientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset" + unversionedcore "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned" + fakeunversionedcore "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake" unversionedfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned" fakeunversionedfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/fake" "k8s.io/kubernetes/pkg/api" @@ -63,3 +65,8 @@ var _ clientset.Interface = &Clientset{} func (c *Clientset) Federation() unversionedfederation.FederationInterface { return &fakeunversionedfederation.FakeFederation{Fake: &c.Fake} } + +// Core retrieves the CoreClient +func (c *Clientset) Core() unversionedcore.CoreInterface { + return &fakeunversionedcore.FakeCore{Fake: &c.Fake} +} diff --git a/federation/client/clientset_generated/federation_internalclientset/fake/doc.go b/federation/client/clientset_generated/federation_internalclientset/fake/doc.go index 362c9efa86..febc307fa2 100644 --- a/federation/client/clientset_generated/federation_internalclientset/fake/doc.go +++ b/federation/client/clientset_generated/federation_internalclientset/fake/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and 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 --input=[../../federation/apis/federation/] +// 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] --input=[../../federation/apis/federation/,api/] // This package has the automatically generated fake clientset. package fake diff --git a/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/core_client.go b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/core_client.go new file mode 100644 index 0000000000..d308d0fe1e --- /dev/null +++ b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/core_client.go @@ -0,0 +1,101 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +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 + +import ( + api "k8s.io/kubernetes/pkg/api" + registered "k8s.io/kubernetes/pkg/apimachinery/registered" + restclient "k8s.io/kubernetes/pkg/client/restclient" +) + +type CoreInterface interface { + GetRESTClient() *restclient.RESTClient + ServicesGetter +} + +// CoreClient is used to interact with features provided by the Core group. +type CoreClient struct { + *restclient.RESTClient +} + +func (c *CoreClient) Services(namespace string) ServiceInterface { + return newServices(c, namespace) +} + +// NewForConfig creates a new CoreClient for the given config. +func NewForConfig(c *restclient.Config) (*CoreClient, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := restclient.RESTClientFor(&config) + if err != nil { + return nil, err + } + return &CoreClient{client}, nil +} + +// NewForConfigOrDie creates a new CoreClient for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *restclient.Config) *CoreClient { + client, err := NewForConfig(c) + if err != nil { + panic(err) + } + return client +} + +// New creates a new CoreClient for the given RESTClient. +func New(c *restclient.RESTClient) *CoreClient { + return &CoreClient{c} +} + +func setConfigDefaults(config *restclient.Config) error { + // if core group is not registered, return an error + g, err := registered.Group("") + if err != nil { + return err + } + config.APIPath = "/api" + if config.UserAgent == "" { + config.UserAgent = restclient.DefaultKubernetesUserAgent() + } + // TODO: Unconditionally set the config.Version, until we fix the config. + //if config.Version == "" { + copyGroupVersion := g.GroupVersion + config.GroupVersion = ©GroupVersion + //} + + config.NegotiatedSerializer = api.Codecs + + if config.QPS == 0 { + config.QPS = 5 + } + if config.Burst == 0 { + config.Burst = 10 + } + return nil +} + +// GetRESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *CoreClient) GetRESTClient() *restclient.RESTClient { + if c == nil { + return nil + } + return c.RESTClient +} diff --git a/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/doc.go b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/doc.go new file mode 100644 index 0000000000..30cff08b94 --- /dev/null +++ b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +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. +*/ + +// 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] --input=[../../federation/apis/federation/,api/] + +// This package has the automatically generated typed clients. +package unversioned diff --git a/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake/doc.go b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake/doc.go new file mode 100644 index 0000000000..c2d08c5923 --- /dev/null +++ b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +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. +*/ + +// 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] --input=[../../federation/apis/federation/,api/] + +// Package fake has the automatically generated clients. +package fake diff --git a/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake/fake_core_client.go b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake/fake_core_client.go new file mode 100644 index 0000000000..1e28cd26c9 --- /dev/null +++ b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake/fake_core_client.go @@ -0,0 +1,37 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +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 fake + +import ( + unversioned "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned" + restclient "k8s.io/kubernetes/pkg/client/restclient" + core "k8s.io/kubernetes/pkg/client/testing/core" +) + +type FakeCore struct { + *core.Fake +} + +func (c *FakeCore) Services(namespace string) unversioned.ServiceInterface { + return &FakeServices{c, namespace} +} + +// GetRESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *FakeCore) GetRESTClient() *restclient.RESTClient { + return nil +} diff --git a/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake/fake_service.go b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake/fake_service.go new file mode 100644 index 0000000000..62eae6481e --- /dev/null +++ b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake/fake_service.go @@ -0,0 +1,115 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +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 fake + +import ( + api "k8s.io/kubernetes/pkg/api" + unversioned "k8s.io/kubernetes/pkg/api/unversioned" + core "k8s.io/kubernetes/pkg/client/testing/core" + labels "k8s.io/kubernetes/pkg/labels" + watch "k8s.io/kubernetes/pkg/watch" +) + +// FakeServices implements ServiceInterface +type FakeServices struct { + Fake *FakeCore + ns string +} + +var servicesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "services"} + +func (c *FakeServices) Create(service *api.Service) (result *api.Service, err error) { + obj, err := c.Fake. + Invokes(core.NewCreateAction(servicesResource, c.ns, service), &api.Service{}) + + if obj == nil { + return nil, err + } + return obj.(*api.Service), err +} + +func (c *FakeServices) Update(service *api.Service) (result *api.Service, err error) { + obj, err := c.Fake. + Invokes(core.NewUpdateAction(servicesResource, c.ns, service), &api.Service{}) + + if obj == nil { + return nil, err + } + return obj.(*api.Service), err +} + +func (c *FakeServices) UpdateStatus(service *api.Service) (*api.Service, error) { + obj, err := c.Fake. + Invokes(core.NewUpdateSubresourceAction(servicesResource, "status", c.ns, service), &api.Service{}) + + if obj == nil { + return nil, err + } + return obj.(*api.Service), err +} + +func (c *FakeServices) Delete(name string, options *api.DeleteOptions) error { + _, err := c.Fake. + Invokes(core.NewDeleteAction(servicesResource, c.ns, name), &api.Service{}) + + return err +} + +func (c *FakeServices) DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error { + action := core.NewDeleteCollectionAction(servicesResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &api.ServiceList{}) + return err +} + +func (c *FakeServices) Get(name string) (result *api.Service, err error) { + obj, err := c.Fake. + Invokes(core.NewGetAction(servicesResource, c.ns, name), &api.Service{}) + + if obj == nil { + return nil, err + } + return obj.(*api.Service), err +} + +func (c *FakeServices) List(opts api.ListOptions) (result *api.ServiceList, err error) { + obj, err := c.Fake. + Invokes(core.NewListAction(servicesResource, c.ns, opts), &api.ServiceList{}) + + if obj == nil { + return nil, err + } + + label := opts.LabelSelector + if label == nil { + label = labels.Everything() + } + list := &api.ServiceList{} + for _, item := range obj.(*api.ServiceList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested services. +func (c *FakeServices) Watch(opts api.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(core.NewWatchAction(servicesResource, c.ns, opts)) + +} diff --git a/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/generated_expansion.go b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/generated_expansion.go new file mode 100644 index 0000000000..65df6665a9 --- /dev/null +++ b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/generated_expansion.go @@ -0,0 +1,19 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +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 + +type ServiceExpansion interface{} diff --git a/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/service.go b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/service.go new file mode 100644 index 0000000000..006f601c27 --- /dev/null +++ b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/service.go @@ -0,0 +1,149 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +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 + +import ( + api "k8s.io/kubernetes/pkg/api" + watch "k8s.io/kubernetes/pkg/watch" +) + +// ServicesGetter has a method to return a ServiceInterface. +// A group's client should implement this interface. +type ServicesGetter interface { + Services(namespace string) ServiceInterface +} + +// ServiceInterface has methods to work with Service resources. +type ServiceInterface interface { + Create(*api.Service) (*api.Service, error) + Update(*api.Service) (*api.Service, error) + UpdateStatus(*api.Service) (*api.Service, error) + Delete(name string, options *api.DeleteOptions) error + DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error + Get(name string) (*api.Service, error) + List(opts api.ListOptions) (*api.ServiceList, error) + Watch(opts api.ListOptions) (watch.Interface, error) + ServiceExpansion +} + +// services implements ServiceInterface +type services struct { + client *CoreClient + ns string +} + +// newServices returns a Services +func newServices(c *CoreClient, namespace string) *services { + return &services{ + client: c, + ns: namespace, + } +} + +// Create takes the representation of a service and creates it. Returns the server's representation of the service, and an error, if there is any. +func (c *services) Create(service *api.Service) (result *api.Service, err error) { + result = &api.Service{} + err = c.client.Post(). + Namespace(c.ns). + Resource("services"). + Body(service). + Do(). + Into(result) + return +} + +// Update takes the representation of a service and updates it. Returns the server's representation of the service, and an error, if there is any. +func (c *services) Update(service *api.Service) (result *api.Service, err error) { + result = &api.Service{} + err = c.client.Put(). + Namespace(c.ns). + Resource("services"). + Name(service.Name). + Body(service). + Do(). + Into(result) + return +} + +func (c *services) UpdateStatus(service *api.Service) (result *api.Service, err error) { + result = &api.Service{} + err = c.client.Put(). + Namespace(c.ns). + Resource("services"). + Name(service.Name). + SubResource("status"). + Body(service). + Do(). + Into(result) + return +} + +// Delete takes name of the service and deletes it. Returns an error if one occurs. +func (c *services) Delete(name string, options *api.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("services"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *services) DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("services"). + VersionedParams(&listOptions, api.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Get takes name of the service, and returns the corresponding service object, and an error if there is any. +func (c *services) Get(name string) (result *api.Service, err error) { + result = &api.Service{} + err = c.client.Get(). + Namespace(c.ns). + Resource("services"). + Name(name). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of Services that match those selectors. +func (c *services) List(opts api.ListOptions) (result *api.ServiceList, err error) { + result = &api.ServiceList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("services"). + VersionedParams(&opts, api.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested services. +func (c *services) Watch(opts api.ListOptions) (watch.Interface, error) { + return c.client.Get(). + Prefix("watch"). + Namespace(c.ns). + Resource("services"). + VersionedParams(&opts, api.ParameterCodec). + Watch() +} diff --git a/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/doc.go b/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/doc.go index 3a89008e1d..30cff08b94 100644 --- a/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/doc.go +++ b/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and 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 --input=[../../federation/apis/federation/] +// 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] --input=[../../federation/apis/federation/,api/] // This package has the automatically generated typed clients. package unversioned diff --git a/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/fake/doc.go b/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/fake/doc.go index 65237d81b3..c2d08c5923 100644 --- a/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/fake/doc.go +++ b/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned/fake/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and 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 --input=[../../federation/apis/federation/] +// 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] --input=[../../federation/apis/federation/,api/] // Package fake has the automatically generated clients. package fake diff --git a/federation/client/clientset_generated/federation_release_1_3/clientset.go b/federation/client/clientset_generated/federation_release_1_3/clientset.go index 9bccf73161..7bc6216e80 100644 --- a/federation/client/clientset_generated/federation_release_1_3/clientset.go +++ b/federation/client/clientset_generated/federation_release_1_3/clientset.go @@ -18,6 +18,7 @@ package federation_release_1_3 import ( "github.com/golang/glog" + v1core "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_3/typed/core/v1" v1alpha1federation "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1alpha1" restclient "k8s.io/kubernetes/pkg/client/restclient" discovery "k8s.io/kubernetes/pkg/client/typed/discovery" @@ -27,6 +28,7 @@ import ( type Interface interface { Discovery() discovery.DiscoveryInterface Federation() v1alpha1federation.FederationInterface + Core() v1core.CoreInterface } // Clientset contains the clients for groups. Each group has exactly one @@ -34,6 +36,7 @@ type Interface interface { type Clientset struct { *discovery.DiscoveryClient *v1alpha1federation.FederationClient + *v1core.CoreClient } // Federation retrieves the FederationClient @@ -44,6 +47,14 @@ func (c *Clientset) Federation() v1alpha1federation.FederationInterface { return c.FederationClient } +// Core retrieves the CoreClient +func (c *Clientset) Core() v1core.CoreInterface { + if c == nil { + return nil + } + return c.CoreClient +} + // Discovery retrieves the DiscoveryClient func (c *Clientset) Discovery() discovery.DiscoveryInterface { return c.DiscoveryClient @@ -61,6 +72,10 @@ func NewForConfig(c *restclient.Config) (*Clientset, error) { if err != nil { return &clientset, err } + clientset.CoreClient, err = v1core.NewForConfig(&configShallowCopy) + if err != nil { + return &clientset, err + } clientset.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy) if err != nil { @@ -74,6 +89,7 @@ func NewForConfig(c *restclient.Config) (*Clientset, error) { func NewForConfigOrDie(c *restclient.Config) *Clientset { var clientset Clientset clientset.FederationClient = v1alpha1federation.NewForConfigOrDie(c) + clientset.CoreClient = v1core.NewForConfigOrDie(c) clientset.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c) return &clientset @@ -83,6 +99,7 @@ func NewForConfigOrDie(c *restclient.Config) *Clientset { func New(c *restclient.RESTClient) *Clientset { var clientset Clientset clientset.FederationClient = v1alpha1federation.New(c) + clientset.CoreClient = v1core.New(c) clientset.DiscoveryClient = discovery.NewDiscoveryClient(c) return &clientset diff --git a/federation/client/clientset_generated/federation_release_1_3/doc.go b/federation/client/clientset_generated/federation_release_1_3/doc.go index 357e29a040..44d6b8f097 100644 --- a/federation/client/clientset_generated/federation_release_1_3/doc.go +++ b/federation/client/clientset_generated/federation_release_1_3/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// This package is generated by client-gen with arguments: --clientset-name=federation_release_1_3 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --input=[../../federation/apis/federation/v1alpha1] +// This package is generated by client-gen with arguments: --clientset-name=federation_release_1_3 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service] --input=[../../federation/apis/federation/v1alpha1,api/v1] // This package has the automatically generated clientset. package federation_release_1_3 diff --git a/federation/client/clientset_generated/federation_release_1_3/fake/clientset_generated.go b/federation/client/clientset_generated/federation_release_1_3/fake/clientset_generated.go index 69439e6b0b..8af3fd9ef4 100644 --- a/federation/client/clientset_generated/federation_release_1_3/fake/clientset_generated.go +++ b/federation/client/clientset_generated/federation_release_1_3/fake/clientset_generated.go @@ -18,6 +18,8 @@ package fake import ( clientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_3" + v1core "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_3/typed/core/v1" + fakev1core "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/fake" v1alpha1federation "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1alpha1" fakev1alpha1federation "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1alpha1/fake" "k8s.io/kubernetes/pkg/api" @@ -63,3 +65,8 @@ var _ clientset.Interface = &Clientset{} func (c *Clientset) Federation() v1alpha1federation.FederationInterface { return &fakev1alpha1federation.FakeFederation{Fake: &c.Fake} } + +// Core retrieves the CoreClient +func (c *Clientset) Core() v1core.CoreInterface { + return &fakev1core.FakeCore{Fake: &c.Fake} +} diff --git a/federation/client/clientset_generated/federation_release_1_3/fake/doc.go b/federation/client/clientset_generated/federation_release_1_3/fake/doc.go index c661228b85..cd0b07c206 100644 --- a/federation/client/clientset_generated/federation_release_1_3/fake/doc.go +++ b/federation/client/clientset_generated/federation_release_1_3/fake/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// This package is generated by client-gen with arguments: --clientset-name=federation_release_1_3 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --input=[../../federation/apis/federation/v1alpha1] +// This package is generated by client-gen with arguments: --clientset-name=federation_release_1_3 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service] --input=[../../federation/apis/federation/v1alpha1,api/v1] // This package has the automatically generated fake clientset. package fake diff --git a/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/core_client.go b/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/core_client.go new file mode 100644 index 0000000000..8d0682720d --- /dev/null +++ b/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/core_client.go @@ -0,0 +1,101 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +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 v1 + +import ( + api "k8s.io/kubernetes/pkg/api" + registered "k8s.io/kubernetes/pkg/apimachinery/registered" + restclient "k8s.io/kubernetes/pkg/client/restclient" +) + +type CoreInterface interface { + GetRESTClient() *restclient.RESTClient + ServicesGetter +} + +// CoreClient is used to interact with features provided by the Core group. +type CoreClient struct { + *restclient.RESTClient +} + +func (c *CoreClient) Services(namespace string) ServiceInterface { + return newServices(c, namespace) +} + +// NewForConfig creates a new CoreClient for the given config. +func NewForConfig(c *restclient.Config) (*CoreClient, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := restclient.RESTClientFor(&config) + if err != nil { + return nil, err + } + return &CoreClient{client}, nil +} + +// NewForConfigOrDie creates a new CoreClient for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *restclient.Config) *CoreClient { + client, err := NewForConfig(c) + if err != nil { + panic(err) + } + return client +} + +// New creates a new CoreClient for the given RESTClient. +func New(c *restclient.RESTClient) *CoreClient { + return &CoreClient{c} +} + +func setConfigDefaults(config *restclient.Config) error { + // if core group is not registered, return an error + g, err := registered.Group("") + if err != nil { + return err + } + config.APIPath = "/api" + if config.UserAgent == "" { + config.UserAgent = restclient.DefaultKubernetesUserAgent() + } + // TODO: Unconditionally set the config.Version, until we fix the config. + //if config.Version == "" { + copyGroupVersion := g.GroupVersion + config.GroupVersion = ©GroupVersion + //} + + config.NegotiatedSerializer = api.Codecs + + if config.QPS == 0 { + config.QPS = 5 + } + if config.Burst == 0 { + config.Burst = 10 + } + return nil +} + +// GetRESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *CoreClient) GetRESTClient() *restclient.RESTClient { + if c == nil { + return nil + } + return c.RESTClient +} diff --git a/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/doc.go b/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/doc.go new file mode 100644 index 0000000000..e85a01c7c5 --- /dev/null +++ b/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +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. +*/ + +// This package is generated by client-gen with arguments: --clientset-name=federation_release_1_3 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service] --input=[../../federation/apis/federation/v1alpha1,api/v1] + +// This package has the automatically generated typed clients. +package v1 diff --git a/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/fake/doc.go b/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/fake/doc.go new file mode 100644 index 0000000000..846226b3be --- /dev/null +++ b/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/fake/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +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. +*/ + +// This package is generated by client-gen with arguments: --clientset-name=federation_release_1_3 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service] --input=[../../federation/apis/federation/v1alpha1,api/v1] + +// Package fake has the automatically generated clients. +package fake diff --git a/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/fake/fake_core_client.go b/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/fake/fake_core_client.go new file mode 100644 index 0000000000..cffa8da7eb --- /dev/null +++ b/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/fake/fake_core_client.go @@ -0,0 +1,37 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +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 fake + +import ( + v1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_3/typed/core/v1" + restclient "k8s.io/kubernetes/pkg/client/restclient" + core "k8s.io/kubernetes/pkg/client/testing/core" +) + +type FakeCore struct { + *core.Fake +} + +func (c *FakeCore) Services(namespace string) v1.ServiceInterface { + return &FakeServices{c, namespace} +} + +// GetRESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *FakeCore) GetRESTClient() *restclient.RESTClient { + return nil +} diff --git a/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/fake/fake_service.go b/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/fake/fake_service.go new file mode 100644 index 0000000000..3355aa94e1 --- /dev/null +++ b/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/fake/fake_service.go @@ -0,0 +1,116 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +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 fake + +import ( + api "k8s.io/kubernetes/pkg/api" + unversioned "k8s.io/kubernetes/pkg/api/unversioned" + v1 "k8s.io/kubernetes/pkg/api/v1" + core "k8s.io/kubernetes/pkg/client/testing/core" + labels "k8s.io/kubernetes/pkg/labels" + watch "k8s.io/kubernetes/pkg/watch" +) + +// FakeServices implements ServiceInterface +type FakeServices struct { + Fake *FakeCore + ns string +} + +var servicesResource = unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "services"} + +func (c *FakeServices) Create(service *v1.Service) (result *v1.Service, err error) { + obj, err := c.Fake. + Invokes(core.NewCreateAction(servicesResource, c.ns, service), &v1.Service{}) + + if obj == nil { + return nil, err + } + return obj.(*v1.Service), err +} + +func (c *FakeServices) Update(service *v1.Service) (result *v1.Service, err error) { + obj, err := c.Fake. + Invokes(core.NewUpdateAction(servicesResource, c.ns, service), &v1.Service{}) + + if obj == nil { + return nil, err + } + return obj.(*v1.Service), err +} + +func (c *FakeServices) UpdateStatus(service *v1.Service) (*v1.Service, error) { + obj, err := c.Fake. + Invokes(core.NewUpdateSubresourceAction(servicesResource, "status", c.ns, service), &v1.Service{}) + + if obj == nil { + return nil, err + } + return obj.(*v1.Service), err +} + +func (c *FakeServices) Delete(name string, options *api.DeleteOptions) error { + _, err := c.Fake. + Invokes(core.NewDeleteAction(servicesResource, c.ns, name), &v1.Service{}) + + return err +} + +func (c *FakeServices) DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error { + action := core.NewDeleteCollectionAction(servicesResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &v1.ServiceList{}) + return err +} + +func (c *FakeServices) Get(name string) (result *v1.Service, err error) { + obj, err := c.Fake. + Invokes(core.NewGetAction(servicesResource, c.ns, name), &v1.Service{}) + + if obj == nil { + return nil, err + } + return obj.(*v1.Service), err +} + +func (c *FakeServices) List(opts api.ListOptions) (result *v1.ServiceList, err error) { + obj, err := c.Fake. + Invokes(core.NewListAction(servicesResource, c.ns, opts), &v1.ServiceList{}) + + if obj == nil { + return nil, err + } + + label := opts.LabelSelector + if label == nil { + label = labels.Everything() + } + list := &v1.ServiceList{} + for _, item := range obj.(*v1.ServiceList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested services. +func (c *FakeServices) Watch(opts api.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(core.NewWatchAction(servicesResource, c.ns, opts)) + +} diff --git a/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/generated_expansion.go b/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/generated_expansion.go new file mode 100644 index 0000000000..2928a83ed3 --- /dev/null +++ b/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/generated_expansion.go @@ -0,0 +1,19 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +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 v1 + +type ServiceExpansion interface{} diff --git a/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/service.go b/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/service.go new file mode 100644 index 0000000000..cd62b5d94f --- /dev/null +++ b/federation/client/clientset_generated/federation_release_1_3/typed/core/v1/service.go @@ -0,0 +1,150 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +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 v1 + +import ( + api "k8s.io/kubernetes/pkg/api" + v1 "k8s.io/kubernetes/pkg/api/v1" + watch "k8s.io/kubernetes/pkg/watch" +) + +// ServicesGetter has a method to return a ServiceInterface. +// A group's client should implement this interface. +type ServicesGetter interface { + Services(namespace string) ServiceInterface +} + +// ServiceInterface has methods to work with Service resources. +type ServiceInterface interface { + Create(*v1.Service) (*v1.Service, error) + Update(*v1.Service) (*v1.Service, error) + UpdateStatus(*v1.Service) (*v1.Service, error) + Delete(name string, options *api.DeleteOptions) error + DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error + Get(name string) (*v1.Service, error) + List(opts api.ListOptions) (*v1.ServiceList, error) + Watch(opts api.ListOptions) (watch.Interface, error) + ServiceExpansion +} + +// services implements ServiceInterface +type services struct { + client *CoreClient + ns string +} + +// newServices returns a Services +func newServices(c *CoreClient, namespace string) *services { + return &services{ + client: c, + ns: namespace, + } +} + +// Create takes the representation of a service and creates it. Returns the server's representation of the service, and an error, if there is any. +func (c *services) Create(service *v1.Service) (result *v1.Service, err error) { + result = &v1.Service{} + err = c.client.Post(). + Namespace(c.ns). + Resource("services"). + Body(service). + Do(). + Into(result) + return +} + +// Update takes the representation of a service and updates it. Returns the server's representation of the service, and an error, if there is any. +func (c *services) Update(service *v1.Service) (result *v1.Service, err error) { + result = &v1.Service{} + err = c.client.Put(). + Namespace(c.ns). + Resource("services"). + Name(service.Name). + Body(service). + Do(). + Into(result) + return +} + +func (c *services) UpdateStatus(service *v1.Service) (result *v1.Service, err error) { + result = &v1.Service{} + err = c.client.Put(). + Namespace(c.ns). + Resource("services"). + Name(service.Name). + SubResource("status"). + Body(service). + Do(). + Into(result) + return +} + +// Delete takes name of the service and deletes it. Returns an error if one occurs. +func (c *services) Delete(name string, options *api.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("services"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *services) DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("services"). + VersionedParams(&listOptions, api.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Get takes name of the service, and returns the corresponding service object, and an error if there is any. +func (c *services) Get(name string) (result *v1.Service, err error) { + result = &v1.Service{} + err = c.client.Get(). + Namespace(c.ns). + Resource("services"). + Name(name). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of Services that match those selectors. +func (c *services) List(opts api.ListOptions) (result *v1.ServiceList, err error) { + result = &v1.ServiceList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("services"). + VersionedParams(&opts, api.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested services. +func (c *services) Watch(opts api.ListOptions) (watch.Interface, error) { + return c.client.Get(). + Prefix("watch"). + Namespace(c.ns). + Resource("services"). + VersionedParams(&opts, api.ParameterCodec). + Watch() +} diff --git a/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1alpha1/doc.go b/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1alpha1/doc.go index 2983bb90d6..79dd05ec7f 100644 --- a/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1alpha1/doc.go +++ b/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1alpha1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// This package is generated by client-gen with arguments: --clientset-name=federation_release_1_3 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --input=[../../federation/apis/federation/v1alpha1] +// This package is generated by client-gen with arguments: --clientset-name=federation_release_1_3 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service] --input=[../../federation/apis/federation/v1alpha1,api/v1] // This package has the automatically generated typed clients. package v1alpha1 diff --git a/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1alpha1/fake/doc.go b/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1alpha1/fake/doc.go index a625548474..846226b3be 100644 --- a/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1alpha1/fake/doc.go +++ b/federation/client/clientset_generated/federation_release_1_3/typed/federation/v1alpha1/fake/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// This package is generated by client-gen with arguments: --clientset-name=federation_release_1_3 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --input=[../../federation/apis/federation/v1alpha1] +// This package is generated by client-gen with arguments: --clientset-name=federation_release_1_3 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service] --input=[../../federation/apis/federation/v1alpha1,api/v1] // Package fake has the automatically generated clients. package fake diff --git a/hack/update-codegen.sh b/hack/update-codegen.sh index 7a46a30fcf..3ab76ed7fb 100755 --- a/hack/update-codegen.sh +++ b/hack/update-codegen.sh @@ -45,8 +45,8 @@ ${clientgen} "$@" ${clientgen} -t "$@" # Clientgen for federation clientset. -${clientgen} --clientset-name=federation_internalclientset --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --input="../../federation/apis/federation/" "$@" -${clientgen} --clientset-name=federation_release_1_3 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --input="../../federation/apis/federation/v1alpha1" "$@" +${clientgen} --clientset-name=federation_internalclientset --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --input="../../federation/apis/federation/","api/" --included-types-overrides="api/Service" "$@" +${clientgen} --clientset-name=federation_release_1_3 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --input="../../federation/apis/federation/v1alpha1","api/v1" --included-types-overrides="api/v1/Service" "$@" ${conversiongen} "$@" ${deepcopygen} "$@" diff --git a/hack/verify-flags/known-flags.txt b/hack/verify-flags/known-flags.txt index e8ccd15ef6..6befaeb17d 100644 --- a/hack/verify-flags/known-flags.txt +++ b/hack/verify-flags/known-flags.txt @@ -176,6 +176,7 @@ image-gc-high-threshold image-gc-low-threshold image-pull-policy include-extended-apis +included-types-overrides input-base input-dirs insecure-bind-address @@ -198,8 +199,8 @@ k8s-build-output keep-gogoproto km-path kube-api-burst -kube-api-qps kube-api-content-type +kube-api-qps kube-master kube-master kube-master-url