From 11ad2cf2ff514f6dfc9797740b603d8ad1e88819 Mon Sep 17 00:00:00 2001 From: juanvallejo Date: Wed, 9 Nov 2016 16:28:36 -0500 Subject: [PATCH] Remove duplicate describer errs The `describe` command iterates through a list of infos received from the server and aggregates a list of errors while attempting to call each resource's respective describer. When a resource exists, but does not have a describer set, such as `Event`, the `describe` command outputs the same error `error: no description has been implemented for "Event"` for each info. ``` $ kubectl describe events no description has been implemented for "Event" no description has been implemented for "Event" no description has been implemented for "Event" no description has been implemented for "Event" no description has been implemented for "Event" no description has been implemented for "Event" no description has been implemented for "Event" no description has been implemented for "Event" no description has been implemented for "Event" no description has been implemented for "Event" no description has been implemented for "Event" no description has been implemented for "Event" no description has been implemented for "Event" no description has been implemented for "Event" ``` --- pkg/kubectl/cmd/describe.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkg/kubectl/cmd/describe.go b/pkg/kubectl/cmd/describe.go index ee464c65ada..1a324956dd3 100644 --- a/pkg/kubectl/cmd/describe.go +++ b/pkg/kubectl/cmd/describe.go @@ -31,6 +31,7 @@ import ( "k8s.io/kubernetes/pkg/kubectl/resource" "k8s.io/kubernetes/pkg/runtime" utilerrors "k8s.io/kubernetes/pkg/util/errors" + "k8s.io/kubernetes/pkg/util/sets" ) var ( @@ -133,17 +134,26 @@ func RunDescribe(f cmdutil.Factory, out, cmdErr io.Writer, cmd *cobra.Command, a allErrs = append(allErrs, err) } + errs := sets.NewString() first := true for _, info := range infos { mapping := info.ResourceMapping() describer, err := f.Describer(mapping) if err != nil { + if errs.Has(err.Error()) { + continue + } allErrs = append(allErrs, err) + errs.Insert(err.Error()) continue } s, err := describer.Describe(info.Namespace, info.Name, *describerSettings) if err != nil { + if errs.Has(err.Error()) { + continue + } allErrs = append(allErrs, err) + errs.Insert(err.Error()) continue } if first {