diff --git a/pkg/kubectl/cmd/rollingupdate.go b/pkg/kubectl/cmd/rollingupdate.go index 01017d8a243..b85b0cf6887 100644 --- a/pkg/kubectl/cmd/rollingupdate.go +++ b/pkg/kubectl/cmd/rollingupdate.go @@ -28,6 +28,7 @@ import ( "github.com/spf13/cobra" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/errors" + "k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/kubectl" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -138,6 +139,7 @@ func RunRollingUpdate(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, arg interval := cmdutil.GetFlagDuration(cmd, "poll-interval") timeout := cmdutil.GetFlagDuration(cmd, "timeout") dryrun := cmdutil.GetFlagBool(cmd, "dry-run") + outputFormat := cmdutil.GetFlagString(cmd, "output") cmdNamespace, enforceNamespace, err := f.DefaultNamespace() if err != nil { @@ -263,12 +265,17 @@ func RunRollingUpdate(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, arg } if dryrun { oldRcData := &bytes.Buffer{} - if err := f.PrintObject(cmd, oldRc, oldRcData); err != nil { - return err - } newRcData := &bytes.Buffer{} - if err := f.PrintObject(cmd, newRc, newRcData); err != nil { - return err + if outputFormat == "" { + oldRcData.WriteString(oldRc.Name) + newRcData.WriteString(newRc.Name) + } else { + if err := f.PrintObject(cmd, oldRc, oldRcData); err != nil { + return err + } + if err := f.PrintObject(cmd, newRc, newRcData); err != nil { + return err + } } fmt.Fprintf(out, "Rolling from:\n%s\nTo:\n%s\n", string(oldRcData.Bytes()), string(newRcData.Bytes())) return nil @@ -297,11 +304,25 @@ func RunRollingUpdate(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, arg return err } + message := "rolling updated" if keepOldName { - fmt.Fprintf(out, "%s\n", oldName) + newRc.Name = oldName } else { - fmt.Fprintf(out, "%s\n", newRc.Name) + message = fmt.Sprintf("rolling updated to %q", newRc.Name) } + newRc, err = client.ReplicationControllers(cmdNamespace).Get(newRc.Name) + if err != nil { + return err + } + if outputFormat != "" { + return f.PrintObject(cmd, newRc, out) + } + _, kind, err := api.Scheme.ObjectVersionAndKind(newRc) + if err != nil { + return err + } + _, res := meta.KindToResource(kind, false) + cmdutil.PrintSuccess(mapper, false, out, res, oldName, message) return nil }