diff --git a/pkg/cmd/scale/scale.go b/pkg/cmd/scale/scale.go index 9571351d4..2aaa99191 100644 --- a/pkg/cmd/scale/scale.go +++ b/pkg/cmd/scale/scale.go @@ -209,13 +209,10 @@ func (o *ScaleOptions) RunScale() error { return err } - infos := []*resource.Info{} - r.Visit(func(info *resource.Info, err error) error { - if err == nil { - infos = append(infos, info) - } - return nil - }) + infos, err := r.Infos() + if err != nil { + return err + } if len(o.ResourceVersion) != 0 && len(infos) > 1 { return fmt.Errorf("cannot use --resource-version with multiple resources") @@ -234,17 +231,16 @@ func (o *ScaleOptions) RunScale() error { waitForReplicas = scale.NewRetryParams(1*time.Second, o.Timeout) } - counter := 0 - err = r.Visit(func(info *resource.Info, err error) error { - if err != nil { - return err - } - counter++ + if len(infos) == 0 { + return fmt.Errorf("no objects passed to scale") + } + for _, info := range infos { mapping := info.ResourceMapping() if o.dryRunStrategy == cmdutil.DryRunClient { return o.PrintObj(info.Object, o.Out) } + if err := o.scaler.Scale(info.Namespace, info.Name, uint(o.Replicas), precondition, retry, waitForReplicas, mapping.Resource, o.dryRunStrategy == cmdutil.DryRunServer); err != nil { return err } @@ -263,14 +259,12 @@ func (o *ScaleOptions) RunScale() error { } } - return o.PrintObj(info.Object, o.Out) - }) - if err != nil { - return err - } - if counter == 0 { - return fmt.Errorf("no objects passed to scale") + err := o.PrintObj(info.Object, o.Out) + if err != nil { + return err + } } + return nil }