Add a method to list replication controllers

This commit is contained in:
csrwng 2014-07-31 10:59:54 -04:00
parent 2dc94e4a6e
commit a3476fcbca
2 changed files with 32 additions and 0 deletions

View File

@ -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)

View File

@ -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"},