From a3476fcbcad58face20f68a024546969fb1e617b Mon Sep 17 00:00:00 2001 From: csrwng Date: Thu, 31 Jul 2014 10:59:54 -0400 Subject: [PATCH] Add a method to list replication controllers --- pkg/client/client.go | 7 +++++++ pkg/client/client_test.go | 25 +++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/pkg/client/client.go b/pkg/client/client.go index 98c5e5d6bba..b86ec2e35d0 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -40,6 +40,7 @@ type Interface interface { CreatePod(api.Pod) (api.Pod, error) UpdatePod(api.Pod) (api.Pod, error) + ListReplicationControllers(selector labels.Selector) (api.ReplicationControllerList, error) GetReplicationController(name string) (api.ReplicationController, error) CreateReplicationController(api.ReplicationController) (api.ReplicationController, error) UpdateReplicationController(api.ReplicationController) (api.ReplicationController, error) @@ -195,6 +196,12 @@ func (c *Client) UpdatePod(pod api.Pod) (result api.Pod, err error) { return } +// ListReplicationControllers takes a selector, and returns the list of replication controllers that match that selector +func (c *Client) ListReplicationControllers(selector labels.Selector) (result api.ReplicationControllerList, err error) { + err = c.Get().Path("replicationControllers").Selector(selector).Do().Into(&result) + return +} + // GetReplicationController returns information about a particular replication controller func (c *Client) GetReplicationController(name string) (result api.ReplicationController, err error) { err = c.Get().Path("replicationControllers").Path(name).Do().Into(&result) diff --git a/pkg/client/client_test.go b/pkg/client/client_test.go index 93c400c5de3..5ed763b8b87 100644 --- a/pkg/client/client_test.go +++ b/pkg/client/client_test.go @@ -171,6 +171,31 @@ func TestUpdatePod(t *testing.T) { c.Validate(t, receivedPod, err) } +func TestListControllers(t *testing.T) { + c := &testClient{ + Request: testRequest{Method: "GET", Path: "/replicationControllers"}, + Response: Response{StatusCode: 200, + Body: api.ReplicationControllerList{ + Items: []api.ReplicationController{ + { + JSONBase: api.JSONBase{ID: "foo"}, + DesiredState: api.ReplicationControllerState{ + Replicas: 2, + }, + Labels: map[string]string{ + "foo": "bar", + "name": "baz", + }, + }, + }, + }, + }, + } + receivedControllerList, err := c.Setup().ListReplicationControllers(nil) + c.Validate(t, receivedControllerList, err) + +} + func TestGetController(t *testing.T) { c := &testClient{ Request: testRequest{Method: "GET", Path: "/replicationControllers/foo"},