Updated err message when retrieving resources by name with --all-namespaces.

pull/6/head
Klaus Ma 2016-09-27 17:42:49 +08:00
parent bd3c11df8a
commit 005b8dad14
2 changed files with 21 additions and 8 deletions

View File

@ -1548,9 +1548,9 @@ __EOF__
# Clean up # Clean up
kubectl delete namespace my-namespace kubectl delete namespace my-namespace
############## ######################
# Pods in Namespaces # # Pods in Namespaces #
############## ######################
### Create a new namespace ### Create a new namespace
# Pre-condition: the other namespace does not exist # Pre-condition: the other namespace does not exist
@ -1569,6 +1569,9 @@ __EOF__
kube::test::get_object_assert 'pods --namespace=other' "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' kube::test::get_object_assert 'pods --namespace=other' "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:'
# Post-condition: verify shorthand `-n other` has the same results as `--namespace=other` # Post-condition: verify shorthand `-n other` has the same results as `--namespace=other`
kube::test::get_object_assert 'pods -n other' "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' kube::test::get_object_assert 'pods -n other' "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:'
# Post-condition: a resource cannot be retrieved by name across all namespaces
output_message=$(! kubectl get "${kube_flags[@]}" pod valid-pod --all-namespaces 2>&1)
kube::test::if_has_string "${output_message}" "a resource cannot be retrieved by name across all namespaces"
### Delete POD valid-pod in specific namespace ### Delete POD valid-pod in specific namespace
# Pre-condition: valid-pod POD exists # Pre-condition: valid-pod POD exists
@ -1580,9 +1583,9 @@ __EOF__
# Clean up # Clean up
kubectl delete namespace other kubectl delete namespace other
############## ###########
# Secrets # # Secrets #
############## ###########
### Create a new namespace ### Create a new namespace
# Pre-condition: the test-secrets namespace does not exist # Pre-condition: the test-secrets namespace does not exist

View File

@ -55,8 +55,9 @@ type Builder struct {
resources []string resources []string
namespace string namespace string
names []string allNamespace bool
names []string
resourceTuples []resourceTuple resourceTuples []resourceTuple
@ -296,6 +297,7 @@ func (b *Builder) AllNamespaces(allNamespace bool) *Builder {
if allNamespace { if allNamespace {
b.namespace = api.NamespaceAll b.namespace = api.NamespaceAll
} }
b.allNamespace = allNamespace
return b return b
} }
@ -644,7 +646,11 @@ func (b *Builder) visitByResource() *Result {
selectorNamespace = "" selectorNamespace = ""
} else { } else {
if len(b.namespace) == 0 { if len(b.namespace) == 0 {
return &Result{singular: isSingular, err: fmt.Errorf("namespace may not be empty when retrieving a resource by name")} errMsg := "namespace may not be empty when retrieving a resource by name"
if b.allNamespace {
errMsg = "a resource cannot be retrieved by name across all namespaces"
}
return &Result{singular: isSingular, err: fmt.Errorf(errMsg)}
} }
} }
@ -690,7 +696,11 @@ func (b *Builder) visitByName() *Result {
selectorNamespace = "" selectorNamespace = ""
} else { } else {
if len(b.namespace) == 0 { if len(b.namespace) == 0 {
return &Result{singular: isSingular, err: fmt.Errorf("namespace may not be empty when retrieving a resource by name")} errMsg := "namespace may not be empty when retrieving a resource by name"
if b.allNamespace {
errMsg = "a resource cannot be retrieved by name across all namespaces"
}
return &Result{singular: isSingular, err: fmt.Errorf(errMsg)}
} }
} }