Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
75fe25e7
Commit
75fe25e7
authored
Aug 13, 2016
by
Hongchao Deng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
generic.Matcher -> *generic.SelectionPredicate
parent
d4afb781
Hide whitespace changes
Inline
Side-by-side
Showing
39 changed files
with
78 additions
and
90 deletions
+78
-90
reststorage.go
examples/apiserver/rest/reststorage.go
+1
-1
strategy.go
federation/registry/cluster/strategy.go
+1
-1
etcd.go
pkg/registry/certificates/etcd/etcd.go
+1
-1
strategy.go
pkg/registry/certificates/strategy.go
+1
-1
strategy.go
pkg/registry/clusterrole/strategy.go
+1
-1
strategy.go
pkg/registry/clusterrolebinding/strategy.go
+1
-1
strategy.go
pkg/registry/configmap/strategy.go
+1
-1
strategy.go
pkg/registry/controller/strategy.go
+1
-1
strategy.go
pkg/registry/daemonset/strategy.go
+1
-1
strategy.go
pkg/registry/deployment/strategy.go
+1
-1
strategy.go
pkg/registry/endpoint/strategy.go
+1
-1
strategy.go
pkg/registry/event/strategy.go
+1
-1
store.go
pkg/registry/generic/registry/store.go
+4
-4
store_test.go
pkg/registry/generic/registry/store_test.go
+37
-49
strategy.go
pkg/registry/horizontalpodautoscaler/strategy.go
+1
-1
strategy.go
pkg/registry/ingress/strategy.go
+1
-1
strategy.go
pkg/registry/job/strategy.go
+1
-1
strategy.go
pkg/registry/limitrange/strategy.go
+1
-1
strategy.go
pkg/registry/namespace/strategy.go
+1
-1
strategy.go
pkg/registry/networkpolicy/strategy.go
+1
-1
strategy.go
pkg/registry/node/strategy.go
+1
-1
strategy.go
pkg/registry/persistentvolume/strategy.go
+1
-1
strategy.go
pkg/registry/persistentvolumeclaim/strategy.go
+1
-1
strategy.go
pkg/registry/petset/strategy.go
+1
-1
strategy.go
pkg/registry/pod/strategy.go
+1
-1
strategy.go
pkg/registry/poddisruptionbudget/strategy.go
+1
-1
strategy.go
pkg/registry/podsecuritypolicy/strategy.go
+1
-1
strategy.go
pkg/registry/podtemplate/strategy.go
+1
-1
strategy.go
pkg/registry/replicaset/strategy.go
+1
-1
strategy.go
pkg/registry/resourcequota/strategy.go
+1
-1
strategy.go
pkg/registry/role/strategy.go
+1
-1
strategy.go
pkg/registry/rolebinding/strategy.go
+1
-1
strategy.go
pkg/registry/scheduledjob/strategy.go
+1
-1
strategy.go
pkg/registry/secret/strategy.go
+1
-1
strategy.go
pkg/registry/service/strategy.go
+1
-1
strategy.go
pkg/registry/serviceaccount/strategy.go
+1
-1
strategy.go
pkg/registry/storageclass/strategy.go
+1
-1
strategy.go
pkg/registry/thirdpartyresource/strategy.go
+1
-1
strategy.go
pkg/registry/thirdpartyresourcedata/strategy.go
+1
-1
No files found.
examples/apiserver/rest/reststorage.go
View file @
75fe25e7
...
@@ -61,7 +61,7 @@ func NewREST(config *storagebackend.Config, storageDecorator generic.StorageDeco
...
@@ -61,7 +61,7 @@ func NewREST(config *storagebackend.Config, storageDecorator generic.StorageDeco
return
obj
.
(
*
testgroup
.
TestType
)
.
Name
,
nil
return
obj
.
(
*
testgroup
.
TestType
)
.
Name
,
nil
},
},
// Used to match objects based on labels/fields for list.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
federation/registry/cluster/strategy.go
View file @
75fe25e7
...
@@ -44,7 +44,7 @@ func ClusterToSelectableFields(cluster *federation.Cluster) fields.Set {
...
@@ -44,7 +44,7 @@ func ClusterToSelectableFields(cluster *federation.Cluster) fields.Set {
return
generic
.
ObjectMetaFieldsSet
(
cluster
.
ObjectMeta
,
false
)
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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/certificates/etcd/etcd.go
View file @
75fe25e7
...
@@ -62,7 +62,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *ApprovalREST) {
...
@@ -62,7 +62,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *ApprovalREST) {
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
return
obj
.
(
*
certificates
.
CertificateSigningRequest
)
.
Name
,
nil
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
)
return
csrregistry
.
Matcher
(
label
,
field
)
},
},
QualifiedResource
:
certificates
.
Resource
(
"certificatesigningrequests"
),
QualifiedResource
:
certificates
.
Resource
(
"certificatesigningrequests"
),
...
...
pkg/registry/certificates/strategy.go
View file @
75fe25e7
...
@@ -168,7 +168,7 @@ func (csrApprovalStrategy) ValidateUpdate(ctx api.Context, obj, old runtime.Obje
...
@@ -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.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/clusterrole/strategy.go
View file @
75fe25e7
...
@@ -102,7 +102,7 @@ func (s strategy) Export(ctx api.Context, obj runtime.Object, exact bool) error
...
@@ -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.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/clusterrolebinding/strategy.go
View file @
75fe25e7
...
@@ -102,7 +102,7 @@ func (s strategy) Export(ctx api.Context, obj runtime.Object, exact bool) error
...
@@ -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.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/configmap/strategy.go
View file @
75fe25e7
...
@@ -88,7 +88,7 @@ func ConfigMapToSelectableFields(cfg *api.ConfigMap) fields.Set {
...
@@ -88,7 +88,7 @@ func ConfigMapToSelectableFields(cfg *api.ConfigMap) fields.Set {
}
}
// MatchConfigMap returns a generic matcher for a given label and field selector.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/controller/strategy.go
View file @
75fe25e7
...
@@ -113,7 +113,7 @@ func ControllerToSelectableFields(controller *api.ReplicationController) fields.
...
@@ -113,7 +113,7 @@ func ControllerToSelectableFields(controller *api.ReplicationController) fields.
// MatchController is the filter used by the generic etcd backend to route
// 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
// watch events from etcd to clients of the apiserver only interested in specific
// labels/fields.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/daemonset/strategy.go
View file @
75fe25e7
...
@@ -112,7 +112,7 @@ func DaemonSetToSelectableFields(daemon *extensions.DaemonSet) fields.Set {
...
@@ -112,7 +112,7 @@ func DaemonSetToSelectableFields(daemon *extensions.DaemonSet) fields.Set {
// MatchSetDaemon is the filter used by the generic etcd backend to route
// 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
// watch events from etcd to clients of the apiserver only interested in specific
// labels/fields.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/deployment/strategy.go
View file @
75fe25e7
...
@@ -118,7 +118,7 @@ func DeploymentToSelectableFields(deployment *extensions.Deployment) fields.Set
...
@@ -118,7 +118,7 @@ func DeploymentToSelectableFields(deployment *extensions.Deployment) fields.Set
// MatchDeployment is the filter used by the generic etcd backend to route
// 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
// watch events from etcd to clients of the apiserver only interested in specific
// labels/fields.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/endpoint/strategy.go
View file @
75fe25e7
...
@@ -79,7 +79,7 @@ func (endpointsStrategy) AllowUnconditionalUpdate() bool {
...
@@ -79,7 +79,7 @@ func (endpointsStrategy) AllowUnconditionalUpdate() bool {
}
}
// MatchEndpoints returns a generic matcher for a given label and field selector.
// 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
}
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Field
:
field
,
GetAttrs
:
EndpointsAttributes
}
}
}
...
...
pkg/registry/event/strategy.go
View file @
75fe25e7
...
@@ -70,7 +70,7 @@ func (eventStrategy) AllowUnconditionalUpdate() bool {
...
@@ -70,7 +70,7 @@ func (eventStrategy) AllowUnconditionalUpdate() bool {
return
true
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
}
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Field
:
field
,
GetAttrs
:
getAttrs
}
}
}
...
...
pkg/registry/generic/registry/store.go
View file @
75fe25e7
...
@@ -88,7 +88,7 @@ type Store struct {
...
@@ -88,7 +88,7 @@ type Store struct {
TTLFunc
func
(
obj
runtime
.
Object
,
existing
uint64
,
update
bool
)
(
uint64
,
error
)
TTLFunc
func
(
obj
runtime
.
Object
,
existing
uint64
,
update
bool
)
(
uint64
,
error
)
// Returns a matcher corresponding to the provided labels and fields.
// 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
// DeleteCollectionWorkers is the maximum number of workers in a single
// DeleteCollection call.
// DeleteCollection call.
...
@@ -188,7 +188,7 @@ func (e *Store) List(ctx api.Context, options *api.ListOptions) (runtime.Object,
...
@@ -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.
// 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
()
list
:=
e
.
NewListFunc
()
filter
:=
e
.
createFilter
(
m
)
filter
:=
e
.
createFilter
(
m
)
if
name
,
ok
:=
m
.
MatchesSingle
();
ok
{
if
name
,
ok
:=
m
.
MatchesSingle
();
ok
{
...
@@ -797,7 +797,7 @@ func (e *Store) Watch(ctx api.Context, options *api.ListOptions) (watch.Interfac
...
@@ -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.
// 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
)
filter
:=
e
.
createFilter
(
m
)
if
name
,
ok
:=
m
.
MatchesSingle
();
ok
{
if
name
,
ok
:=
m
.
MatchesSingle
();
ok
{
...
@@ -813,7 +813,7 @@ func (e *Store) WatchPredicate(ctx api.Context, m generic.Matcher, resourceVersi
...
@@ -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
)
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
{
filterFunc
:=
func
(
obj
runtime
.
Object
)
bool
{
matches
,
err
:=
m
.
Matches
(
obj
)
matches
,
err
:=
m
.
Matches
(
obj
)
if
err
!=
nil
{
if
err
!=
nil
{
...
...
pkg/registry/generic/registry/store_test.go
View file @
75fe25e7
...
@@ -83,45 +83,33 @@ func NewTestGenericStoreRegistry(t *testing.T) (*etcdtesting.EtcdTestServer, *St
...
@@ -83,45 +83,33 @@ func NewTestGenericStoreRegistry(t *testing.T) (*etcdtesting.EtcdTestServer, *St
return
newTestGenericStoreRegistry
(
t
,
false
)
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.
// Makes testing simpler.
type
setMatcher
struct
{
func
matchPodName
(
names
...
string
)
*
generic
.
SelectionPredicate
{
sets
.
String
// 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
...
))
func
(
sm
setMatcher
)
Matches
(
obj
runtime
.
Object
)
(
bool
,
error
)
{
if
err
!=
nil
{
pod
,
ok
:=
obj
.
(
*
api
.
Pod
)
panic
(
"Labels requirement must validate successfully"
)
if
!
ok
{
}
return
false
,
fmt
.
Errorf
(
"wrong object"
)
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
sm
.
Has
(
pod
.
Name
),
nil
}
}
func
(
sm
setMatcher
)
MatchesSingle
()
(
string
,
bool
)
{
func
matchEverything
()
*
generic
.
SelectionPredicate
{
if
sm
.
Len
()
==
1
{
return
&
generic
.
SelectionPredicate
{
// Since pod name is its key, we can optimize this case.
Label
:
labels
.
Everything
(),
return
sm
.
List
()[
0
],
true
Field
:
fields
.
Everything
(),
GetAttrs
:
func
(
obj
runtime
.
Object
)
(
label
labels
.
Set
,
field
fields
.
Set
,
err
error
)
{
return
nil
,
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
TestStoreList
(
t
*
testing
.
T
)
{
func
TestStoreList
(
t
*
testing
.
T
)
{
...
@@ -139,34 +127,34 @@ func TestStoreList(t *testing.T) {
...
@@ -139,34 +127,34 @@ func TestStoreList(t *testing.T) {
table
:=
map
[
string
]
struct
{
table
:=
map
[
string
]
struct
{
in
*
api
.
PodList
in
*
api
.
PodList
m
generic
.
Matcher
m
*
generic
.
SelectionPredicate
out
runtime
.
Object
out
runtime
.
Object
context
api
.
Context
context
api
.
Context
}{
}{
"notFound"
:
{
"notFound"
:
{
in
:
nil
,
in
:
nil
,
m
:
everythingMatcher
{}
,
m
:
matchEverything
()
,
out
:
&
api
.
PodList
{
Items
:
[]
api
.
Pod
{}},
out
:
&
api
.
PodList
{
Items
:
[]
api
.
Pod
{}},
},
},
"normal"
:
{
"normal"
:
{
in
:
&
api
.
PodList
{
Items
:
[]
api
.
Pod
{
*
podA
,
*
podB
}},
in
:
&
api
.
PodList
{
Items
:
[]
api
.
Pod
{
*
podA
,
*
podB
}},
m
:
everythingMatcher
{}
,
m
:
matchEverything
()
,
out
:
&
api
.
PodList
{
Items
:
[]
api
.
Pod
{
*
podA
,
*
podB
}},
out
:
&
api
.
PodList
{
Items
:
[]
api
.
Pod
{
*
podA
,
*
podB
}},
},
},
"normalFiltered"
:
{
"normalFiltered"
:
{
in
:
&
api
.
PodList
{
Items
:
[]
api
.
Pod
{
*
podA
,
*
podB
}},
in
:
&
api
.
PodList
{
Items
:
[]
api
.
Pod
{
*
podA
,
*
podB
}},
m
:
setMatcher
{
sets
.
NewString
(
"foo"
)}
,
m
:
matchPodName
(
"foo"
)
,
out
:
&
api
.
PodList
{
Items
:
[]
api
.
Pod
{
*
podB
}},
out
:
&
api
.
PodList
{
Items
:
[]
api
.
Pod
{
*
podB
}},
},
},
"normalFilteredNoNamespace"
:
{
"normalFilteredNoNamespace"
:
{
in
:
&
api
.
PodList
{
Items
:
[]
api
.
Pod
{
*
podA
,
*
podB
}},
in
:
&
api
.
PodList
{
Items
:
[]
api
.
Pod
{
*
podA
,
*
podB
}},
m
:
setMatcher
{
sets
.
NewString
(
"foo"
)}
,
m
:
matchPodName
(
"foo"
)
,
out
:
&
api
.
PodList
{
Items
:
[]
api
.
Pod
{
*
podB
}},
out
:
&
api
.
PodList
{
Items
:
[]
api
.
Pod
{
*
podB
}},
context
:
noNamespaceContext
,
context
:
noNamespaceContext
,
},
},
"normalFilteredMatchMultiple"
:
{
"normalFilteredMatchMultiple"
:
{
in
:
&
api
.
PodList
{
Items
:
[]
api
.
Pod
{
*
podA
,
*
podB
}},
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
}},
out
:
&
api
.
PodList
{
Items
:
[]
api
.
Pod
{
*
podB
}},
},
},
}
}
...
@@ -930,7 +918,7 @@ func TestStoreDeleteCollectionWithWatch(t *testing.T) {
...
@@ -930,7 +918,7 @@ func TestStoreDeleteCollectionWithWatch(t *testing.T) {
}
}
podCreated
:=
objCreated
.
(
*
api
.
Pod
)
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
{
if
err
!=
nil
{
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
t
.
Fatalf
(
"Unexpected error: %v"
,
err
)
}
}
...
@@ -960,18 +948,18 @@ func TestStoreWatch(t *testing.T) {
...
@@ -960,18 +948,18 @@ func TestStoreWatch(t *testing.T) {
noNamespaceContext
:=
api
.
NewContext
()
noNamespaceContext
:=
api
.
NewContext
()
table
:=
map
[
string
]
struct
{
table
:=
map
[
string
]
struct
{
generic
.
Matcher
selectPred
*
generic
.
SelectionPredicate
context
api
.
Context
context
api
.
Context
}{
}{
"single"
:
{
"single"
:
{
Matcher
:
setMatcher
{
sets
.
NewString
(
"foo"
)}
,
selectPred
:
matchPodName
(
"foo"
)
,
},
},
"multi"
:
{
"multi"
:
{
Matcher
:
setMatcher
{
sets
.
NewString
(
"foo"
,
"bar"
)}
,
selectPred
:
matchPodName
(
"foo"
,
"bar"
)
,
},
},
"singleNoNamespace"
:
{
"singleNoNamespace"
:
{
Matcher
:
setMatcher
{
sets
.
NewString
(
"foo"
)}
,
selectPred
:
matchPodName
(
"foo"
)
,
context
:
noNamespaceContext
,
context
:
noNamespaceContext
,
},
},
}
}
...
@@ -989,7 +977,7 @@ func TestStoreWatch(t *testing.T) {
...
@@ -989,7 +977,7 @@ func TestStoreWatch(t *testing.T) {
}
}
server
,
registry
:=
NewTestGenericStoreRegistry
(
t
)
server
,
registry
:=
NewTestGenericStoreRegistry
(
t
)
wi
,
err
:=
registry
.
WatchPredicate
(
ctx
,
m
,
"0"
)
wi
,
err
:=
registry
.
WatchPredicate
(
ctx
,
m
.
selectPred
,
"0"
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Errorf
(
"%v: unexpected error: %v"
,
name
,
err
)
t
.
Errorf
(
"%v: unexpected error: %v"
,
name
,
err
)
}
else
{
}
else
{
...
@@ -1046,7 +1034,7 @@ func newTestGenericStoreRegistry(t *testing.T, hasCacheEnabled bool) (*etcdtesti
...
@@ -1046,7 +1034,7 @@ func newTestGenericStoreRegistry(t *testing.T, hasCacheEnabled bool) (*etcdtesti
return
path
.
Join
(
podPrefix
,
id
),
nil
return
path
.
Join
(
podPrefix
,
id
),
nil
},
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
return
obj
.
(
*
api
.
Pod
)
.
Name
,
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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/horizontalpodautoscaler/strategy.go
View file @
75fe25e7
...
@@ -88,7 +88,7 @@ func AutoscalerToSelectableFields(hpa *autoscaling.HorizontalPodAutoscaler) fiel
...
@@ -88,7 +88,7 @@ func AutoscalerToSelectableFields(hpa *autoscaling.HorizontalPodAutoscaler) fiel
return
fields
.
Set
{}
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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/ingress/strategy.go
View file @
75fe25e7
...
@@ -105,7 +105,7 @@ func IngressToSelectableFields(ingress *extensions.Ingress) fields.Set {
...
@@ -105,7 +105,7 @@ func IngressToSelectableFields(ingress *extensions.Ingress) fields.Set {
// MatchIngress is the filter used by the generic etcd backend to ingress
// 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
// watch events from etcd to clients of the apiserver only interested in specific
// labels/fields.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/job/strategy.go
View file @
75fe25e7
...
@@ -166,7 +166,7 @@ func JobToSelectableFields(job *batch.Job) fields.Set {
...
@@ -166,7 +166,7 @@ func JobToSelectableFields(job *batch.Job) fields.Set {
// MatchJob is the filter used by the generic etcd backend to route
// 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
// watch events from etcd to clients of the apiserver only interested in specific
// labels/fields.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/limitrange/strategy.go
View file @
75fe25e7
...
@@ -85,7 +85,7 @@ func (limitrangeStrategy) Export(api.Context, runtime.Object, bool) error {
...
@@ -85,7 +85,7 @@ func (limitrangeStrategy) Export(api.Context, runtime.Object, bool) error {
return
nil
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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/namespace/strategy.go
View file @
75fe25e7
...
@@ -135,7 +135,7 @@ func (namespaceFinalizeStrategy) PrepareForUpdate(ctx api.Context, obj, old runt
...
@@ -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.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/networkpolicy/strategy.go
View file @
75fe25e7
...
@@ -97,7 +97,7 @@ func NetworkPolicyToSelectableFields(networkPolicy *extensions.NetworkPolicy) fi
...
@@ -97,7 +97,7 @@ func NetworkPolicyToSelectableFields(networkPolicy *extensions.NetworkPolicy) fi
// MatchNetworkPolicy is the filter used by the generic etcd backend to watch events
// 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.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/node/strategy.go
View file @
75fe25e7
...
@@ -147,7 +147,7 @@ func NodeToSelectableFields(node *api.Node) fields.Set {
...
@@ -147,7 +147,7 @@ func NodeToSelectableFields(node *api.Node) fields.Set {
}
}
// MatchNode returns a generic matcher for a given label and field selector.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/persistentvolume/strategy.go
View file @
75fe25e7
...
@@ -95,7 +95,7 @@ func (persistentvolumeStatusStrategy) ValidateUpdate(ctx api.Context, obj, old r
...
@@ -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.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/persistentvolumeclaim/strategy.go
View file @
75fe25e7
...
@@ -95,7 +95,7 @@ func (persistentvolumeclaimStatusStrategy) ValidateUpdate(ctx api.Context, obj,
...
@@ -95,7 +95,7 @@ func (persistentvolumeclaimStatusStrategy) ValidateUpdate(ctx api.Context, obj,
}
}
// MatchPersistentVolumeClaim returns a generic matcher for a given label and field selector.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/petset/strategy.go
View file @
75fe25e7
...
@@ -103,7 +103,7 @@ func PetSetToSelectableFields(petSet *apps.PetSet) fields.Set {
...
@@ -103,7 +103,7 @@ func PetSetToSelectableFields(petSet *apps.PetSet) fields.Set {
// MatchPetSet is the filter used by the generic etcd backend to watch events
// 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.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/pod/strategy.go
View file @
75fe25e7
...
@@ -155,7 +155,7 @@ func (podStatusStrategy) ValidateUpdate(ctx api.Context, obj, old runtime.Object
...
@@ -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.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/poddisruptionbudget/strategy.go
View file @
75fe25e7
...
@@ -102,7 +102,7 @@ func PodDisruptionBudgetToSelectableFields(podDisruptionBudget *policy.PodDisrup
...
@@ -102,7 +102,7 @@ func PodDisruptionBudgetToSelectableFields(podDisruptionBudget *policy.PodDisrup
// MatchPodDisruptionBudget is the filter used by the generic etcd backend to watch events
// 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.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/podsecuritypolicy/strategy.go
View file @
75fe25e7
...
@@ -74,7 +74,7 @@ func (strategy) ValidateUpdate(ctx api.Context, obj, old runtime.Object) field.E
...
@@ -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.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/podtemplate/strategy.go
View file @
75fe25e7
...
@@ -86,7 +86,7 @@ func PodTemplateToSelectableFields(podTemplate *api.PodTemplate) fields.Set {
...
@@ -86,7 +86,7 @@ func PodTemplateToSelectableFields(podTemplate *api.PodTemplate) fields.Set {
return
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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/replicaset/strategy.go
View file @
75fe25e7
...
@@ -114,7 +114,7 @@ func ReplicaSetToSelectableFields(rs *extensions.ReplicaSet) fields.Set {
...
@@ -114,7 +114,7 @@ func ReplicaSetToSelectableFields(rs *extensions.ReplicaSet) fields.Set {
// MatchReplicaSet is the filter used by the generic etcd backend to route
// 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
// watch events from etcd to clients of the apiserver only interested in specific
// labels/fields.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/resourcequota/strategy.go
View file @
75fe25e7
...
@@ -98,7 +98,7 @@ func (resourcequotaStatusStrategy) ValidateUpdate(ctx api.Context, obj, old runt
...
@@ -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.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/role/strategy.go
View file @
75fe25e7
...
@@ -102,7 +102,7 @@ func (s strategy) Export(ctx api.Context, obj runtime.Object, exact bool) error
...
@@ -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.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/rolebinding/strategy.go
View file @
75fe25e7
...
@@ -102,7 +102,7 @@ func (s strategy) Export(ctx api.Context, obj runtime.Object, exact bool) error
...
@@ -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.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/scheduledjob/strategy.go
View file @
75fe25e7
...
@@ -104,7 +104,7 @@ func ScheduledJobToSelectableFields(scheduledJob *batch.ScheduledJob) fields.Set
...
@@ -104,7 +104,7 @@ func ScheduledJobToSelectableFields(scheduledJob *batch.ScheduledJob) fields.Set
// MatchScheduledJob is the filter used by the generic etcd backend to route
// 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
// watch events from etcd to clients of the apiserver only interested in specific
// labels/fields.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/secret/strategy.go
View file @
75fe25e7
...
@@ -94,7 +94,7 @@ func (s strategy) Export(ctx api.Context, obj runtime.Object, exact bool) error
...
@@ -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.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/service/strategy.go
View file @
75fe25e7
...
@@ -100,7 +100,7 @@ func (svcStrategy) Export(ctx api.Context, obj runtime.Object, exact bool) error
...
@@ -100,7 +100,7 @@ func (svcStrategy) Export(ctx api.Context, obj runtime.Object, exact bool) error
return
nil
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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/serviceaccount/strategy.go
View file @
75fe25e7
...
@@ -77,7 +77,7 @@ func (strategy) AllowUnconditionalUpdate() bool {
...
@@ -77,7 +77,7 @@ func (strategy) AllowUnconditionalUpdate() bool {
}
}
// Matcher returns a generic matcher for a given label and field selector.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/storageclass/strategy.go
View file @
75fe25e7
...
@@ -77,7 +77,7 @@ func (storageClassStrategy) AllowUnconditionalUpdate() bool {
...
@@ -77,7 +77,7 @@ func (storageClassStrategy) AllowUnconditionalUpdate() bool {
}
}
// MatchStorageClass returns a generic matcher for a given label and field selector.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/thirdpartyresource/strategy.go
View file @
75fe25e7
...
@@ -78,7 +78,7 @@ func (strategy) AllowUnconditionalUpdate() bool {
...
@@ -78,7 +78,7 @@ func (strategy) AllowUnconditionalUpdate() bool {
}
}
// Matcher returns a generic matcher for a given label and field selector.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
pkg/registry/thirdpartyresourcedata/strategy.go
View file @
75fe25e7
...
@@ -75,7 +75,7 @@ func (strategy) AllowUnconditionalUpdate() bool {
...
@@ -75,7 +75,7 @@ func (strategy) AllowUnconditionalUpdate() bool {
}
}
// Matcher returns a generic matcher for a given label and field selector.
// 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
{
return
&
generic
.
SelectionPredicate
{
Label
:
label
,
Label
:
label
,
Field
:
field
,
Field
:
field
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment