Unify per-resource List for unversioned client

This commit is contained in:
Wojciech Tyczynski
2015-10-13 12:11:48 +02:00
parent dfb400e2e9
commit 647aa1bc8c
34 changed files with 73 additions and 67 deletions

View File

@@ -29,7 +29,7 @@ type DaemonSetsNamespacer interface {
}
type DaemonSetInterface interface {
List(selector labels.Selector) (*extensions.DaemonSetList, error)
List(label labels.Selector, field fields.Selector) (*extensions.DaemonSetList, error)
Get(name string) (*extensions.DaemonSet, error)
Create(ctrl *extensions.DaemonSet) (*extensions.DaemonSet, error)
Update(ctrl *extensions.DaemonSet) (*extensions.DaemonSet, error)
@@ -51,9 +51,9 @@ func newDaemonSets(c *ExtensionsClient, namespace string) *daemonSets {
// Ensure statically that daemonSets implements DaemonSetsInterface.
var _ DaemonSetInterface = &daemonSets{}
func (c *daemonSets) List(selector labels.Selector) (result *extensions.DaemonSetList, err error) {
func (c *daemonSets) List(label labels.Selector, field fields.Selector) (result *extensions.DaemonSetList, err error) {
result = &extensions.DaemonSetList{}
err = c.r.Get().Namespace(c.ns).Resource("daemonsets").LabelsSelectorParam(selector).Do().Into(result)
err = c.r.Get().Namespace(c.ns).Resource("daemonsets").LabelsSelectorParam(label).FieldsSelectorParam(field).Do().Into(result)
return
}

View File

@@ -22,6 +22,7 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
)
@@ -55,7 +56,7 @@ func TestListDaemonSets(t *testing.T) {
},
},
}
receivedDSs, err := c.Setup(t).Extensions().DaemonSets(ns).List(labels.Everything())
receivedDSs, err := c.Setup(t).Extensions().DaemonSets(ns).List(labels.Everything(), fields.Everything())
c.Validate(t, receivedDSs, err)
}

View File

@@ -32,7 +32,7 @@ type LimitRangesNamespacer interface {
// LimitRangeInterface has methods to work with LimitRange resources.
type LimitRangeInterface interface {
List(selector labels.Selector) (*api.LimitRangeList, error)
List(label labels.Selector, field fields.Selector) (*api.LimitRangeList, error)
Get(name string) (*api.LimitRange, error)
Delete(name string) error
Create(limitRange *api.LimitRange) (*api.LimitRange, error)
@@ -55,9 +55,9 @@ func newLimitRanges(c *Client, namespace string) *limitRanges {
}
// List takes a selector, and returns the list of limitRanges that match that selector.
func (c *limitRanges) List(selector labels.Selector) (result *api.LimitRangeList, err error) {
func (c *limitRanges) List(label labels.Selector, field fields.Selector) (result *api.LimitRangeList, err error) {
result = &api.LimitRangeList{}
err = c.r.Get().Namespace(c.ns).Resource("limitRanges").LabelsSelectorParam(selector).Do().Into(result)
err = c.r.Get().Namespace(c.ns).Resource("limitRanges").LabelsSelectorParam(label).FieldsSelectorParam(field).Do().Into(result)
return
}

View File

@@ -122,7 +122,7 @@ func TestLimitRangeList(t *testing.T) {
},
Response: Response{StatusCode: 200, Body: limitRangeList},
}
response, err := c.Setup(t).LimitRanges(ns).List(labels.Everything())
response, err := c.Setup(t).LimitRanges(ns).List(labels.Everything(), fields.Everything())
c.Validate(t, response, err)
}

View File

@@ -30,7 +30,7 @@ type ReplicationControllersNamespacer interface {
// ReplicationControllerInterface has methods to work with ReplicationController resources.
type ReplicationControllerInterface interface {
List(selector labels.Selector) (*api.ReplicationControllerList, error)
List(label labels.Selector, field fields.Selector) (*api.ReplicationControllerList, error)
Get(name string) (*api.ReplicationController, error)
Create(ctrl *api.ReplicationController) (*api.ReplicationController, error)
Update(ctrl *api.ReplicationController) (*api.ReplicationController, error)
@@ -51,9 +51,9 @@ func newReplicationControllers(c *Client, namespace string) *replicationControll
}
// List takes a selector, and returns the list of replication controllers that match that selector.
func (c *replicationControllers) List(selector labels.Selector) (result *api.ReplicationControllerList, err error) {
func (c *replicationControllers) List(label labels.Selector, field fields.Selector) (result *api.ReplicationControllerList, err error) {
result = &api.ReplicationControllerList{}
err = c.r.Get().Namespace(c.ns).Resource("replicationControllers").LabelsSelectorParam(selector).Do().Into(result)
err = c.r.Get().Namespace(c.ns).Resource("replicationControllers").LabelsSelectorParam(label).FieldsSelectorParam(field).Do().Into(result)
return
}

View File

@@ -21,6 +21,7 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
)
@@ -55,7 +56,7 @@ func TestListControllers(t *testing.T) {
},
},
}
receivedControllerList, err := c.Setup(t).ReplicationControllers(ns).List(labels.Everything())
receivedControllerList, err := c.Setup(t).ReplicationControllers(ns).List(labels.Everything(), fields.Everything())
c.Validate(t, receivedControllerList, err)
}

