From 1e71359a77e71d20a55fc48cea41ca0586be7d45 Mon Sep 17 00:00:00 2001 From: juanvallejo Date: Wed, 20 Jul 2016 16:24:29 -0400 Subject: [PATCH] fix annotate.go single resource check --- pkg/kubectl/cmd/annotate.go | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/pkg/kubectl/cmd/annotate.go b/pkg/kubectl/cmd/annotate.go index 18682ebc7a8..03c0b2fdbed 100644 --- a/pkg/kubectl/cmd/annotate.go +++ b/pkg/kubectl/cmd/annotate.go @@ -188,16 +188,7 @@ func (o *AnnotateOptions) Complete(f *cmdutil.Factory, out io.Writer, cmd *cobra // Validate checks to the AnnotateOptions to see if there is sufficient information run the command. func (o AnnotateOptions) Validate(args []string) error { - if err := validateAnnotations(o.removeAnnotations, o.newAnnotations); err != nil { - return err - } - - // only apply resource version locking on a single resource - if len(o.resources) > 1 && len(o.resourceVersion) > 0 { - return fmt.Errorf("--resource-version may only be used with a single resource") - } - - return nil + return validateAnnotations(o.removeAnnotations, o.newAnnotations) } // RunAnnotate does the work @@ -207,6 +198,17 @@ func (o AnnotateOptions) RunAnnotate() error { return err } + var singularResource bool + r.IntoSingular(&singularResource) + + // only apply resource version locking on a single resource. + // we must perform this check after o.builder.Do() as + // []o.resources can not not accurately return the proper number + // of resources when they are not passed in "resource/name" format. + if !singularResource && len(o.resourceVersion) > 0 { + return fmt.Errorf("--resource-version may only be used with a single resource") + } + return r.Visit(func(info *resource.Info, err error) error { if err != nil { return err