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
057b7bf7
Commit
057b7bf7
authored
Aug 04, 2017
by
Di Xu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rename selector to labelSelector
parent
21062657
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
58 additions
and
56 deletions
+58
-56
annotate.go
pkg/kubectl/cmd/annotate.go
+1
-1
apply.go
pkg/kubectl/cmd/apply.go
+1
-1
apply_view_last_applied.go
pkg/kubectl/cmd/apply_view_last_applied.go
+1
-1
clusterinfo.go
pkg/kubectl/cmd/clusterinfo.go
+1
-1
create.go
pkg/kubectl/cmd/create.go
+1
-1
delete.go
pkg/kubectl/cmd/delete.go
+1
-1
describe.go
pkg/kubectl/cmd/describe.go
+1
-1
drain.go
pkg/kubectl/cmd/drain.go
+1
-1
label.go
pkg/kubectl/cmd/label.go
+1
-1
logs.go
pkg/kubectl/cmd/logs.go
+1
-1
get.go
pkg/kubectl/cmd/resource/get.go
+2
-2
scale.go
pkg/kubectl/cmd/scale.go
+1
-1
set_env.go
pkg/kubectl/cmd/set/set_env.go
+2
-2
set_image.go
pkg/kubectl/cmd/set/set_image.go
+1
-1
set_resources.go
pkg/kubectl/cmd/set/set_resources.go
+1
-1
set_subject.go
pkg/kubectl/cmd/set/set_subject.go
+1
-1
taint.go
pkg/kubectl/cmd/taint.go
+2
-2
builder.go
pkg/kubectl/resource/builder.go
+20
-19
builder_test.go
pkg/kubectl/resource/builder_test.go
+9
-8
selector.go
pkg/kubectl/resource/selector.go
+8
-8
visitor.go
pkg/kubectl/resource/visitor.go
+1
-1
No files found.
pkg/kubectl/cmd/annotate.go
View file @
057b7bf7
...
...
@@ -205,7 +205,7 @@ func (o AnnotateOptions) RunAnnotate(f cmdutil.Factory, cmd *cobra.Command) erro
return
err
}
b
=
b
.
SelectorParam
(
o
.
selector
)
.
b
=
b
.
Label
SelectorParam
(
o
.
selector
)
.
Unstructured
(
f
.
UnstructuredClientForMapping
,
mapper
,
typer
)
.
ResourceTypeOrNameArgs
(
o
.
all
,
o
.
resources
...
)
.
Latest
()
...
...
pkg/kubectl/cmd/apply.go
View file @
057b7bf7
...
...
@@ -219,7 +219,7 @@ func RunApply(f cmdutil.Factory, cmd *cobra.Command, out, errOut io.Writer, opti
ContinueOnError
()
.
NamespaceParam
(
cmdNamespace
)
.
DefaultNamespace
()
.
FilenameParam
(
enforceNamespace
,
&
options
.
FilenameOptions
)
.
SelectorParam
(
options
.
Selector
)
.
Label
SelectorParam
(
options
.
Selector
)
.
IncludeUninitialized
(
includeUninitialized
)
.
Flatten
()
.
Do
()
...
...
pkg/kubectl/cmd/apply_view_last_applied.go
View file @
057b7bf7
...
...
@@ -98,7 +98,7 @@ func (o *ViewLastAppliedOptions) Complete(f cmdutil.Factory, args []string) erro
FilenameParam
(
enforceNamespace
,
&
o
.
FilenameOptions
)
.
ResourceTypeOrNameArgs
(
enforceNamespace
,
args
...
)
.
SelectAllParam
(
o
.
All
)
.
SelectorParam
(
o
.
Selector
)
.
Label
SelectorParam
(
o
.
Selector
)
.
Latest
()
.
Flatten
()
.
Do
()
...
...
pkg/kubectl/cmd/clusterinfo.go
View file @
057b7bf7
...
...
@@ -74,7 +74,7 @@ func RunClusterInfo(f cmdutil.Factory, out io.Writer, cmd *cobra.Command) error
// TODO use generalized labels once they are implemented (#341)
b
:=
f
.
NewBuilder
()
.
NamespaceParam
(
cmdNamespace
)
.
DefaultNamespace
()
.
SelectorParam
(
"kubernetes.io/cluster-service=true"
)
.
Label
SelectorParam
(
"kubernetes.io/cluster-service=true"
)
.
ResourceTypeOrNameArgs
(
false
,
[]
string
{
"services"
}
...
)
.
Latest
()
err
=
b
.
Do
()
.
Visit
(
func
(
r
*
resource
.
Info
,
err
error
)
error
{
...
...
pkg/kubectl/cmd/create.go
View file @
057b7bf7
...
...
@@ -194,7 +194,7 @@ func RunCreate(f cmdutil.Factory, cmd *cobra.Command, out, errOut io.Writer, opt
ContinueOnError
()
.
NamespaceParam
(
cmdNamespace
)
.
DefaultNamespace
()
.
FilenameParam
(
enforceNamespace
,
&
options
.
FilenameOptions
)
.
SelectorParam
(
options
.
Selector
)
.
Label
SelectorParam
(
options
.
Selector
)
.
Flatten
()
.
Do
()
err
=
r
.
Err
()
...
...
pkg/kubectl/cmd/delete.go
View file @
057b7bf7
...
...
@@ -182,7 +182,7 @@ func (o *DeleteOptions) Complete(f cmdutil.Factory, out, errOut io.Writer, args
ContinueOnError
()
.
NamespaceParam
(
cmdNamespace
)
.
DefaultNamespace
()
.
FilenameParam
(
enforceNamespace
,
&
o
.
FilenameOptions
)
.
SelectorParam
(
o
.
Selector
)
.
Label
SelectorParam
(
o
.
Selector
)
.
IncludeUninitialized
(
includeUninitialized
)
.
SelectAllParam
(
o
.
DeleteAll
)
.
ResourceTypeOrNameArgs
(
false
,
args
...
)
.
RequireObject
(
false
)
.
...
...
pkg/kubectl/cmd/describe.go
View file @
057b7bf7
...
...
@@ -129,7 +129,7 @@ func RunDescribe(f cmdutil.Factory, out, cmdErr io.Writer, cmd *cobra.Command, a
ContinueOnError
()
.
NamespaceParam
(
cmdNamespace
)
.
DefaultNamespace
()
.
AllNamespaces
(
allNamespaces
)
.
FilenameParam
(
enforceNamespace
,
options
)
.
SelectorParam
(
selector
)
.
Label
SelectorParam
(
selector
)
.
IncludeUninitialized
(
includeUninitialized
)
.
ResourceTypeOrNameArgs
(
true
,
args
...
)
.
Flatten
()
.
...
...
pkg/kubectl/cmd/drain.go
View file @
057b7bf7
...
...
@@ -243,7 +243,7 @@ func (o *DrainOptions) SetupDrain(cmd *cobra.Command, args []string) error {
Flatten
()
if
len
(
o
.
Selector
)
>
0
{
builder
=
builder
.
SelectorParam
(
o
.
Selector
)
.
builder
=
builder
.
Label
SelectorParam
(
o
.
Selector
)
.
ResourceTypes
(
"nodes"
)
}
...
...
pkg/kubectl/cmd/label.go
View file @
057b7bf7
...
...
@@ -206,7 +206,7 @@ func (o *LabelOptions) RunLabel(f cmdutil.Factory, cmd *cobra.Command) error {
return
err
}
b
=
b
.
SelectorParam
(
o
.
selector
)
.
b
=
b
.
Label
SelectorParam
(
o
.
selector
)
.
Unstructured
(
f
.
UnstructuredClientForMapping
,
mapper
,
typer
)
.
ResourceTypeOrNameArgs
(
o
.
all
,
o
.
resources
...
)
.
Latest
()
...
...
pkg/kubectl/cmd/logs.go
View file @
057b7bf7
...
...
@@ -199,7 +199,7 @@ func (o *LogsOptions) Complete(f cmdutil.Factory, out io.Writer, cmd *cobra.Comm
builder
.
ResourceNames
(
"pods"
,
o
.
ResourceArg
)
}
if
selector
!=
""
{
builder
.
ResourceTypes
(
"pods"
)
.
SelectorParam
(
selector
)
builder
.
ResourceTypes
(
"pods"
)
.
Label
SelectorParam
(
selector
)
}
infos
,
err
:=
builder
.
Do
()
.
Infos
()
if
err
!=
nil
{
...
...
pkg/kubectl/cmd/resource/get.go
View file @
057b7bf7
...
...
@@ -233,7 +233,7 @@ func (options *GetOptions) Run(f cmdutil.Factory, cmd *cobra.Command, args []str
Unstructured
(
f
.
UnstructuredClientForMapping
,
mapper
,
typer
)
.
NamespaceParam
(
options
.
Namespace
)
.
DefaultNamespace
()
.
AllNamespaces
(
options
.
AllNamespaces
)
.
FilenameParam
(
options
.
ExplicitNamespace
,
&
options
.
FilenameOptions
)
.
SelectorParam
(
options
.
LabelSelector
)
.
Label
SelectorParam
(
options
.
LabelSelector
)
.
ExportParam
(
options
.
Export
)
.
RequestChunksOf
(
options
.
ChunkSize
)
.
IncludeUninitialized
(
cmdutil
.
ShouldIncludeUninitialized
(
cmd
,
false
))
.
// TODO: this needs to be better factored
...
...
@@ -450,7 +450,7 @@ func (options *GetOptions) watch(f cmdutil.Factory, cmd *cobra.Command, args []s
Unstructured
(
f
.
UnstructuredClientForMapping
,
mapper
,
typer
)
.
NamespaceParam
(
options
.
Namespace
)
.
DefaultNamespace
()
.
AllNamespaces
(
options
.
AllNamespaces
)
.
FilenameParam
(
options
.
ExplicitNamespace
,
&
options
.
FilenameOptions
)
.
SelectorParam
(
options
.
LabelSelector
)
.
Label
SelectorParam
(
options
.
LabelSelector
)
.
ExportParam
(
options
.
Export
)
.
RequestChunksOf
(
options
.
ChunkSize
)
.
IncludeUninitialized
(
includeUninitialized
)
.
...
...
pkg/kubectl/cmd/scale.go
View file @
057b7bf7
...
...
@@ -110,7 +110,7 @@ func RunScale(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []strin
FilenameParam
(
enforceNamespace
,
options
)
.
ResourceTypeOrNameArgs
(
all
,
args
...
)
.
Flatten
()
.
SelectorParam
(
selector
)
.
Label
SelectorParam
(
selector
)
.
Do
()
err
=
r
.
Err
()
if
resource
.
IsUsageError
(
err
)
{
...
...
pkg/kubectl/cmd/set/set_env.go
View file @
057b7bf7
...
...
@@ -240,7 +240,7 @@ func (o *EnvOptions) RunEnv(f cmdutil.Factory) error {
if
!
o
.
Local
{
b
=
b
.
SelectorParam
(
o
.
Selector
)
.
Label
SelectorParam
(
o
.
Selector
)
.
ResourceTypeOrNameArgs
(
o
.
All
,
o
.
From
)
.
Latest
()
}
else
{
...
...
@@ -304,7 +304,7 @@ func (o *EnvOptions) RunEnv(f cmdutil.Factory) error {
if
!
o
.
Local
{
b
=
b
.
SelectorParam
(
o
.
Selector
)
.
Label
SelectorParam
(
o
.
Selector
)
.
ResourceTypeOrNameArgs
(
o
.
All
,
o
.
Resources
...
)
.
Latest
()
}
else
{
...
...
pkg/kubectl/cmd/set/set_image.go
View file @
057b7bf7
...
...
@@ -149,7 +149,7 @@ func (o *ImageOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []st
if
!
o
.
Local
{
builder
=
builder
.
SelectorParam
(
o
.
Selector
)
.
Label
SelectorParam
(
o
.
Selector
)
.
ResourceTypeOrNameArgs
(
o
.
All
,
o
.
Resources
...
)
.
Latest
()
}
else
{
...
...
pkg/kubectl/cmd/set/set_resources.go
View file @
057b7bf7
...
...
@@ -153,7 +153,7 @@ func (o *ResourcesOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args
if
!
o
.
Local
{
builder
=
builder
.
SelectorParam
(
o
.
Selector
)
.
Label
SelectorParam
(
o
.
Selector
)
.
ResourceTypeOrNameArgs
(
o
.
All
,
args
...
)
.
Latest
()
}
else
{
...
...
pkg/kubectl/cmd/set/set_subject.go
View file @
057b7bf7
...
...
@@ -135,7 +135,7 @@ func (o *SubjectOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []
if
!
o
.
Local
{
builder
=
builder
.
SelectorParam
(
o
.
Selector
)
.
Label
SelectorParam
(
o
.
Selector
)
.
ResourceTypeOrNameArgs
(
o
.
All
,
args
...
)
.
Latest
()
}
else
{
...
...
pkg/kubectl/cmd/taint.go
View file @
057b7bf7
...
...
@@ -152,7 +152,7 @@ func (o *TaintOptions) Complete(f cmdutil.Factory, out io.Writer, cmd *cobra.Com
ContinueOnError
()
.
NamespaceParam
(
namespace
)
.
DefaultNamespace
()
if
o
.
selector
!=
""
{
o
.
builder
=
o
.
builder
.
SelectorParam
(
o
.
selector
)
.
ResourceTypes
(
"node"
)
o
.
builder
=
o
.
builder
.
Label
SelectorParam
(
o
.
selector
)
.
ResourceTypes
(
"node"
)
}
if
o
.
all
{
o
.
builder
=
o
.
builder
.
SelectAllParam
(
o
.
all
)
.
ResourceTypes
(
"node"
)
.
Flatten
()
.
Latest
()
...
...
@@ -160,7 +160,7 @@ func (o *TaintOptions) Complete(f cmdutil.Factory, out io.Writer, cmd *cobra.Com
if
!
o
.
all
&&
o
.
selector
==
""
&&
len
(
o
.
resources
)
>=
2
{
o
.
builder
=
o
.
builder
.
ResourceNames
(
"node"
,
o
.
resources
[
1
:
]
...
)
}
o
.
builder
=
o
.
builder
.
SelectorParam
(
o
.
selector
)
.
o
.
builder
=
o
.
builder
.
Label
SelectorParam
(
o
.
selector
)
.
Flatten
()
.
Latest
()
o
.
f
=
f
...
...
pkg/kubectl/resource/builder.go
View file @
057b7bf7
...
...
@@ -53,7 +53,7 @@ type Builder struct {
stream
bool
dir
bool
selector
*
string
labelSelector
*
string
selectAll
bool
includeUninitialized
bool
limitChunks
int64
...
...
@@ -274,24 +274,25 @@ func (b *Builder) ResourceNames(resource string, names ...string) *Builder {
return
b
}
// SelectorParam defines a selector that should be applied to the object types to load.
//
Label
SelectorParam defines a selector that should be applied to the object types to load.
// This will not affect files loaded from disk or URL. If the parameter is empty it is
// a no-op - to select all resources invoke `b.Selector(labels.Everything.String)`.
func
(
b
*
Builder
)
SelectorParam
(
s
string
)
*
Builder
{
// a no-op - to select all resources invoke `b.
Label
Selector(labels.Everything.String)`.
func
(
b
*
Builder
)
Label
SelectorParam
(
s
string
)
*
Builder
{
selector
:=
strings
.
TrimSpace
(
s
)
if
len
(
selector
)
==
0
{
return
b
}
if
b
.
selectAll
{
b
.
errs
=
append
(
b
.
errs
,
fmt
.
Errorf
(
"found non
empty
selector %q with previously set 'all' parameter. "
,
s
))
b
.
errs
=
append
(
b
.
errs
,
fmt
.
Errorf
(
"found non
-empty label
selector %q with previously set 'all' parameter. "
,
s
))
return
b
}
return
b
.
Selector
(
selector
)
return
b
.
Label
Selector
(
selector
)
}
// Selector accepts a selector directly, and if non nil will trigger a list action.
func
(
b
*
Builder
)
Selector
(
selector
string
)
*
Builder
{
b
.
selector
=
&
selector
// LabelSelector accepts a selector directly and will filter the resulting list by that object.
// Use LabelSelectorParam instead for user input.
func
(
b
*
Builder
)
LabelSelector
(
selector
string
)
*
Builder
{
b
.
labelSelector
=
&
selector
return
b
}
...
...
@@ -349,7 +350,7 @@ func (b *Builder) RequestChunksOf(chunkSize int64) *Builder {
// SelectEverythingParam
func
(
b
*
Builder
)
SelectAllParam
(
selectAll
bool
)
*
Builder
{
if
selectAll
&&
b
.
s
elector
!=
nil
{
if
selectAll
&&
b
.
labelS
elector
!=
nil
{
b
.
errs
=
append
(
b
.
errs
,
fmt
.
Errorf
(
"setting 'all' parameter but found a non empty selector. "
))
return
b
}
...
...
@@ -394,9 +395,9 @@ func (b *Builder) ResourceTypeOrNameArgs(allowEmptySelector bool, args ...string
b
.
ResourceTypes
(
SplitResourceArgument
(
args
[
0
])
...
)
case
len
(
args
)
==
1
:
b
.
ResourceTypes
(
SplitResourceArgument
(
args
[
0
])
...
)
if
b
.
s
elector
==
nil
&&
allowEmptySelector
{
if
b
.
labelS
elector
==
nil
&&
allowEmptySelector
{
selector
:=
labels
.
Everything
()
.
String
()
b
.
s
elector
=
&
selector
b
.
labelS
elector
=
&
selector
}
case
len
(
args
)
==
0
:
default
:
...
...
@@ -585,7 +586,7 @@ func (b *Builder) visitorResult() *Result {
if
b
.
selectAll
{
selector
:=
labels
.
Everything
()
.
String
()
b
.
s
elector
=
&
selector
b
.
labelS
elector
=
&
selector
}
// visit items specified by paths
...
...
@@ -594,7 +595,7 @@ func (b *Builder) visitorResult() *Result {
}
// visit selectors
if
b
.
s
elector
!=
nil
{
if
b
.
labelS
elector
!=
nil
{
return
b
.
visitBySelector
()
}
...
...
@@ -645,7 +646,7 @@ func (b *Builder) visitBySelector() *Result {
if
mapping
.
Scope
.
Name
()
!=
meta
.
RESTScopeNameNamespace
{
selectorNamespace
=
""
}
visitors
=
append
(
visitors
,
NewSelector
(
client
,
mapping
,
selectorNamespace
,
*
b
.
s
elector
,
b
.
export
,
b
.
includeUninitialized
,
b
.
limitChunks
))
visitors
=
append
(
visitors
,
NewSelector
(
client
,
mapping
,
selectorNamespace
,
*
b
.
labelS
elector
,
b
.
export
,
b
.
includeUninitialized
,
b
.
limitChunks
))
}
if
b
.
continueOnError
{
result
.
visitor
=
EagerVisitorList
(
visitors
)
...
...
@@ -820,12 +821,12 @@ func (b *Builder) visitByPaths() *Result {
}
visitors
=
NewDecoratedVisitor
(
visitors
,
RetrieveLatest
)
}
if
b
.
s
elector
!=
nil
{
selector
,
err
:=
labels
.
Parse
(
*
b
.
s
elector
)
if
b
.
labelS
elector
!=
nil
{
selector
,
err
:=
labels
.
Parse
(
*
b
.
labelS
elector
)
if
err
!=
nil
{
return
result
.
withError
(
fmt
.
Errorf
(
"the provided selector %q is not valid: %v"
,
b
.
s
elector
,
err
))
return
result
.
withError
(
fmt
.
Errorf
(
"the provided selector %q is not valid: %v"
,
b
.
labelS
elector
,
err
))
}
visitors
=
NewFilteredVisitor
(
visitors
,
FilterBySelector
(
selector
))
visitors
=
NewFilteredVisitor
(
visitors
,
FilterBy
Label
Selector
(
selector
))
}
result
.
visitor
=
visitors
result
.
sources
=
b
.
paths
...
...
pkg/kubectl/resource/builder_test.go
View file @
057b7bf7
...
...
@@ -46,6 +46,7 @@ import (
restclientwatch
"k8s.io/client-go/rest/watch"
utiltesting
"k8s.io/client-go/util/testing"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/api/legacyscheme"
)
var
(
...
...
@@ -697,7 +698,7 @@ func TestResourceByNameAndEmptySelector(t *testing.T) {
"/namespaces/test/pods/foo"
:
runtime
.
EncodeOrDie
(
corev1Codec
,
&
pods
.
Items
[
0
]),
}),
corev1Codec
)
.
NamespaceParam
(
"test"
)
.
SelectorParam
(
""
)
.
Label
SelectorParam
(
""
)
.
ResourceTypeOrNameArgs
(
true
,
"pods"
,
"foo"
)
singleItemImplied
:=
false
...
...
@@ -718,14 +719,14 @@ func TestResourceByNameAndEmptySelector(t *testing.T) {
}
}
func
TestSelector
(
t
*
testing
.
T
)
{
func
Test
Label
Selector
(
t
*
testing
.
T
)
{
pods
,
svc
:=
testData
()
labelKey
:=
metav1
.
LabelSelectorQueryParam
(
corev1GV
.
String
())
b
:=
NewBuilder
(
restmapper
,
LegacyCategoryExpander
,
scheme
.
Scheme
,
fakeClientWith
(
""
,
t
,
map
[
string
]
string
{
"/namespaces/test/pods?"
+
labelKey
+
"=a%3Db"
:
runtime
.
EncodeOrDie
(
corev1Codec
,
pods
),
"/namespaces/test/services?"
+
labelKey
+
"=a%3Db"
:
runtime
.
EncodeOrDie
(
corev1Codec
,
svc
),
}),
corev1Codec
)
.
SelectorParam
(
"a=b"
)
.
Label
SelectorParam
(
"a=b"
)
.
NamespaceParam
(
"test"
)
.
Flatten
()
...
...
@@ -751,9 +752,9 @@ func TestSelector(t *testing.T) {
}
}
func
TestSelectorRequiresKnownTypes
(
t
*
testing
.
T
)
{
func
Test
Label
SelectorRequiresKnownTypes
(
t
*
testing
.
T
)
{
b
:=
NewBuilder
(
restmapper
,
LegacyCategoryExpander
,
scheme
.
Scheme
,
fakeClient
(),
corev1Codec
)
.
SelectorParam
(
"a=b"
)
.
Label
SelectorParam
(
"a=b"
)
.
NamespaceParam
(
"test"
)
.
ResourceTypes
(
"unknown"
)
...
...
@@ -764,7 +765,7 @@ func TestSelectorRequiresKnownTypes(t *testing.T) {
func
TestSingleResourceType
(
t
*
testing
.
T
)
{
b
:=
NewBuilder
(
restmapper
,
LegacyCategoryExpander
,
scheme
.
Scheme
,
fakeClient
(),
corev1Codec
)
.
SelectorParam
(
"a=b"
)
.
Label
SelectorParam
(
"a=b"
)
.
SingleResourceType
()
.
ResourceTypeOrNameArgs
(
true
,
"pods,services"
)
...
...
@@ -1019,7 +1020,7 @@ func TestListObject(t *testing.T) {
b
:=
NewBuilder
(
restmapper
,
LegacyCategoryExpander
,
scheme
.
Scheme
,
fakeClientWith
(
""
,
t
,
map
[
string
]
string
{
"/namespaces/test/pods?"
+
labelKey
+
"=a%3Db"
:
runtime
.
EncodeOrDie
(
corev1Codec
,
pods
),
}),
corev1Codec
)
.
SelectorParam
(
"a=b"
)
.
Label
SelectorParam
(
"a=b"
)
.
NamespaceParam
(
"test"
)
.
ResourceTypeOrNameArgs
(
true
,
"pods"
)
.
Flatten
()
...
...
@@ -1053,7 +1054,7 @@ func TestListObjectWithDifferentVersions(t *testing.T) {
"/namespaces/test/pods?"
+
labelKey
+
"=a%3Db"
:
runtime
.
EncodeOrDie
(
corev1Codec
,
pods
),
"/namespaces/test/services?"
+
labelKey
+
"=a%3Db"
:
runtime
.
EncodeOrDie
(
corev1Codec
,
svc
),
}),
corev1Codec
)
.
SelectorParam
(
"a=b"
)
.
Label
SelectorParam
(
"a=b"
)
.
NamespaceParam
(
"test"
)
.
ResourceTypeOrNameArgs
(
true
,
"pods,services"
)
.
Flatten
()
.
...
...
pkg/kubectl/resource/selector.go
View file @
057b7bf7
...
...
@@ -30,7 +30,7 @@ type Selector struct {
Client
RESTClient
Mapping
*
meta
.
RESTMapping
Namespace
string
Selector
string
LabelSelector
string
Export
bool
IncludeUninitialized
bool
LimitChunks
int64
...
...
@@ -42,7 +42,7 @@ func NewSelector(client RESTClient, mapping *meta.RESTMapping, namespace string,
Client
:
client
,
Mapping
:
mapping
,
Namespace
:
namespace
,
Selector
:
selector
,
LabelSelector
:
selector
,
Export
:
export
,
IncludeUninitialized
:
includeUninitialized
,
LimitChunks
:
limitChunks
,
...
...
@@ -58,7 +58,7 @@ func (r *Selector) Visit(fn VisitorFunc) error {
r
.
ResourceMapping
()
.
GroupVersionKind
.
GroupVersion
()
.
String
(),
r
.
Export
,
&
metav1
.
ListOptions
{
LabelSelector
:
r
.
Selector
,
LabelSelector
:
r
.
Label
Selector
,
IncludeUninitialized
:
r
.
IncludeUninitialized
,
Limit
:
r
.
LimitChunks
,
Continue
:
continueToken
,
...
...
@@ -71,17 +71,17 @@ func (r *Selector) Visit(fn VisitorFunc) error {
if
errors
.
IsBadRequest
(
err
)
||
errors
.
IsNotFound
(
err
)
{
if
se
,
ok
:=
err
.
(
*
errors
.
StatusError
);
ok
{
// modify the message without hiding this is an API error
if
len
(
r
.
Selector
)
==
0
{
if
len
(
r
.
Label
Selector
)
==
0
{
se
.
ErrStatus
.
Message
=
fmt
.
Sprintf
(
"Unable to list %q: %v"
,
r
.
Mapping
.
Resource
,
se
.
ErrStatus
.
Message
)
}
else
{
se
.
ErrStatus
.
Message
=
fmt
.
Sprintf
(
"Unable to find %q that match the selector %q: %v"
,
r
.
Mapping
.
Resource
,
r
.
Selector
,
se
.
ErrStatus
.
Message
)
se
.
ErrStatus
.
Message
=
fmt
.
Sprintf
(
"Unable to find %q that match the selector %q: %v"
,
r
.
Mapping
.
Resource
,
r
.
Label
Selector
,
se
.
ErrStatus
.
Message
)
}
return
se
}
if
len
(
r
.
Selector
)
==
0
{
if
len
(
r
.
Label
Selector
)
==
0
{
return
fmt
.
Errorf
(
"Unable to list %q: %v"
,
r
.
Mapping
.
Resource
,
err
)
}
return
fmt
.
Errorf
(
"Unable to find %q that match the selector %q: %v"
,
r
.
Mapping
.
Resource
,
r
.
Selector
,
err
)
return
fmt
.
Errorf
(
"Unable to find %q that match the selector %q: %v"
,
r
.
Mapping
.
Resource
,
r
.
Label
Selector
,
err
)
}
return
err
}
...
...
@@ -107,7 +107,7 @@ func (r *Selector) Visit(fn VisitorFunc) error {
}
func
(
r
*
Selector
)
Watch
(
resourceVersion
string
)
(
watch
.
Interface
,
error
)
{
return
NewHelper
(
r
.
Client
,
r
.
Mapping
)
.
Watch
(
r
.
Namespace
,
resourceVersion
,
r
.
ResourceMapping
()
.
GroupVersionKind
.
GroupVersion
()
.
String
(),
r
.
Selector
)
return
NewHelper
(
r
.
Client
,
r
.
Mapping
)
.
Watch
(
r
.
Namespace
,
resourceVersion
,
r
.
ResourceMapping
()
.
GroupVersionKind
.
GroupVersion
()
.
String
(),
r
.
Label
Selector
)
}
// ResourceMapping returns the mapping for this resource and implements ResourceMapping
...
...
pkg/kubectl/resource/visitor.go
View file @
057b7bf7
...
...
@@ -691,7 +691,7 @@ func (v FilteredVisitor) Visit(fn VisitorFunc) error {
})
}
func
FilterBySelector
(
s
labels
.
Selector
)
FilterFunc
{
func
FilterBy
Label
Selector
(
s
labels
.
Selector
)
FilterFunc
{
return
func
(
info
*
Info
,
err
error
)
(
bool
,
error
)
{
if
err
!=
nil
{
return
false
,
err
...
...
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