From 0851ca95221aebb01ed36ea044e4a1ce62b55cf1 Mon Sep 17 00:00:00 2001 From: derekwaynecarr Date: Fri, 30 Jan 2015 16:11:46 -0500 Subject: [PATCH] Do not provide a namespace on request url if resource does not require it --- pkg/kubectl/resource/builder.go | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/pkg/kubectl/resource/builder.go b/pkg/kubectl/resource/builder.go index 04411ed3940..51fa5906469 100644 --- a/pkg/kubectl/resource/builder.go +++ b/pkg/kubectl/resource/builder.go @@ -318,7 +318,11 @@ func (b *Builder) visitorResult() *Result { if err != nil { return &Result{err: err} } - visitors = append(visitors, NewSelector(client, mapping, b.namespace, b.selector)) + selectorNamespace := b.namespace + if mapping.Scope.Name() != meta.RESTScopeNameNamespace { + selectorNamespace = "" + } + visitors = append(visitors, NewSelector(client, mapping, selectorNamespace, b.selector)) } if b.continueOnError { return &Result{visitor: EagerVisitorList(visitors), sources: visitors} @@ -337,14 +341,19 @@ func (b *Builder) visitorResult() *Result { if len(b.resources) > 1 { return &Result{singular: true, err: fmt.Errorf("you must specify only one resource")} } - if len(b.namespace) == 0 { - return &Result{singular: true, err: fmt.Errorf("namespace may not be empty when retrieving a resource by name")} - } mappings, err := b.resourceMappings() if err != nil { return &Result{singular: true, err: err} } - client, err := b.mapper.ClientForMapping(mappings[0]) + mapping := mappings[0] + if mapping.Scope.Name() != meta.RESTScopeNameNamespace { + b.namespace = "" + } else { + if len(b.namespace) == 0 { + return &Result{singular: true, err: fmt.Errorf("namespace may not be empty when retrieving a resource by name")} + } + } + client, err := b.mapper.ClientForMapping(mapping) if err != nil { return &Result{singular: true, err: err} }