Merge pull request #9705 from hurf/label4describe

Add label support for kubectl describe
pull/6/head
Fabio Yeon 2015-06-15 19:33:09 -07:00
commit 0453f9ea9d
5 changed files with 29 additions and 11 deletions

View File

@ -275,6 +275,8 @@ _kubectl_describe()
flags+=("--help")
flags+=("-h")
flags+=("--selector=")
two_word_flags+=("-l")
must_have_one_flag=()
must_have_one_noun=()

View File

@ -22,12 +22,16 @@ $ kubectl describe nodes kubernetes-minion-emt8.c.myproject.internal
// Describe a pod
$ kubectl describe pods/nginx
// Describe pods by label name=myLabel
$ kubectl describe po -l name=myLabel
```
### Options
```
-h, --help=false: help for describe
-l, --selector="": Selector (label query) to filter on
```
### Options inherited from parent commands
@ -62,6 +66,6 @@ $ kubectl describe pods/nginx
### SEE ALSO
* [kubectl](kubectl.md) - kubectl controls the Kubernetes cluster manager
###### Auto generated by spf13/cobra at 2015-05-21 10:33:11.177122438 +0000 UTC
###### Auto generated by spf13/cobra at 2015-06-12 06:44:05.105790085 +0000 UTC
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/kubectl_describe.md?pixel)]()

View File

@ -25,6 +25,10 @@ given resource.
\fB\-h\fP, \fB\-\-help\fP=false
help for describe
.PP
\fB\-l\fP, \fB\-\-selector\fP=""
Selector (label query) to filter on
.SH OPTIONS INHERITED FROM PARENT COMMANDS
.PP
@ -135,6 +139,9 @@ $ kubectl describe nodes kubernetes\-minion\-emt8.c.myproject.internal
// Describe a pod
$ kubectl describe pods/nginx
// Describe pods by label name=myLabel
$ kubectl describe po \-l name=myLabel
.fi
.RE

View File

@ -43,17 +43,22 @@ given resource.`,
$ kubectl describe nodes kubernetes-minion-emt8.c.myproject.internal
// Describe a pod
$ kubectl describe pods/nginx`,
$ kubectl describe pods/nginx
// Describe pods by label name=myLabel
$ kubectl describe po -l name=myLabel`,
Run: func(cmd *cobra.Command, args []string) {
err := RunDescribe(f, out, cmd, args)
cmdutil.CheckErr(err)
},
ValidArgs: kubectl.DescribableResources(),
}
cmd.Flags().StringP("selector", "l", "", "Selector (label query) to filter on")
return cmd
}
func RunDescribe(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []string) error {
selector := cmdutil.GetFlagString(cmd, "selector")
cmdNamespace, err := f.DefaultNamespace()
if err != nil {
return err
@ -63,6 +68,7 @@ func RunDescribe(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []s
r := resource.NewBuilder(mapper, typer, f.ClientMapperForCommand()).
ContinueOnError().
NamespaceParam(cmdNamespace).DefaultNamespace().
SelectorParam(selector).
ResourceTypeOrNameArgs(false, args...).
Flatten().
Do()
@ -86,16 +92,15 @@ func RunDescribe(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []s
}
return err
}
if len(infos) > 1 {
return fmt.Errorf("multiple resources provided: %v", args)
}
info := infos[0]
s, err := describer.Describe(info.Namespace, info.Name)
if err != nil {
return err
for _, info := range infos {
s, err := describer.Describe(info.Namespace, info.Name)
if err != nil {
return err
}
fmt.Fprintf(out, "%s\n\n", s)
}
fmt.Fprintf(out, "%s\n", s)
return nil
}

View File

@ -44,7 +44,7 @@ func TestDescribeUnknownSchemaObject(t *testing.T) {
t.Errorf("unexpected describer: %#v", d)
}
if buf.String() != fmt.Sprintf("%s\n", d.Output) {
if buf.String() != fmt.Sprintf("%s\n\n", d.Output) {
t.Errorf("unexpected output: %s", buf.String())
}
}