From 726dccc6bb1c5c0bcde9f913d60af1b50babb9e3 Mon Sep 17 00:00:00 2001 From: zhouya0 Date: Sat, 12 Oct 2019 11:19:50 +0800 Subject: [PATCH] fix kubectl delete semantic error --- .../src/k8s.io/cli-runtime/pkg/resource/builder.go | 9 ++++++++- .../k8s.io/cli-runtime/pkg/resource/builder_test.go | 11 +++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/staging/src/k8s.io/cli-runtime/pkg/resource/builder.go b/staging/src/k8s.io/cli-runtime/pkg/resource/builder.go index cf28696db10..5a526d505cf 100644 --- a/staging/src/k8s.io/cli-runtime/pkg/resource/builder.go +++ b/staging/src/k8s.io/cli-runtime/pkg/resource/builder.go @@ -820,7 +820,14 @@ func (b *Builder) visitorResult() *Result { } if len(b.resources) != 0 { - return &Result{err: fmt.Errorf("resource(s) were provided, but no name, label selector, or --all flag specified")} + for _, r := range b.resources { + _, err := b.mappingFor(r) + if err != nil { + return &Result{err: err} + } else { + return &Result{err: fmt.Errorf("resource(s) were provided, but no name, label selector, or --all flag specified")} + } + } } return &Result{err: missingResourceError} } diff --git a/staging/src/k8s.io/cli-runtime/pkg/resource/builder_test.go b/staging/src/k8s.io/cli-runtime/pkg/resource/builder_test.go index 426dcb20a3a..5f5fe433ae1 100644 --- a/staging/src/k8s.io/cli-runtime/pkg/resource/builder_test.go +++ b/staging/src/k8s.io/cli-runtime/pkg/resource/builder_test.go @@ -1228,7 +1228,18 @@ func TestFieldSelectorRequiresKnownTypes(t *testing.T) { t.Errorf("unexpected non-error") } } +func TestNoSelectorUnknowResourceType(t *testing.T) { + b := newDefaultBuilder(). + NamespaceParam("test"). + ResourceTypeOrNameArgs(false, "unknown") + err := b.Do().Err() + if err != nil { + if !strings.Contains(err.Error(), "server doesn't have a resource type \"unknown\"") { + t.Fatalf("unexpected error: %v", err) + } + } +} func TestSingleResourceType(t *testing.T) { b := newDefaultBuilder(). LabelSelectorParam("a=b").