From 8b0868b76d354ce8a9223402608fa1441e810246 Mon Sep 17 00:00:00 2001 From: Davanum Srinivas Date: Thu, 7 Jul 2016 11:43:02 -0400 Subject: [PATCH] Fix kubectl run to print object on dry run Originally Authored By tnachen in PR: https://github.com/kubernetes/kubernetes/pull/25842 Fixes #19636 --- pkg/kubectl/cmd/run.go | 4 ++-- pkg/kubectl/cmd/run_test.go | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pkg/kubectl/cmd/run.go b/pkg/kubectl/cmd/run.go index 6558a01c327..6a1c8692de1 100644 --- a/pkg/kubectl/cmd/run.go +++ b/pkg/kubectl/cmd/run.go @@ -278,7 +278,7 @@ func Run(f *cmdutil.Factory, cmdIn io.Reader, cmdOut, cmdErr io.Writer, cmd *cob } outputFormat := cmdutil.GetFlagString(cmd, "output") - if outputFormat != "" { + if outputFormat != "" || cmdutil.GetDryRunFlag(cmd) { return f.PrintObject(cmd, mapper, obj, cmdOut) } cmdutil.PrintSuccess(mapper, false, cmdOut, mapping.Resource, args[0], "created") @@ -432,7 +432,7 @@ func generateService(f *cmdutil.Factory, cmd *cobra.Command, args []string, serv return err } - if cmdutil.GetFlagString(cmd, "output") != "" { + if cmdutil.GetFlagString(cmd, "output") != "" || cmdutil.GetDryRunFlag(cmd) { return f.PrintObject(cmd, mapper, obj, out) } cmdutil.PrintSuccess(mapper, false, out, mapping.Resource, args[0], "created") diff --git a/pkg/kubectl/cmd/run_test.go b/pkg/kubectl/cmd/run_test.go index ffec144537e..e4007592a88 100644 --- a/pkg/kubectl/cmd/run_test.go +++ b/pkg/kubectl/cmd/run_test.go @@ -266,6 +266,7 @@ func TestGenerateService(t *testing.T) { sawPOST := false f, tf, codec := NewAPIFactory() tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: testapi.Default.GroupVersion()}} + tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ Codec: codec, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { @@ -299,9 +300,9 @@ func TestGenerateService(t *testing.T) { }), } cmd := &cobra.Command{} - cmd.Flags().String("output", "", "") cmd.Flags().Bool(cmdutil.ApplyAnnotationsFlag, false, "") cmd.Flags().Bool("record", false, "Record current kubectl command in the resource annotation.") + cmdutil.AddPrinterFlags(cmd) cmdutil.AddInclude3rdPartyFlags(cmd) addRunFlags(cmd)