Merge pull request #55371 from charrywanganthony/showlabel

Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Using --show-labels with incompatible ‘kubectl get’ arguments should …

…error out

**What this PR does / why we need it**:
According to @ahmetb 's [issue](https://github.com/kubernetes/kubernetes/issues/55290)  
Under specific circumstances, current behavior is that the `--show-labels` simply doesn’t make a difference since it’s not applicable.  

**Which issue(s) this PR fixes** :
Fixes #55290 

**Release note**:

```release-note
NONE
```
pull/6/head
Kubernetes Submit Queue 2017-11-16 08:03:18 -08:00 committed by GitHub
commit 2f2d49442f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 2 deletions

View File

@ -145,7 +145,7 @@ func NewCmdGet(f cmdutil.Factory, out io.Writer, errOut io.Writer) *cobra.Comman
Example: getExample,
Run: func(cmd *cobra.Command, args []string) {
cmdutil.CheckErr(options.Complete(f, cmd, args))
cmdutil.CheckErr(options.Validate())
cmdutil.CheckErr(options.Validate(cmd))
cmdutil.CheckErr(options.Run(f, cmd, args))
},
SuggestFor: []string{"list", "ps"},
@ -209,10 +209,16 @@ func (options *GetOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args
}
// Validate checks the set of flags provided by the user.
func (options *GetOptions) Validate() error {
func (options *GetOptions) Validate(cmd *cobra.Command) error {
if len(options.Raw) > 0 && (options.Watch || options.WatchOnly || len(options.LabelSelector) > 0 || options.Export) {
return fmt.Errorf("--raw may not be specified with other flags that filter the server request or alter the output")
}
if cmdutil.GetFlagBool(cmd, "show-labels") {
outputOption := cmd.Flags().Lookup("output").Value.String()
if outputOption != "" && outputOption != "wide" {
return fmt.Errorf("--show-labels option cannot be used with %s printer", outputOption)
}
}
return nil
}