diff --git a/pkg/kubectl/cmd/delete.go b/pkg/kubectl/cmd/delete.go index 6fac3d34c2..30b1872e3a 100644 --- a/pkg/kubectl/cmd/delete.go +++ b/pkg/kubectl/cmd/delete.go @@ -34,6 +34,7 @@ import ( cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" kubectlwait "k8s.io/kubernetes/pkg/kubectl/cmd/wait" "k8s.io/kubernetes/pkg/kubectl/genericclioptions" + "k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource" "k8s.io/kubernetes/pkg/kubectl/util/i18n" ) @@ -335,7 +336,7 @@ func (o *DeleteOptions) DeleteResult(r *resource.Result) error { DynamicClient: o.DynamicClient, Timeout: effectiveTimeout, - Printer: kubectlwait.NewDiscardingPrinter(), + Printer: printers.NewDiscardingPrinter(), ConditionFn: kubectlwait.IsDeleted, IOStreams: o.IOStreams, } diff --git a/pkg/kubectl/cmd/wait/BUILD b/pkg/kubectl/cmd/wait/BUILD index 621977eda9..ce1253f61e 100644 --- a/pkg/kubectl/cmd/wait/BUILD +++ b/pkg/kubectl/cmd/wait/BUILD @@ -46,6 +46,7 @@ go_test( embed = [":go_default_library"], deps = [ "//pkg/kubectl/genericclioptions:go_default_library", + "//pkg/kubectl/genericclioptions/printers:go_default_library", "//pkg/kubectl/genericclioptions/resource:go_default_library", "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", diff --git a/pkg/kubectl/cmd/wait/wait.go b/pkg/kubectl/cmd/wait/wait.go index 6838a8b91d..e75d5f418d 100644 --- a/pkg/kubectl/cmd/wait/wait.go +++ b/pkg/kubectl/cmd/wait/wait.go @@ -18,7 +18,6 @@ package wait import ( "fmt" - "io" "strings" "time" @@ -320,11 +319,3 @@ func (w ConditionalWait) isConditionMet(event watch.Event) (bool, error) { obj := event.Object.(*unstructured.Unstructured) return w.checkCondition(obj) } - -// NewDiscardingPrinter is a printer that discards all objects -// TODO use the real discarding printer from a different pull I just opened. -func NewDiscardingPrinter() printers.ResourcePrinterFunc { - return printers.ResourcePrinterFunc(func(runtime.Object, io.Writer) error { - return nil - }) -} diff --git a/pkg/kubectl/cmd/wait/wait_test.go b/pkg/kubectl/cmd/wait/wait_test.go index b26f3060a9..6ef63357bd 100644 --- a/pkg/kubectl/cmd/wait/wait_test.go +++ b/pkg/kubectl/cmd/wait/wait_test.go @@ -34,6 +34,7 @@ import ( dynamicfakeclient "k8s.io/client-go/dynamic/fake" clienttesting "k8s.io/client-go/testing" "k8s.io/kubernetes/pkg/kubectl/genericclioptions" + "k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers" "k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource" ) @@ -222,7 +223,7 @@ func TestWaitForDeletion(t *testing.T) { DynamicClient: fakeClient, Timeout: test.timeout, - Printer: NewDiscardingPrinter(), + Printer: printers.NewDiscardingPrinter(), ConditionFn: IsDeleted, IOStreams: genericclioptions.NewTestIOStreamsDiscard(), } @@ -454,7 +455,7 @@ func TestWaitForCondition(t *testing.T) { DynamicClient: fakeClient, Timeout: test.timeout, - Printer: NewDiscardingPrinter(), + Printer: printers.NewDiscardingPrinter(), ConditionFn: ConditionalWait{conditionName: "the-condition", conditionStatus: "status-value"}.IsConditionMet, IOStreams: genericclioptions.NewTestIOStreamsDiscard(), } diff --git a/pkg/kubectl/genericclioptions/printers/BUILD b/pkg/kubectl/genericclioptions/printers/BUILD index f62c55053e..c29044dc63 100644 --- a/pkg/kubectl/genericclioptions/printers/BUILD +++ b/pkg/kubectl/genericclioptions/printers/BUILD @@ -3,6 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "go_default_library", srcs = [ + "discard.go", "interface.go", "json.go", "name.go", diff --git a/pkg/kubectl/genericclioptions/printers/discard.go b/pkg/kubectl/genericclioptions/printers/discard.go new file mode 100644 index 0000000000..cd934976da --- /dev/null +++ b/pkg/kubectl/genericclioptions/printers/discard.go @@ -0,0 +1,30 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package printers + +import ( + "io" + + "k8s.io/apimachinery/pkg/runtime" +) + +// NewDiscardingPrinter is a printer that discards all objects +func NewDiscardingPrinter() ResourcePrinterFunc { + return ResourcePrinterFunc(func(runtime.Object, io.Writer) error { + return nil + }) +} diff --git a/pkg/kubectl/genericclioptions/printers/interface.go b/pkg/kubectl/genericclioptions/printers/interface.go index a42a136a98..b59a935fca 100644 --- a/pkg/kubectl/genericclioptions/printers/interface.go +++ b/pkg/kubectl/genericclioptions/printers/interface.go @@ -25,6 +25,11 @@ import ( // ResourcePrinterFunc is a function that can print objects type ResourcePrinterFunc func(runtime.Object, io.Writer) error +// PrintObj implements ResourcePrinter +func (fn ResourcePrinterFunc) PrintObj(obj runtime.Object, w io.Writer) error { + return fn(obj, w) +} + // ResourcePrinter is an interface that knows how to print runtime objects. type ResourcePrinter interface { // Print receives a runtime object, formats it and prints it to a writer.