diff --git a/federation/apis/core/register.go b/federation/apis/core/register.go index 79ee5754db6..b3371e286b0 100644 --- a/federation/apis/core/register.go +++ b/federation/apis/core/register.go @@ -59,6 +59,8 @@ func AddToScheme(scheme *runtime.Scheme) { scheme.AddKnownTypes(SchemeGroupVersion, &api.ServiceList{}, &api.Service{}, + &api.Namespace{}, + &api.NamespaceList{}, &api.ListOptions{}, &api.DeleteOptions{}, ) diff --git a/federation/apis/core/v1/defaults.go b/federation/apis/core/v1/defaults.go index 2ce41474eb9..4662a2ad772 100644 --- a/federation/apis/core/v1/defaults.go +++ b/federation/apis/core/v1/defaults.go @@ -24,5 +24,6 @@ import ( func addDefaultingFuncs(scheme *runtime.Scheme) { scheme.AddDefaultingFuncs( v1.SetDefaults_ServiceSpec, + v1.SetDefaults_NamespaceStatus, ) } diff --git a/federation/apis/core/v1/register.go b/federation/apis/core/v1/register.go index 30054870f24..f0ba34e49d6 100644 --- a/federation/apis/core/v1/register.go +++ b/federation/apis/core/v1/register.go @@ -40,6 +40,8 @@ func AddToScheme(scheme *runtime.Scheme) { func addKnownTypes(scheme *runtime.Scheme) { scheme.AddKnownTypes(SchemeGroupVersion, &v1.Service{}, + &v1.Namespace{}, + &v1.NamespaceList{}, &v1.ServiceList{}, &v1.ListOptions{}, &v1.DeleteOptions{}, diff --git a/federation/client/clientset_generated/federation_internalclientset/doc.go b/federation/client/clientset_generated/federation_internalclientset/doc.go index 96610bb059c..e6841a995fb 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 --included-types-overrides=[api/Service] --input=[../../federation/apis/federation/,api/] +// 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] --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/doc.go b/federation/client/clientset_generated/federation_internalclientset/fake/doc.go index 9885b195db2..016966d44e6 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 --included-types-overrides=[api/Service] --input=[../../federation/apis/federation/,api/] +// 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] --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 index 487d36ddb9f..3fbcd008523 100644 --- 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 @@ -24,6 +24,7 @@ import ( type CoreInterface interface { GetRESTClient() *restclient.RESTClient + NamespacesGetter ServicesGetter } @@ -32,6 +33,10 @@ type CoreClient struct { *restclient.RESTClient } +func (c *CoreClient) Namespaces() NamespaceInterface { + return newNamespaces(c) +} + func (c *CoreClient) Services(namespace string) ServiceInterface { return newServices(c, namespace) } 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 index 7899881b16a..152a1aaf516 100644 --- a/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/doc.go +++ b/federation/client/clientset_generated/federation_internalclientset/typed/core/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 --included-types-overrides=[api/Service] --input=[../../federation/apis/federation/,api/] +// 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] --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 index eccbd6e12cc..d85c2735b8a 100644 --- 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 @@ -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 --included-types-overrides=[api/Service] --input=[../../federation/apis/federation/,api/] +// 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] --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 index 03d520df325..3e14fc59167 100644 --- 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 @@ -26,6 +26,10 @@ type FakeCore struct { *core.Fake } +func (c *FakeCore) Namespaces() unversioned.NamespaceInterface { + return &FakeNamespaces{c} +} + func (c *FakeCore) Services(namespace string) unversioned.ServiceInterface { return &FakeServices{c, namespace} } diff --git a/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake/fake_namespace.go b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake/fake_namespace.go new file mode 100644 index 00000000000..b2c48f449c2 --- /dev/null +++ b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake/fake_namespace.go @@ -0,0 +1,117 @@ +/* +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 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" +) + +// FakeNamespaces implements NamespaceInterface +type FakeNamespaces struct { + Fake *FakeCore +} + +var namespacesResource = unversioned.GroupVersionResource{Group: "", Version: "", Resource: "namespaces"} + +func (c *FakeNamespaces) Create(namespace *api.Namespace) (result *api.Namespace, err error) { + obj, err := c.Fake. + Invokes(core.NewRootCreateAction(namespacesResource, namespace), &api.Namespace{}) + if obj == nil { + return nil, err + } + return obj.(*api.Namespace), err +} + +func (c *FakeNamespaces) Update(namespace *api.Namespace) (result *api.Namespace, err error) { + obj, err := c.Fake. + Invokes(core.NewRootUpdateAction(namespacesResource, namespace), &api.Namespace{}) + if obj == nil { + return nil, err + } + return obj.(*api.Namespace), err +} + +func (c *FakeNamespaces) UpdateStatus(namespace *api.Namespace) (*api.Namespace, error) { + obj, err := c.Fake. + Invokes(core.NewRootUpdateSubresourceAction(namespacesResource, "status", namespace), &api.Namespace{}) + if obj == nil { + return nil, err + } + return obj.(*api.Namespace), err +} + +func (c *FakeNamespaces) Delete(name string, options *api.DeleteOptions) error { + _, err := c.Fake. + Invokes(core.NewRootDeleteAction(namespacesResource, name), &api.Namespace{}) + return err +} + +func (c *FakeNamespaces) DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error { + action := core.NewRootDeleteCollectionAction(namespacesResource, listOptions) + + _, err := c.Fake.Invokes(action, &api.NamespaceList{}) + return err +} + +func (c *FakeNamespaces) Get(name string) (result *api.Namespace, err error) { + obj, err := c.Fake. + Invokes(core.NewRootGetAction(namespacesResource, name), &api.Namespace{}) + if obj == nil { + return nil, err + } + return obj.(*api.Namespace), err +} + +func (c *FakeNamespaces) List(opts api.ListOptions) (result *api.NamespaceList, err error) { + obj, err := c.Fake. + Invokes(core.NewRootListAction(namespacesResource, opts), &api.NamespaceList{}) + if obj == nil { + return nil, err + } + + label := opts.LabelSelector + if label == nil { + label = labels.Everything() + } + list := &api.NamespaceList{} + for _, item := range obj.(*api.NamespaceList).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 namespaces. +func (c *FakeNamespaces) Watch(opts api.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(core.NewRootWatchAction(namespacesResource, opts)) +} + +// Patch applies the patch and returns the patched namespace. +func (c *FakeNamespaces) Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *api.Namespace, err error) { + obj, err := c.Fake. + Invokes(core.NewRootPatchSubresourceAction(namespacesResource, name, data, subresources...), &api.Namespace{}) + if obj == nil { + return nil, err + } + return obj.(*api.Namespace), err +} diff --git a/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake/fake_namespace_expansion.go b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake/fake_namespace_expansion.go new file mode 100644 index 00000000000..619021772f4 --- /dev/null +++ b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/fake/fake_namespace_expansion.go @@ -0,0 +1,37 @@ +/* +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 fake + +import ( + "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/client/testing/core" +) + +func (c *FakeNamespaces) Finalize(namespace *api.Namespace) (*api.Namespace, error) { + action := core.CreateActionImpl{} + action.Verb = "create" + action.Resource = namespacesResource + action.Subresource = "finalize" + action.Object = namespace + + obj, err := c.Fake.Invokes(action, namespace) + if obj == nil { + return nil, err + } + + return obj.(*api.Namespace), err +} diff --git a/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/namespace.go b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/namespace.go new file mode 100644 index 00000000000..7b39f2b8648 --- /dev/null +++ b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/namespace.go @@ -0,0 +1,153 @@ +/* +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 unversioned + +import ( + api "k8s.io/kubernetes/pkg/api" + watch "k8s.io/kubernetes/pkg/watch" +) + +// NamespacesGetter has a method to return a NamespaceInterface. +// A group's client should implement this interface. +type NamespacesGetter interface { + Namespaces() NamespaceInterface +} + +// NamespaceInterface has methods to work with Namespace resources. +type NamespaceInterface interface { + Create(*api.Namespace) (*api.Namespace, error) + Update(*api.Namespace) (*api.Namespace, error) + UpdateStatus(*api.Namespace) (*api.Namespace, error) + Delete(name string, options *api.DeleteOptions) error + DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error + Get(name string) (*api.Namespace, error) + List(opts api.ListOptions) (*api.NamespaceList, error) + Watch(opts api.ListOptions) (watch.Interface, error) + Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *api.Namespace, err error) + NamespaceExpansion +} + +// namespaces implements NamespaceInterface +type namespaces struct { + client *CoreClient +} + +// newNamespaces returns a Namespaces +func newNamespaces(c *CoreClient) *namespaces { + return &namespaces{ + client: c, + } +} + +// Create takes the representation of a namespace and creates it. Returns the server's representation of the namespace, and an error, if there is any. +func (c *namespaces) Create(namespace *api.Namespace) (result *api.Namespace, err error) { + result = &api.Namespace{} + err = c.client.Post(). + Resource("namespaces"). + Body(namespace). + Do(). + Into(result) + return +} + +// Update takes the representation of a namespace and updates it. Returns the server's representation of the namespace, and an error, if there is any. +func (c *namespaces) Update(namespace *api.Namespace) (result *api.Namespace, err error) { + result = &api.Namespace{} + err = c.client.Put(). + Resource("namespaces"). + Name(namespace.Name). + Body(namespace). + Do(). + Into(result) + return +} + +func (c *namespaces) UpdateStatus(namespace *api.Namespace) (result *api.Namespace, err error) { + result = &api.Namespace{} + err = c.client.Put(). + Resource("namespaces"). + Name(namespace.Name). + SubResource("status"). + Body(namespace). + Do(). + Into(result) + return +} + +// Delete takes name of the namespace and deletes it. Returns an error if one occurs. +func (c *namespaces) Delete(name string, options *api.DeleteOptions) error { + return c.client.Delete(). + Resource("namespaces"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *namespaces) DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error { + return c.client.Delete(). + Resource("namespaces"). + VersionedParams(&listOptions, api.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Get takes name of the namespace, and returns the corresponding namespace object, and an error if there is any. +func (c *namespaces) Get(name string) (result *api.Namespace, err error) { + result = &api.Namespace{} + err = c.client.Get(). + Resource("namespaces"). + Name(name). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of Namespaces that match those selectors. +func (c *namespaces) List(opts api.ListOptions) (result *api.NamespaceList, err error) { + result = &api.NamespaceList{} + err = c.client.Get(). + Resource("namespaces"). + VersionedParams(&opts, api.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested namespaces. +func (c *namespaces) Watch(opts api.ListOptions) (watch.Interface, error) { + return c.client.Get(). + Prefix("watch"). + Resource("namespaces"). + VersionedParams(&opts, api.ParameterCodec). + Watch() +} + +// Patch applies the patch and returns the patched namespace. +func (c *namespaces) Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *api.Namespace, err error) { + result = &api.Namespace{} + err = c.client.Patch(pt). + Resource("namespaces"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/namespace_expansion.go b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/namespace_expansion.go new file mode 100644 index 00000000000..15049da11fa --- /dev/null +++ b/federation/client/clientset_generated/federation_internalclientset/typed/core/unversioned/namespace_expansion.go @@ -0,0 +1,31 @@ +/* +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 unversioned + +import "k8s.io/kubernetes/pkg/api" + +// The NamespaceExpansion interface allows manually adding extra methods to the NamespaceInterface. +type NamespaceExpansion interface { + Finalize(item *api.Namespace) (*api.Namespace, error) +} + +// Finalize takes the representation of a namespace to update. Returns the server's representation of the namespace, and an error, if it occurs. +func (c *namespaces) Finalize(namespace *api.Namespace) (result *api.Namespace, err error) { + result = &api.Namespace{} + err = c.client.Put().Resource("namespaces").Name(namespace.Name).SubResource("finalize").Body(namespace).Do().Into(result) + return +} 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 7899881b16a..152a1aaf516 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 --included-types-overrides=[api/Service] --input=[../../federation/apis/federation/,api/] +// 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] --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 eccbd6e12cc..d85c2735b8a 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 --included-types-overrides=[api/Service] --input=[../../federation/apis/federation/,api/] +// 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] --input=[../../federation/apis/federation/,api/] // Package fake has the automatically generated clients. package fake diff --git a/federation/client/clientset_generated/federation_release_1_4/doc.go b/federation/client/clientset_generated/federation_release_1_4/doc.go index 56f14045b0b..09d21057557 100644 --- a/federation/client/clientset_generated/federation_release_1_4/doc.go +++ b/federation/client/clientset_generated/federation_release_1_4/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_4 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service] --input=[../../federation/apis/federation/v1beta1,api/v1] +// This package is generated by client-gen with arguments: --clientset-name=federation_release_1_4 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service,api/v1/Namespace] --input=[../../federation/apis/federation/v1beta1,api/v1] // This package has the automatically generated clientset. package federation_release_1_4 diff --git a/federation/client/clientset_generated/federation_release_1_4/fake/doc.go b/federation/client/clientset_generated/federation_release_1_4/fake/doc.go index 563786d903b..70baaf7e270 100644 --- a/federation/client/clientset_generated/federation_release_1_4/fake/doc.go +++ b/federation/client/clientset_generated/federation_release_1_4/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_4 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service] --input=[../../federation/apis/federation/v1beta1,api/v1] +// This package is generated by client-gen with arguments: --clientset-name=federation_release_1_4 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service,api/v1/Namespace] --input=[../../federation/apis/federation/v1beta1,api/v1] // This package has the automatically generated fake clientset. package fake diff --git a/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/core_client.go b/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/core_client.go index 6ca07bbd4c8..a32ef38d746 100644 --- a/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/core_client.go +++ b/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/core_client.go @@ -25,6 +25,7 @@ import ( type CoreInterface interface { GetRESTClient() *restclient.RESTClient + NamespacesGetter ServicesGetter } @@ -33,6 +34,10 @@ type CoreClient struct { *restclient.RESTClient } +func (c *CoreClient) Namespaces() NamespaceInterface { + return newNamespaces(c) +} + func (c *CoreClient) Services(namespace string) ServiceInterface { return newServices(c, namespace) } diff --git a/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/doc.go b/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/doc.go index d6bbc3d9765..97d78a908a3 100644 --- a/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/doc.go +++ b/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/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_4 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service] --input=[../../federation/apis/federation/v1beta1,api/v1] +// This package is generated by client-gen with arguments: --clientset-name=federation_release_1_4 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service,api/v1/Namespace] --input=[../../federation/apis/federation/v1beta1,api/v1] // This package has the automatically generated typed clients. package v1 diff --git a/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake/doc.go b/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake/doc.go index 53a65b4af55..599c6582252 100644 --- a/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake/doc.go +++ b/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/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_4 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service] --input=[../../federation/apis/federation/v1beta1,api/v1] +// This package is generated by client-gen with arguments: --clientset-name=federation_release_1_4 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service,api/v1/Namespace] --input=[../../federation/apis/federation/v1beta1,api/v1] // Package fake has the automatically generated clients. package fake diff --git a/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake/fake_core_client.go b/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake/fake_core_client.go index 9d8d5ab596d..67a4c5df237 100644 --- a/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake/fake_core_client.go +++ b/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake/fake_core_client.go @@ -26,6 +26,10 @@ type FakeCore struct { *core.Fake } +func (c *FakeCore) Namespaces() v1.NamespaceInterface { + return &FakeNamespaces{c} +} + func (c *FakeCore) Services(namespace string) v1.ServiceInterface { return &FakeServices{c, namespace} } diff --git a/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake/fake_namespace.go b/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake/fake_namespace.go new file mode 100644 index 00000000000..a351227dc17 --- /dev/null +++ b/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake/fake_namespace.go @@ -0,0 +1,118 @@ +/* +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 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" +) + +// FakeNamespaces implements NamespaceInterface +type FakeNamespaces struct { + Fake *FakeCore +} + +var namespacesResource = unversioned.GroupVersionResource{Group: "", Version: "v1", Resource: "namespaces"} + +func (c *FakeNamespaces) Create(namespace *v1.Namespace) (result *v1.Namespace, err error) { + obj, err := c.Fake. + Invokes(core.NewRootCreateAction(namespacesResource, namespace), &v1.Namespace{}) + if obj == nil { + return nil, err + } + return obj.(*v1.Namespace), err +} + +func (c *FakeNamespaces) Update(namespace *v1.Namespace) (result *v1.Namespace, err error) { + obj, err := c.Fake. + Invokes(core.NewRootUpdateAction(namespacesResource, namespace), &v1.Namespace{}) + if obj == nil { + return nil, err + } + return obj.(*v1.Namespace), err +} + +func (c *FakeNamespaces) UpdateStatus(namespace *v1.Namespace) (*v1.Namespace, error) { + obj, err := c.Fake. + Invokes(core.NewRootUpdateSubresourceAction(namespacesResource, "status", namespace), &v1.Namespace{}) + if obj == nil { + return nil, err + } + return obj.(*v1.Namespace), err +} + +func (c *FakeNamespaces) Delete(name string, options *api.DeleteOptions) error { + _, err := c.Fake. + Invokes(core.NewRootDeleteAction(namespacesResource, name), &v1.Namespace{}) + return err +} + +func (c *FakeNamespaces) DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error { + action := core.NewRootDeleteCollectionAction(namespacesResource, listOptions) + + _, err := c.Fake.Invokes(action, &v1.NamespaceList{}) + return err +} + +func (c *FakeNamespaces) Get(name string) (result *v1.Namespace, err error) { + obj, err := c.Fake. + Invokes(core.NewRootGetAction(namespacesResource, name), &v1.Namespace{}) + if obj == nil { + return nil, err + } + return obj.(*v1.Namespace), err +} + +func (c *FakeNamespaces) List(opts api.ListOptions) (result *v1.NamespaceList, err error) { + obj, err := c.Fake. + Invokes(core.NewRootListAction(namespacesResource, opts), &v1.NamespaceList{}) + if obj == nil { + return nil, err + } + + label := opts.LabelSelector + if label == nil { + label = labels.Everything() + } + list := &v1.NamespaceList{} + for _, item := range obj.(*v1.NamespaceList).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 namespaces. +func (c *FakeNamespaces) Watch(opts api.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(core.NewRootWatchAction(namespacesResource, opts)) +} + +// Patch applies the patch and returns the patched namespace. +func (c *FakeNamespaces) Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *v1.Namespace, err error) { + obj, err := c.Fake. + Invokes(core.NewRootPatchSubresourceAction(namespacesResource, name, data, subresources...), &v1.Namespace{}) + if obj == nil { + return nil, err + } + return obj.(*v1.Namespace), err +} diff --git a/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake/fake_namespace_expansion.go b/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake/fake_namespace_expansion.go new file mode 100644 index 00000000000..a9e98f50aea --- /dev/null +++ b/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/fake/fake_namespace_expansion.go @@ -0,0 +1,37 @@ +/* +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 fake + +import ( + "k8s.io/kubernetes/pkg/api/v1" + "k8s.io/kubernetes/pkg/client/testing/core" +) + +func (c *FakeNamespaces) Finalize(namespace *v1.Namespace) (*v1.Namespace, error) { + action := core.CreateActionImpl{} + action.Verb = "create" + action.Resource = namespacesResource + action.Subresource = "finalize" + action.Object = namespace + + obj, err := c.Fake.Invokes(action, namespace) + if obj == nil { + return nil, err + } + + return obj.(*v1.Namespace), err +} diff --git a/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/namespace.go b/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/namespace.go new file mode 100644 index 00000000000..174e4e29f6e --- /dev/null +++ b/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/namespace.go @@ -0,0 +1,154 @@ +/* +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 v1 + +import ( + api "k8s.io/kubernetes/pkg/api" + v1 "k8s.io/kubernetes/pkg/api/v1" + watch "k8s.io/kubernetes/pkg/watch" +) + +// NamespacesGetter has a method to return a NamespaceInterface. +// A group's client should implement this interface. +type NamespacesGetter interface { + Namespaces() NamespaceInterface +} + +// NamespaceInterface has methods to work with Namespace resources. +type NamespaceInterface interface { + Create(*v1.Namespace) (*v1.Namespace, error) + Update(*v1.Namespace) (*v1.Namespace, error) + UpdateStatus(*v1.Namespace) (*v1.Namespace, error) + Delete(name string, options *api.DeleteOptions) error + DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error + Get(name string) (*v1.Namespace, error) + List(opts api.ListOptions) (*v1.NamespaceList, error) + Watch(opts api.ListOptions) (watch.Interface, error) + Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *v1.Namespace, err error) + NamespaceExpansion +} + +// namespaces implements NamespaceInterface +type namespaces struct { + client *CoreClient +} + +// newNamespaces returns a Namespaces +func newNamespaces(c *CoreClient) *namespaces { + return &namespaces{ + client: c, + } +} + +// Create takes the representation of a namespace and creates it. Returns the server's representation of the namespace, and an error, if there is any. +func (c *namespaces) Create(namespace *v1.Namespace) (result *v1.Namespace, err error) { + result = &v1.Namespace{} + err = c.client.Post(). + Resource("namespaces"). + Body(namespace). + Do(). + Into(result) + return +} + +// Update takes the representation of a namespace and updates it. Returns the server's representation of the namespace, and an error, if there is any. +func (c *namespaces) Update(namespace *v1.Namespace) (result *v1.Namespace, err error) { + result = &v1.Namespace{} + err = c.client.Put(). + Resource("namespaces"). + Name(namespace.Name). + Body(namespace). + Do(). + Into(result) + return +} + +func (c *namespaces) UpdateStatus(namespace *v1.Namespace) (result *v1.Namespace, err error) { + result = &v1.Namespace{} + err = c.client.Put(). + Resource("namespaces"). + Name(namespace.Name). + SubResource("status"). + Body(namespace). + Do(). + Into(result) + return +} + +// Delete takes name of the namespace and deletes it. Returns an error if one occurs. +func (c *namespaces) Delete(name string, options *api.DeleteOptions) error { + return c.client.Delete(). + Resource("namespaces"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *namespaces) DeleteCollection(options *api.DeleteOptions, listOptions api.ListOptions) error { + return c.client.Delete(). + Resource("namespaces"). + VersionedParams(&listOptions, api.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Get takes name of the namespace, and returns the corresponding namespace object, and an error if there is any. +func (c *namespaces) Get(name string) (result *v1.Namespace, err error) { + result = &v1.Namespace{} + err = c.client.Get(). + Resource("namespaces"). + Name(name). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of Namespaces that match those selectors. +func (c *namespaces) List(opts api.ListOptions) (result *v1.NamespaceList, err error) { + result = &v1.NamespaceList{} + err = c.client.Get(). + Resource("namespaces"). + VersionedParams(&opts, api.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested namespaces. +func (c *namespaces) Watch(opts api.ListOptions) (watch.Interface, error) { + return c.client.Get(). + Prefix("watch"). + Resource("namespaces"). + VersionedParams(&opts, api.ParameterCodec). + Watch() +} + +// Patch applies the patch and returns the patched namespace. +func (c *namespaces) Patch(name string, pt api.PatchType, data []byte, subresources ...string) (result *v1.Namespace, err error) { + result = &v1.Namespace{} + err = c.client.Patch(pt). + Resource("namespaces"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/namespace_expansion.go b/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/namespace_expansion.go new file mode 100644 index 00000000000..36de2beeaa5 --- /dev/null +++ b/federation/client/clientset_generated/federation_release_1_4/typed/core/v1/namespace_expansion.go @@ -0,0 +1,31 @@ +/* +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 v1 + +import "k8s.io/kubernetes/pkg/api/v1" + +// The NamespaceExpansion interface allows manually adding extra methods to the NamespaceInterface. +type NamespaceExpansion interface { + Finalize(item *v1.Namespace) (*v1.Namespace, error) +} + +// Finalize takes the representation of a namespace to update. Returns the server's representation of the namespace, and an error, if it occurs. +func (c *namespaces) Finalize(namespace *v1.Namespace) (result *v1.Namespace, err error) { + result = &v1.Namespace{} + err = c.client.Put().Resource("namespaces").Name(namespace.Name).SubResource("finalize").Body(namespace).Do().Into(result) + return +} diff --git a/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1/doc.go b/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1/doc.go index a7c1d7174b0..b8938771c78 100644 --- a/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1/doc.go +++ b/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1/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_4 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service] --input=[../../federation/apis/federation/v1beta1,api/v1] +// This package is generated by client-gen with arguments: --clientset-name=federation_release_1_4 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service,api/v1/Namespace] --input=[../../federation/apis/federation/v1beta1,api/v1] // This package has the automatically generated typed clients. package v1beta1 diff --git a/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1/fake/doc.go b/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1/fake/doc.go index 53a65b4af55..599c6582252 100644 --- a/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1/fake/doc.go +++ b/federation/client/clientset_generated/federation_release_1_4/typed/federation/v1beta1/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_4 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service] --input=[../../federation/apis/federation/v1beta1,api/v1] +// This package is generated by client-gen with arguments: --clientset-name=federation_release_1_4 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --included-types-overrides=[api/v1/Service,api/v1/Namespace] --input=[../../federation/apis/federation/v1beta1,api/v1] // Package fake has the automatically generated clients. package fake diff --git a/federation/cmd/federation-apiserver/app/core.go b/federation/cmd/federation-apiserver/app/core.go index a473bc0b7d2..d80295fd014 100644 --- a/federation/cmd/federation-apiserver/app/core.go +++ b/federation/cmd/federation-apiserver/app/core.go @@ -27,14 +27,18 @@ import ( "k8s.io/kubernetes/federation/apis/core/v1" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/rest" + namespaceetcd "k8s.io/kubernetes/pkg/registry/namespace/etcd" serviceetcd "k8s.io/kubernetes/pkg/registry/service/etcd" ) func installCoreAPIs(s *genericoptions.ServerRunOptions, g *genericapiserver.GenericAPIServer, f genericapiserver.StorageFactory) { - serviceStore, serviceStatusStorage := serviceetcd.NewREST(createRESTOptionsOrDie(s, g, f, api.Resource("service"))) + serviceStore, serviceStatusStore := serviceetcd.NewREST(createRESTOptionsOrDie(s, g, f, api.Resource("service"))) + namespaceStore, namespaceStatusStore, _ := namespaceetcd.NewREST(createRESTOptionsOrDie(s, g, f, api.Resource("namespaces"))) coreResources := map[string]rest.Storage{ - "services": serviceStore, - "services/status": serviceStatusStorage, + "services": serviceStore, + "services/status": serviceStatusStore, + "namespaces": namespaceStore, + "namespaces/status": namespaceStatusStore, } coreGroupMeta := registered.GroupOrDie(core.GroupName) apiGroupInfo := genericapiserver.APIGroupInfo{ diff --git a/hack/update-codegen.sh b/hack/update-codegen.sh index 8eb38f23869..f9e5f155461 100755 --- a/hack/update-codegen.sh +++ b/hack/update-codegen.sh @@ -41,8 +41,8 @@ ${clientgen} "$@" ${clientgen} -t "$@" ${clientgen} --clientset-name="release_1_4" --input="api/v1,extensions/v1beta1,autoscaling/v1,batch/v1" # Clientgen for federation clientset. -${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_4 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --input="../../federation/apis/federation/v1beta1","api/v1" --included-types-overrides="api/v1/Service" "$@" +${clientgen} --clientset-name=federation_internalclientset --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --input="../../federation/apis/federation/","api/" --included-types-overrides="api/Service,api/Namespace" "$@" +${clientgen} --clientset-name=federation_release_1_4 --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --input="../../federation/apis/federation/v1beta1","api/v1" --included-types-overrides="api/v1/Service,api/v1/Namespace" "$@" ${setgen} "$@" # You may add additional calls of code generators like set-gen above.