Skip to content

Commit

Permalink
Merge pull request kubernetes#26298 from nikhiljindal/createFedService
Browse files Browse the repository at this point in the history
Automatic merge from submit-queue

federation: Adding namespaces API

Adding namespaces API to federation-apiserver and updating the federation client to include namespaces


--------------------------

Original description:

This adds the namespaces API to federation-apiserver.

The first commit is kubernetes#26142.
  • Loading branch information
k8s-merge-robot authored Jul 19, 2016
2 parents d9fbb9f + 48658ad commit c25262b
Show file tree
Hide file tree
Showing 29 changed files with 722 additions and 17 deletions.
2 changes: 2 additions & 0 deletions federation/apis/core/register.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ func AddToScheme(scheme *runtime.Scheme) {
scheme.AddKnownTypes(SchemeGroupVersion,
&api.ServiceList{},
&api.Service{},
&api.Namespace{},
&api.NamespaceList{},
&api.ListOptions{},
&api.DeleteOptions{},
)
Expand Down
1 change: 1 addition & 0 deletions federation/apis/core/v1/defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,6 @@ import (
func addDefaultingFuncs(scheme *runtime.Scheme) {
scheme.AddDefaultingFuncs(
v1.SetDefaults_ServiceSpec,
v1.SetDefaults_NamespaceStatus,
)
}
2 changes: 2 additions & 0 deletions federation/apis/core/v1/register.go
Original file line number Diff line number Diff line change
Expand Up @@ -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{},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (

type CoreInterface interface {
GetRESTClient() *restclient.RESTClient
NamespacesGetter
ServicesGetter
}

Expand All @@ -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)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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
}
Original file line number Diff line number Diff line change
@@ -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
}
Loading

0 comments on commit c25262b

Please sign in to comment.