mirror of https://github.com/k3s-io/k3s
generic.Matcher -> *generic.SelectionPredicate
parent
d4afb781c3
commit
75fe25e717
|
@ -61,7 +61,7 @@ func NewREST(config *storagebackend.Config, storageDecorator generic.StorageDeco
|
|||
return obj.(*testgroup.TestType).Name, nil
|
||||
},
|
||||
// Used to match objects based on labels/fields for list.
|
||||
PredicateFunc: func(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
PredicateFunc: func(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -44,7 +44,7 @@ func ClusterToSelectableFields(cluster *federation.Cluster) fields.Set {
|
|||
return generic.ObjectMetaFieldsSet(cluster.ObjectMeta, false)
|
||||
}
|
||||
|
||||
func MatchCluster(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchCluster(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -62,7 +62,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *ApprovalREST) {
|
|||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*certificates.CertificateSigningRequest).Name, nil
|
||||
},
|
||||
PredicateFunc: func(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
PredicateFunc: func(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return csrregistry.Matcher(label, field)
|
||||
},
|
||||
QualifiedResource: certificates.Resource("certificatesigningrequests"),
|
||||
|
|
|
@ -168,7 +168,7 @@ func (csrApprovalStrategy) ValidateUpdate(ctx api.Context, obj, old runtime.Obje
|
|||
}
|
||||
|
||||
// Matcher returns a generic matcher for a given label and field selector.
|
||||
func Matcher(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func Matcher(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -102,7 +102,7 @@ func (s strategy) Export(ctx api.Context, obj runtime.Object, exact bool) error
|
|||
}
|
||||
|
||||
// Matcher returns a generic matcher for a given label and field selector.
|
||||
func Matcher(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func Matcher(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -102,7 +102,7 @@ func (s strategy) Export(ctx api.Context, obj runtime.Object, exact bool) error
|
|||
}
|
||||
|
||||
// Matcher returns a generic matcher for a given label and field selector.
|
||||
func Matcher(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func Matcher(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -88,7 +88,7 @@ func ConfigMapToSelectableFields(cfg *api.ConfigMap) fields.Set {
|
|||
}
|
||||
|
||||
// MatchConfigMap returns a generic matcher for a given label and field selector.
|
||||
func MatchConfigMap(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchConfigMap(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -113,7 +113,7 @@ func ControllerToSelectableFields(controller *api.ReplicationController) fields.
|
|||
// MatchController is the filter used by the generic etcd backend to route
|
||||
// watch events from etcd to clients of the apiserver only interested in specific
|
||||
// labels/fields.
|
||||
func MatchController(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchController(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -112,7 +112,7 @@ func DaemonSetToSelectableFields(daemon *extensions.DaemonSet) fields.Set {
|
|||
// MatchSetDaemon is the filter used by the generic etcd backend to route
|
||||
// watch events from etcd to clients of the apiserver only interested in specific
|
||||
// labels/fields.
|
||||
func MatchDaemonSet(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchDaemonSet(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -118,7 +118,7 @@ func DeploymentToSelectableFields(deployment *extensions.Deployment) fields.Set
|
|||
// MatchDeployment is the filter used by the generic etcd backend to route
|
||||
// watch events from etcd to clients of the apiserver only interested in specific
|
||||
// labels/fields.
|
||||
func MatchDeployment(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchDeployment(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -79,7 +79,7 @@ func (endpointsStrategy) AllowUnconditionalUpdate() bool {
|
|||
}
|
||||
|
||||
// MatchEndpoints returns a generic matcher for a given label and field selector.
|
||||
func MatchEndpoints(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchEndpoints(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{Label: label, Field: field, GetAttrs: EndpointsAttributes}
|
||||
}
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@ func (eventStrategy) AllowUnconditionalUpdate() bool {
|
|||
return true
|
||||
}
|
||||
|
||||
func MatchEvent(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchEvent(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{Label: label, Field: field, GetAttrs: getAttrs}
|
||||
}
|
||||
|
||||
|
|
|
@ -88,7 +88,7 @@ type Store struct {
|
|||
TTLFunc func(obj runtime.Object, existing uint64, update bool) (uint64, error)
|
||||
|
||||
// Returns a matcher corresponding to the provided labels and fields.
|
||||
PredicateFunc func(label labels.Selector, field fields.Selector) generic.Matcher
|
||||
PredicateFunc func(label labels.Selector, field fields.Selector) *generic.SelectionPredicate
|
||||
|
||||
// DeleteCollectionWorkers is the maximum number of workers in a single
|
||||
// DeleteCollection call.
|
||||
|
@ -188,7 +188,7 @@ func (e *Store) List(ctx api.Context, options *api.ListOptions) (runtime.Object,
|
|||
}
|
||||
|
||||
// ListPredicate returns a list of all the items matching m.
|
||||
func (e *Store) ListPredicate(ctx api.Context, m generic.Matcher, options *api.ListOptions) (runtime.Object, error) {
|
||||
func (e *Store) ListPredicate(ctx api.Context, m *generic.SelectionPredicate, options *api.ListOptions) (runtime.Object, error) {
|
||||
list := e.NewListFunc()
|
||||
filter := e.createFilter(m)
|
||||
if name, ok := m.MatchesSingle(); ok {
|
||||
|
@ -797,7 +797,7 @@ func (e *Store) Watch(ctx api.Context, options *api.ListOptions) (watch.Interfac
|
|||
}
|
||||
|
||||
// WatchPredicate starts a watch for the items that m matches.
|
||||
func (e *Store) WatchPredicate(ctx api.Context, m generic.Matcher, resourceVersion string) (watch.Interface, error) {
|
||||
func (e *Store) WatchPredicate(ctx api.Context, m *generic.SelectionPredicate, resourceVersion string) (watch.Interface, error) {
|
||||
filter := e.createFilter(m)
|
||||
|
||||
if name, ok := m.MatchesSingle(); ok {
|
||||
|
@ -813,7 +813,7 @@ func (e *Store) WatchPredicate(ctx api.Context, m generic.Matcher, resourceVersi
|
|||
return e.Storage.WatchList(ctx, e.KeyRootFunc(ctx), resourceVersion, filter)
|
||||
}
|
||||
|
||||
func (e *Store) createFilter(m generic.Matcher) storage.Filter {
|
||||
func (e *Store) createFilter(m *generic.SelectionPredicate) storage.Filter {
|
||||
filterFunc := func(obj runtime.Object) bool {
|
||||
matches, err := m.Matches(obj)
|
||||
if err != nil {
|
||||
|
|
|
@ -83,45 +83,33 @@ func NewTestGenericStoreRegistry(t *testing.T) (*etcdtesting.EtcdTestServer, *St
|
|||
return newTestGenericStoreRegistry(t, false)
|
||||
}
|
||||
|
||||
// setMatcher is a matcher that matches any pod with id in the set.
|
||||
// matchPodName returns selection predicate that matches any pod with name in the set.
|
||||
// Makes testing simpler.
|
||||
type setMatcher struct {
|
||||
sets.String
|
||||
}
|
||||
|
||||
func (sm setMatcher) Matches(obj runtime.Object) (bool, error) {
|
||||
pod, ok := obj.(*api.Pod)
|
||||
if !ok {
|
||||
return false, fmt.Errorf("wrong object")
|
||||
func matchPodName(names ...string) *generic.SelectionPredicate {
|
||||
// Note: even if pod name is a field, we have to use labels,
|
||||
// because field selector doesn't support "IN" operator.
|
||||
l, err := labels.NewRequirement("name", labels.InOperator, sets.NewString(names...))
|
||||
if err != nil {
|
||||
panic("Labels requirement must validate successfully")
|
||||
}
|
||||
return sm.Has(pod.Name), nil
|
||||
}
|
||||
|
||||
func (sm setMatcher) MatchesSingle() (string, bool) {
|
||||
if sm.Len() == 1 {
|
||||
// Since pod name is its key, we can optimize this case.
|
||||
return sm.List()[0], true
|
||||
return &generic.SelectionPredicate{
|
||||
Label: labels.Everything().Add(*l),
|
||||
Field: fields.Everything(),
|
||||
GetAttrs: func(obj runtime.Object) (label labels.Set, field fields.Set, err error) {
|
||||
pod := obj.(*api.Pod)
|
||||
return labels.Set{"name": pod.ObjectMeta.Name}, nil, nil
|
||||
},
|
||||
}
|
||||
return "", false
|
||||
}
|
||||
|
||||
func (sm setMatcher) MatcherIndex() []storage.MatchValue {
|
||||
return nil
|
||||
}
|
||||
|
||||
// everythingMatcher matches everything
|
||||
type everythingMatcher struct{}
|
||||
|
||||
func (everythingMatcher) Matches(obj runtime.Object) (bool, error) {
|
||||
return true, nil
|
||||
}
|
||||
|
||||
func (everythingMatcher) MatchesSingle() (string, bool) {
|
||||
return "", false
|
||||
}
|
||||
|
||||
func (everythingMatcher) MatcherIndex() []storage.MatchValue {
|
||||
return nil
|
||||
func matchEverything() *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: labels.Everything(),
|
||||
Field: fields.Everything(),
|
||||
GetAttrs: func(obj runtime.Object) (label labels.Set, field fields.Set, err error) {
|
||||
return nil, nil, nil
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func TestStoreList(t *testing.T) {
|
||||
|
@ -139,34 +127,34 @@ func TestStoreList(t *testing.T) {
|
|||
|
||||
table := map[string]struct {
|
||||
in *api.PodList
|
||||
m generic.Matcher
|
||||
m *generic.SelectionPredicate
|
||||
out runtime.Object
|
||||
context api.Context
|
||||
}{
|
||||
"notFound": {
|
||||
in: nil,
|
||||
m: everythingMatcher{},
|
||||
m: matchEverything(),
|
||||
out: &api.PodList{Items: []api.Pod{}},
|
||||
},
|
||||
"normal": {
|
||||
in: &api.PodList{Items: []api.Pod{*podA, *podB}},
|
||||
m: everythingMatcher{},
|
||||
m: matchEverything(),
|
||||
out: &api.PodList{Items: []api.Pod{*podA, *podB}},
|
||||
},
|
||||
"normalFiltered": {
|
||||
in: &api.PodList{Items: []api.Pod{*podA, *podB}},
|
||||
m: setMatcher{sets.NewString("foo")},
|
||||
m: matchPodName("foo"),
|
||||
out: &api.PodList{Items: []api.Pod{*podB}},
|
||||
},
|
||||
"normalFilteredNoNamespace": {
|
||||
in: &api.PodList{Items: []api.Pod{*podA, *podB}},
|
||||
m: setMatcher{sets.NewString("foo")},
|
||||
m: matchPodName("foo"),
|
||||
out: &api.PodList{Items: []api.Pod{*podB}},
|
||||
context: noNamespaceContext,
|
||||
},
|
||||
"normalFilteredMatchMultiple": {
|
||||
in: &api.PodList{Items: []api.Pod{*podA, *podB}},
|
||||
m: setMatcher{sets.NewString("foo", "makeMatchSingleReturnFalse")},
|
||||
m: matchPodName("foo", "makeMatchSingleReturnFalse"),
|
||||
out: &api.PodList{Items: []api.Pod{*podB}},
|
||||
},
|
||||
}
|
||||
|
@ -930,7 +918,7 @@ func TestStoreDeleteCollectionWithWatch(t *testing.T) {
|
|||
}
|
||||
podCreated := objCreated.(*api.Pod)
|
||||
|
||||
watcher, err := registry.WatchPredicate(testContext, setMatcher{sets.NewString("foo")}, podCreated.ResourceVersion)
|
||||
watcher, err := registry.WatchPredicate(testContext, matchPodName("foo"), podCreated.ResourceVersion)
|
||||
if err != nil {
|
||||
t.Fatalf("Unexpected error: %v", err)
|
||||
}
|
||||
|
@ -960,17 +948,17 @@ func TestStoreWatch(t *testing.T) {
|
|||
noNamespaceContext := api.NewContext()
|
||||
|
||||
table := map[string]struct {
|
||||
generic.Matcher
|
||||
selectPred *generic.SelectionPredicate
|
||||
context api.Context
|
||||
}{
|
||||
"single": {
|
||||
Matcher: setMatcher{sets.NewString("foo")},
|
||||
selectPred: matchPodName("foo"),
|
||||
},
|
||||
"multi": {
|
||||
Matcher: setMatcher{sets.NewString("foo", "bar")},
|
||||
selectPred: matchPodName("foo", "bar"),
|
||||
},
|
||||
"singleNoNamespace": {
|
||||
Matcher: setMatcher{sets.NewString("foo")},
|
||||
selectPred: matchPodName("foo"),
|
||||
context: noNamespaceContext,
|
||||
},
|
||||
}
|
||||
|
@ -989,7 +977,7 @@ func TestStoreWatch(t *testing.T) {
|
|||
}
|
||||
|
||||
server, registry := NewTestGenericStoreRegistry(t)
|
||||
wi, err := registry.WatchPredicate(ctx, m, "0")
|
||||
wi, err := registry.WatchPredicate(ctx, m.selectPred, "0")
|
||||
if err != nil {
|
||||
t.Errorf("%v: unexpected error: %v", name, err)
|
||||
} else {
|
||||
|
@ -1046,7 +1034,7 @@ func newTestGenericStoreRegistry(t *testing.T, hasCacheEnabled bool) (*etcdtesti
|
|||
return path.Join(podPrefix, id), nil
|
||||
},
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) { return obj.(*api.Pod).Name, nil },
|
||||
PredicateFunc: func(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
PredicateFunc: func(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -88,7 +88,7 @@ func AutoscalerToSelectableFields(hpa *autoscaling.HorizontalPodAutoscaler) fiel
|
|||
return fields.Set{}
|
||||
}
|
||||
|
||||
func MatchAutoscaler(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchAutoscaler(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -105,7 +105,7 @@ func IngressToSelectableFields(ingress *extensions.Ingress) fields.Set {
|
|||
// MatchIngress is the filter used by the generic etcd backend to ingress
|
||||
// watch events from etcd to clients of the apiserver only interested in specific
|
||||
// labels/fields.
|
||||
func MatchIngress(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchIngress(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -166,7 +166,7 @@ func JobToSelectableFields(job *batch.Job) fields.Set {
|
|||
// MatchJob is the filter used by the generic etcd backend to route
|
||||
// watch events from etcd to clients of the apiserver only interested in specific
|
||||
// labels/fields.
|
||||
func MatchJob(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchJob(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -85,7 +85,7 @@ func (limitrangeStrategy) Export(api.Context, runtime.Object, bool) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func MatchLimitRange(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchLimitRange(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -135,7 +135,7 @@ func (namespaceFinalizeStrategy) PrepareForUpdate(ctx api.Context, obj, old runt
|
|||
}
|
||||
|
||||
// MatchNamespace returns a generic matcher for a given label and field selector.
|
||||
func MatchNamespace(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchNamespace(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -97,7 +97,7 @@ func NetworkPolicyToSelectableFields(networkPolicy *extensions.NetworkPolicy) fi
|
|||
|
||||
// MatchNetworkPolicy is the filter used by the generic etcd backend to watch events
|
||||
// from etcd to clients of the apiserver only interested in specific labels/fields.
|
||||
func MatchNetworkPolicy(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchNetworkPolicy(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -147,7 +147,7 @@ func NodeToSelectableFields(node *api.Node) fields.Set {
|
|||
}
|
||||
|
||||
// MatchNode returns a generic matcher for a given label and field selector.
|
||||
func MatchNode(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchNode(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -95,7 +95,7 @@ func (persistentvolumeStatusStrategy) ValidateUpdate(ctx api.Context, obj, old r
|
|||
}
|
||||
|
||||
// MatchPersistentVolume returns a generic matcher for a given label and field selector.
|
||||
func MatchPersistentVolumes(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchPersistentVolumes(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -95,7 +95,7 @@ func (persistentvolumeclaimStatusStrategy) ValidateUpdate(ctx api.Context, obj,
|
|||
}
|
||||
|
||||
// MatchPersistentVolumeClaim returns a generic matcher for a given label and field selector.
|
||||
func MatchPersistentVolumeClaim(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchPersistentVolumeClaim(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -103,7 +103,7 @@ func PetSetToSelectableFields(petSet *apps.PetSet) fields.Set {
|
|||
|
||||
// MatchPetSet is the filter used by the generic etcd backend to watch events
|
||||
// from etcd to clients of the apiserver only interested in specific labels/fields.
|
||||
func MatchPetSet(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchPetSet(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -155,7 +155,7 @@ func (podStatusStrategy) ValidateUpdate(ctx api.Context, obj, old runtime.Object
|
|||
}
|
||||
|
||||
// MatchPod returns a generic matcher for a given label and field selector.
|
||||
func MatchPod(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchPod(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -102,7 +102,7 @@ func PodDisruptionBudgetToSelectableFields(podDisruptionBudget *policy.PodDisrup
|
|||
|
||||
// MatchPodDisruptionBudget is the filter used by the generic etcd backend to watch events
|
||||
// from etcd to clients of the apiserver only interested in specific labels/fields.
|
||||
func MatchPodDisruptionBudget(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchPodDisruptionBudget(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -74,7 +74,7 @@ func (strategy) ValidateUpdate(ctx api.Context, obj, old runtime.Object) field.E
|
|||
}
|
||||
|
||||
// Matcher returns a generic matcher for a given label and field selector.
|
||||
func MatchPodSecurityPolicy(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchPodSecurityPolicy(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -86,7 +86,7 @@ func PodTemplateToSelectableFields(podTemplate *api.PodTemplate) fields.Set {
|
|||
return fields.Set{}
|
||||
}
|
||||
|
||||
func MatchPodTemplate(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchPodTemplate(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -114,7 +114,7 @@ func ReplicaSetToSelectableFields(rs *extensions.ReplicaSet) fields.Set {
|
|||
// MatchReplicaSet is the filter used by the generic etcd backend to route
|
||||
// watch events from etcd to clients of the apiserver only interested in specific
|
||||
// labels/fields.
|
||||
func MatchReplicaSet(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchReplicaSet(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -98,7 +98,7 @@ func (resourcequotaStatusStrategy) ValidateUpdate(ctx api.Context, obj, old runt
|
|||
}
|
||||
|
||||
// MatchResourceQuota returns a generic matcher for a given label and field selector.
|
||||
func MatchResourceQuota(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchResourceQuota(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -102,7 +102,7 @@ func (s strategy) Export(ctx api.Context, obj runtime.Object, exact bool) error
|
|||
}
|
||||
|
||||
// Matcher returns a generic matcher for a given label and field selector.
|
||||
func Matcher(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func Matcher(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -102,7 +102,7 @@ func (s strategy) Export(ctx api.Context, obj runtime.Object, exact bool) error
|
|||
}
|
||||
|
||||
// Matcher returns a generic matcher for a given label and field selector.
|
||||
func Matcher(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func Matcher(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -104,7 +104,7 @@ func ScheduledJobToSelectableFields(scheduledJob *batch.ScheduledJob) fields.Set
|
|||
// MatchScheduledJob is the filter used by the generic etcd backend to route
|
||||
// watch events from etcd to clients of the apiserver only interested in specific
|
||||
// labels/fields.
|
||||
func MatchScheduledJob(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchScheduledJob(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -94,7 +94,7 @@ func (s strategy) Export(ctx api.Context, obj runtime.Object, exact bool) error
|
|||
}
|
||||
|
||||
// Matcher returns a generic matcher for a given label and field selector.
|
||||
func Matcher(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func Matcher(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -100,7 +100,7 @@ func (svcStrategy) Export(ctx api.Context, obj runtime.Object, exact bool) error
|
|||
return nil
|
||||
}
|
||||
|
||||
func MatchServices(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchServices(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -77,7 +77,7 @@ func (strategy) AllowUnconditionalUpdate() bool {
|
|||
}
|
||||
|
||||
// Matcher returns a generic matcher for a given label and field selector.
|
||||
func Matcher(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func Matcher(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -77,7 +77,7 @@ func (storageClassStrategy) AllowUnconditionalUpdate() bool {
|
|||
}
|
||||
|
||||
// MatchStorageClass returns a generic matcher for a given label and field selector.
|
||||
func MatchStorageClasses(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func MatchStorageClasses(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -78,7 +78,7 @@ func (strategy) AllowUnconditionalUpdate() bool {
|
|||
}
|
||||
|
||||
// Matcher returns a generic matcher for a given label and field selector.
|
||||
func Matcher(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func Matcher(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
|
@ -75,7 +75,7 @@ func (strategy) AllowUnconditionalUpdate() bool {
|
|||
}
|
||||
|
||||
// Matcher returns a generic matcher for a given label and field selector.
|
||||
func Matcher(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||
func Matcher(label labels.Selector, field fields.Selector) *generic.SelectionPredicate {
|
||||
return &generic.SelectionPredicate{
|
||||
Label: label,
|
||||
Field: field,
|
||||
|
|
Loading…
Reference in New Issue