mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Change default output of 'label' command
Using simple, human understandable output instead of the form of 'kubectl get' command.
This commit is contained in:
		@@ -173,7 +173,7 @@ func RunLabel(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []stri
 | 
				
			|||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	labels, remove, err := parseLabels(labelArgs)
 | 
						lbls, remove, err := parseLabels(labelArgs)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return cmdutil.UsageError(cmd, err.Error())
 | 
							return cmdutil.UsageError(cmd, err.Error())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -204,7 +204,7 @@ func RunLabel(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []stri
 | 
				
			|||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		obj, err := cmdutil.UpdateObject(info, func(obj runtime.Object) error {
 | 
							obj, err := cmdutil.UpdateObject(info, func(obj runtime.Object) error {
 | 
				
			||||||
			err := labelFunc(obj, overwrite, resourceVersion, labels, remove)
 | 
								err := labelFunc(obj, overwrite, resourceVersion, lbls, remove)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return err
 | 
									return err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@@ -214,10 +214,16 @@ func RunLabel(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []stri
 | 
				
			|||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		printer, err := f.PrinterForMapping(cmd, info.Mapping, false)
 | 
							outputFormat := cmdutil.GetFlagString(cmd, "output")
 | 
				
			||||||
		if err != nil {
 | 
							if outputFormat == "" {
 | 
				
			||||||
			return err
 | 
								cmdutil.PrintSuccess(mapper, false, out, info.Mapping.Resource, info.Name, "labeled")
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								printer, err := f.PrinterForMapping(cmd, info.Mapping, false)
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
 | 
									return err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								return printer.PrintObj(obj, out)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return printer.PrintObj(obj, out)
 | 
							return nil
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -325,10 +325,7 @@ func TestLabelErrors(t *testing.T) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func TestLabelForResourceFromFile(t *testing.T) {
 | 
					func TestLabelForResourceFromFile(t *testing.T) {
 | 
				
			||||||
	pods, _, _ := testData()
 | 
						pods, _, _ := testData()
 | 
				
			||||||
 | 
					 | 
				
			||||||
	f, tf, codec := NewAPIFactory()
 | 
						f, tf, codec := NewAPIFactory()
 | 
				
			||||||
	tf.Printer = &testPrinter{}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	tf.Client = &client.FakeRESTClient{
 | 
						tf.Client = &client.FakeRESTClient{
 | 
				
			||||||
		Codec: codec,
 | 
							Codec: codec,
 | 
				
			||||||
		Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
 | 
							Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
 | 
				
			||||||
@@ -355,7 +352,6 @@ func TestLabelForResourceFromFile(t *testing.T) {
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
		}),
 | 
							}),
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	tf.Namespace = "test"
 | 
						tf.Namespace = "test"
 | 
				
			||||||
	tf.ClientConfig = &client.Config{Version: testapi.Version()}
 | 
						tf.ClientConfig = &client.Config{Version: testapi.Version()}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -363,25 +359,18 @@ func TestLabelForResourceFromFile(t *testing.T) {
 | 
				
			|||||||
	cmd := NewCmdLabel(f, buf)
 | 
						cmd := NewCmdLabel(f, buf)
 | 
				
			||||||
	cmd.Flags().Set("filename", "../../../examples/cassandra/cassandra.yaml")
 | 
						cmd.Flags().Set("filename", "../../../examples/cassandra/cassandra.yaml")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	cmd.SetOutput(buf)
 | 
					 | 
				
			||||||
	err := RunLabel(f, buf, cmd, []string{"a=b"})
 | 
						err := RunLabel(f, buf, cmd, []string{"a=b"})
 | 
				
			||||||
 | 
					 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		t.Fatalf("unexpected error: %v", err)
 | 
							t.Fatalf("unexpected error: %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if tf.Printer.(*testPrinter).Objects == nil {
 | 
						if !strings.Contains(buf.String(), "labeled") {
 | 
				
			||||||
		t.Errorf("unexpected print to default printer")
 | 
							t.Errorf("did not set labels: %s", buf.String())
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if !reflect.DeepEqual(tf.Printer.(*testPrinter).Objects[0].(*api.Pod).Labels, map[string]string{"a": "b"}) {
 | 
					 | 
				
			||||||
		t.Errorf("did not set labels: %#v", string(buf.Bytes()))
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func TestLabelMultipleObjects(t *testing.T) {
 | 
					func TestLabelMultipleObjects(t *testing.T) {
 | 
				
			||||||
	pods, _, _ := testData()
 | 
						pods, _, _ := testData()
 | 
				
			||||||
 | 
					 | 
				
			||||||
	f, tf, codec := NewAPIFactory()
 | 
						f, tf, codec := NewAPIFactory()
 | 
				
			||||||
	tf.Printer = &testPrinter{}
 | 
					 | 
				
			||||||
	tf.Client = &client.FakeRESTClient{
 | 
						tf.Client = &client.FakeRESTClient{
 | 
				
			||||||
		Codec: codec,
 | 
							Codec: codec,
 | 
				
			||||||
		Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
 | 
							Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
 | 
				
			||||||
@@ -412,19 +401,15 @@ func TestLabelMultipleObjects(t *testing.T) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	tf.Namespace = "test"
 | 
						tf.Namespace = "test"
 | 
				
			||||||
	tf.ClientConfig = &client.Config{Version: testapi.Version()}
 | 
						tf.ClientConfig = &client.Config{Version: testapi.Version()}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	buf := bytes.NewBuffer([]byte{})
 | 
						buf := bytes.NewBuffer([]byte{})
 | 
				
			||||||
 | 
					 | 
				
			||||||
	cmd := NewCmdLabel(f, buf)
 | 
						cmd := NewCmdLabel(f, buf)
 | 
				
			||||||
 | 
					 | 
				
			||||||
	cmd.Flags().Set("all", "true")
 | 
						cmd.Flags().Set("all", "true")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err := RunLabel(f, buf, cmd, []string{"pods", "a=b"}); err != nil {
 | 
						if err := RunLabel(f, buf, cmd, []string{"pods", "a=b"}); err != nil {
 | 
				
			||||||
		t.Fatalf("unexpected error: %v", err)
 | 
							t.Fatalf("unexpected error: %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if strings.Count(buf.String(), "labeled") != len(pods.Items) {
 | 
				
			||||||
	if tf.Printer.(*testPrinter).Objects == nil {
 | 
							t.Errorf("not all labels are set: %s", buf.String())
 | 
				
			||||||
		t.Errorf("unexpected non print to default printer")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if !reflect.DeepEqual(tf.Printer.(*testPrinter).Objects[0].(*api.Pod).Labels, map[string]string{"a": "b"}) {
 | 
					 | 
				
			||||||
		t.Errorf("did not set labels: %#v", string(buf.Bytes()))
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user