From a8987b661abed00cfb484c3b711c214e2a240d85 Mon Sep 17 00:00:00 2001 From: kargakis Date: Wed, 8 Apr 2015 15:34:07 +0200 Subject: [PATCH] describe: Support resource type/name syntax This makes `kubectl describe` resource syntax consistent with `kubectl delete` --- pkg/kubectl/cmd/describe.go | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/pkg/kubectl/cmd/describe.go b/pkg/kubectl/cmd/describe.go index fbecc20fa8c..fcb2f24714e 100644 --- a/pkg/kubectl/cmd/describe.go +++ b/pkg/kubectl/cmd/describe.go @@ -20,8 +20,10 @@ import ( "fmt" "io" - cmdutil "github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd/util" "github.com/spf13/cobra" + + cmdutil "github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd/util" + "github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/resource" ) func NewCmdDescribe(f *cmdutil.Factory, out io.Writer) *cobra.Command { @@ -46,9 +48,18 @@ func RunDescribe(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []s return err } - mapper, _ := f.Object() - // TODO: use resource.Builder instead - mapping, namespace, name, err := cmdutil.ResourceFromArgs(cmd, args, mapper, cmdNamespace) + mapper, typer := f.Object() + r := resource.NewBuilder(mapper, typer, f.ClientMapperForCommand()). + ContinueOnError(). + NamespaceParam(cmdNamespace).DefaultNamespace(). + ResourceTypeOrNameArgs(false, args...). + Flatten(). + Do() + err = r.Err() + if err != nil { + return err + } + mapping, err := r.ResourceMapping() if err != nil { return err } @@ -57,8 +68,13 @@ func RunDescribe(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []s if err != nil { return err } + infos, err := r.Infos() + if err != nil { + return err + } + info := infos[0] - s, err := describer.Describe(namespace, name) + s, err := describer.Describe(info.Namespace, info.Name) if err != nil { return err }