Add ability to watch namespaces

This commit is contained in:
derekwaynecarr 2015-02-11 11:42:21 -05:00
parent 52bf48cac2
commit e76dcbdfa2
2 changed files with 19 additions and 0 deletions

View File

@ -19,6 +19,7 @@ package client
import ( import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/labels" "github.com/GoogleCloudPlatform/kubernetes/pkg/labels"
"github.com/GoogleCloudPlatform/kubernetes/pkg/watch"
) )
// FakeNamespaces implements NamespacesInterface. Meant to be embedded into a struct to get a default // FakeNamespaces implements NamespacesInterface. Meant to be embedded into a struct to get a default
@ -51,3 +52,8 @@ func (c *FakeNamespaces) Update(namespace *api.Namespace) (*api.Namespace, error
c.Fake.Actions = append(c.Fake.Actions, FakeAction{Action: "update-namespace", Value: namespace.Name}) c.Fake.Actions = append(c.Fake.Actions, FakeAction{Action: "update-namespace", Value: namespace.Name})
return &api.Namespace{}, nil return &api.Namespace{}, nil
} }
func (c *FakeNamespaces) Watch(label, field labels.Selector, resourceVersion string) (watch.Interface, error) {
c.Fake.Actions = append(c.Fake.Actions, FakeAction{Action: "watch-namespaces", Value: resourceVersion})
return c.Fake.Watch, nil
}

View File

@ -22,6 +22,7 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/labels" "github.com/GoogleCloudPlatform/kubernetes/pkg/labels"
"github.com/GoogleCloudPlatform/kubernetes/pkg/watch"
) )
type NamespacesInterface interface { type NamespacesInterface interface {
@ -34,6 +35,7 @@ type NamespaceInterface interface {
List(selector labels.Selector) (*api.NamespaceList, error) List(selector labels.Selector) (*api.NamespaceList, error)
Delete(name string) error Delete(name string) error
Update(item *api.Namespace) (*api.Namespace, error) Update(item *api.Namespace) (*api.Namespace, error)
Watch(label, field labels.Selector, resourceVersion string) (watch.Interface, error)
} }
// namespaces implements NamespacesInterface // namespaces implements NamespacesInterface
@ -86,3 +88,14 @@ func (c *namespaces) Get(name string) (*api.Namespace, error) {
func (c *namespaces) Delete(name string) error { func (c *namespaces) Delete(name string) error {
return c.r.Delete().Resource("namespaces").Name(name).Do().Error() return c.r.Delete().Resource("namespaces").Name(name).Do().Error()
} }
// Watch returns a watch.Interface that watches the requested namespaces.
func (c *namespaces) Watch(label, field labels.Selector, resourceVersion string) (watch.Interface, error) {
return c.r.Get().
Prefix("watch").
Resource("namespaces").
Param("resourceVersion", resourceVersion).
SelectorParam("labels", label).
SelectorParam("fields", field).
Watch()
}