View File

@@ -30,7 +30,7 @@ type ResourceQuotasNamespacer interface {
// ResourceQuotaInterface has methods to work with ResourceQuota resources.
type ResourceQuotaInterface interface {
List(selector labels.Selector) (*api.ResourceQuotaList, error)
List(label labels.Selector, field fields.Selector) (*api.ResourceQuotaList, error)
Get(name string) (*api.ResourceQuota, error)
Delete(name string) error
Create(resourceQuota *api.ResourceQuota) (*api.ResourceQuota, error)
@@ -54,9 +54,9 @@ func newResourceQuotas(c *Client, namespace string) *resourceQuotas {
}
// List takes a selector, and returns the list of resourceQuotas that match that selector.
func (c *resourceQuotas) List(selector labels.Selector) (result *api.ResourceQuotaList, err error) {
func (c *resourceQuotas) List(label labels.Selector, field fields.Selector) (result *api.ResourceQuotaList, err error) {
result = &api.ResourceQuotaList{}
err = c.r.Get().Namespace(c.ns).Resource("resourceQuotas").LabelsSelectorParam(selector).Do().Into(result)
err = c.r.Get().Namespace(c.ns).Resource("resourceQuotas").LabelsSelectorParam(label).FieldsSelectorParam(field).Do().Into(result)
return
}

View File

@@ -114,7 +114,7 @@ func TestResourceQuotaList(t *testing.T) {
},
Response: Response{StatusCode: 200, Body: resourceQuotaList},
}
response, err := c.Setup(t).ResourceQuotas(ns).List(labels.Everything())
response, err := c.Setup(t).ResourceQuotas(ns).List(labels.Everything(), fields.Everything())
c.Validate(t, response, err)
}

View File

@@ -30,7 +30,7 @@ type ServicesNamespacer interface {
// ServiceInterface has methods to work with Service resources.
type ServiceInterface interface {
List(selector labels.Selector) (*api.ServiceList, error)
List(label labels.Selector, field fields.Selector) (*api.ServiceList, error)
Get(name string) (*api.Service, error)
Create(srv *api.Service) (*api.Service, error)
Update(srv *api.Service) (*api.Service, error)
@@ -51,12 +51,13 @@ func newServices(c *Client, namespace string) *services {
}
// List takes a selector, and returns the list of services that match that selector
func (c *services) List(selector labels.Selector) (result *api.ServiceList, err error) {
func (c *services) List(label labels.Selector, field fields.Selector) (result *api.ServiceList, err error) {
result = &api.ServiceList{}
err = c.r.Get().
Namespace(c.ns).
Resource("services").
LabelsSelectorParam(selector).
LabelsSelectorParam(label).
FieldsSelectorParam(field).
Do().
Into(result)
return

View File

@@ -23,6 +23,7 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
)
@@ -54,7 +55,7 @@ func TestListServices(t *testing.T) {
},
},
}
receivedServiceList, err := c.Setup(t).Services(ns).List(labels.Everything())
receivedServiceList, err := c.Setup(t).Services(ns).List(labels.Everything(), fields.Everything())
t.Logf("received services: %v %#v", err, receivedServiceList)
c.Validate(t, receivedServiceList, err)
}
@@ -91,7 +92,7 @@ func TestListServicesLabels(t *testing.T) {
c.Setup(t)
c.QueryValidator[labelSelectorQueryParamName] = validateLabels
selector := labels.Set{"foo": "bar", "name": "baz"}.AsSelector()
receivedServiceList, err := c.Services(ns).List(selector)
receivedServiceList, err := c.Services(ns).List(selector, fields.Everything())
c.Validate(t, receivedServiceList, err)
}

View File

@@ -42,8 +42,8 @@ func (c *FakeDaemonSets) Get(name string) (*extensions.DaemonSet, error) {
return obj.(*extensions.DaemonSet), err
}
func (c *FakeDaemonSets) List(label labels.Selector) (*extensions.DaemonSetList, error) {
obj, err := c.Fake.Invokes(NewListAction("daemonsets", c.Namespace, label, nil), &extensions.DaemonSetList{})
func (c *FakeDaemonSets) List(label labels.Selector, field fields.Selector) (*extensions.DaemonSetList, error) {
obj, err := c.Fake.Invokes(NewListAction("daemonsets", c.Namespace, label, field), &extensions.DaemonSetList{})
if obj == nil {
return nil, err
}

View File

@@ -39,8 +39,8 @@ func (c *FakeLimitRanges) Get(name string) (*api.LimitRange, error) {
return obj.(*api.LimitRange), err
}
func (c *FakeLimitRanges) List(label labels.Selector) (*api.LimitRangeList, error) {
obj, err := c.Fake.Invokes(NewListAction("limitranges", c.Namespace, label, nil), &api.LimitRangeList{})
func (c *FakeLimitRanges) List(label labels.Selector, field fields.Selector) (*api.LimitRangeList, error) {
obj, err := c.Fake.Invokes(NewListAction("limitranges", c.Namespace, label, field), &api.LimitRangeList{})
if obj == nil {
return nil, err
}

View File

@@ -39,8 +39,8 @@ func (c *FakeReplicationControllers) Get(name string) (*api.ReplicationControlle
return obj.(*api.ReplicationController), err
}
func (c *FakeReplicationControllers) List(label labels.Selector) (*api.ReplicationControllerList, error) {
obj, err := c.Fake.Invokes(NewListAction("replicationcontrollers", c.Namespace, label, nil), &api.ReplicationControllerList{})
func (c *FakeReplicationControllers) List(label labels.Selector, field fields.Selector) (*api.ReplicationControllerList, error) {
obj, err := c.Fake.Invokes(NewListAction("replicationcontrollers", c.Namespace, label, field), &api.ReplicationControllerList{})
if obj == nil {
return nil, err
}

View File

@@ -39,8 +39,8 @@ func (c *FakeResourceQuotas) Get(name string) (*api.ResourceQuota, error) {
return obj.(*api.ResourceQuota), err
}
func (c *FakeResourceQuotas) List(label labels.Selector) (*api.ResourceQuotaList, error) {
obj, err := c.Fake.Invokes(NewListAction("resourcequotas", c.Namespace, label, nil), &api.ResourceQuotaList{})
func (c *FakeResourceQuotas) List(label labels.Selector, field fields.Selector) (*api.ResourceQuotaList, error) {
obj, err := c.Fake.Invokes(NewListAction("resourcequotas", c.Namespace, label, field), &api.ResourceQuotaList{})
if obj == nil {
return nil, err
}

View File

@@ -40,8 +40,8 @@ func (c *FakeServices) Get(name string) (*api.Service, error) {
return obj.(*api.Service), err
}
func (c *FakeServices) List(label labels.Selector) (*api.ServiceList, error) {
obj, err := c.Fake.Invokes(NewListAction("services", c.Namespace, label, nil), &api.ServiceList{})
func (c *FakeServices) List(label labels.Selector, field fields.Selector) (*api.ServiceList, error) {
obj, err := c.Fake.Invokes(NewListAction("services", c.Namespace, label, field), &api.ServiceList{})
if obj == nil {
return nil, err
}

View File

@@ -22,6 +22,7 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/runtime"
)
@@ -33,7 +34,7 @@ func TestNewClient(t *testing.T) {
}
client := &Fake{}
client.AddReactor("*", "*", ObjectReaction(o, testapi.Default.RESTMapper()))
list, err := client.Services("test").List(labels.Everything())
list, err := client.Services("test").List(labels.Everything(), fields.Everything())
if err != nil {
t.Fatal(err)
}
@@ -42,7 +43,7 @@ func TestNewClient(t *testing.T) {
}
// When list is invoked a second time, the same results are returned.
list, err = client.Services("test").List(labels.Everything())
list, err = client.Services("test").List(labels.Everything(), fields.Everything())
if err != nil {
t.Fatal(err)
}
@@ -64,12 +65,12 @@ func TestErrors(t *testing.T) {
})
client := &Fake{}
client.AddReactor("*", "*", ObjectReaction(o, testapi.Default.RESTMapper()))
_, err := client.Services("test").List(labels.Everything())
_, err := client.Services("test").List(labels.Everything(), fields.Everything())
if !errors.IsNotFound(err) {
t.Fatalf("unexpected error: %v", err)
}
t.Logf("error: %#v", err.(*errors.StatusError).Status())
_, err = client.Services("test").List(labels.Everything())
_, err = client.Services("test").List(labels.Everything(), fields.Everything())
if !errors.IsForbidden(err) {
t.Fatalf("unexpected error: %v", err)
}