From 99267d725c55788fc04c70cebbb18fb7d624a991 Mon Sep 17 00:00:00 2001 From: Brendan Burns Date: Tue, 24 Mar 2015 11:21:52 -0700 Subject: [PATCH] Add validation of args for create. --- pkg/kubectl/cmd/create.go | 11 +++++++++-- pkg/kubectl/cmd/create_test.go | 11 +++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/pkg/kubectl/cmd/create.go b/pkg/kubectl/cmd/create.go index 659f6ac3129..2b8dcc744b4 100644 --- a/pkg/kubectl/cmd/create.go +++ b/pkg/kubectl/cmd/create.go @@ -46,14 +46,21 @@ func (f *Factory) NewCmdCreate(out io.Writer) *cobra.Command { Long: create_long, Example: create_example, Run: func(cmd *cobra.Command, args []string) { - err := RunCreate(f, out, cmd, filenames) - cmdutil.CheckErr(err) + cmdutil.CheckErr(ValidateArgs(cmd, args)) + cmdutil.CheckErr(RunCreate(f, out, cmd, filenames)) }, } cmd.Flags().VarP(&filenames, "filename", "f", "Filename, directory, or URL to file to use to create the resource") return cmd } +func ValidateArgs(cmd *cobra.Command, args []string) error { + if len(args) != 0 { + return cmdutil.UsageError(cmd, "Unexpected args: %v", args) + } + return nil +} + func RunCreate(f *Factory, out io.Writer, cmd *cobra.Command, filenames util.StringList) error { schema, err := f.Validator() if err != nil { diff --git a/pkg/kubectl/cmd/create_test.go b/pkg/kubectl/cmd/create_test.go index ebd1d00cdef..05a5e662315 100644 --- a/pkg/kubectl/cmd/create_test.go +++ b/pkg/kubectl/cmd/create_test.go @@ -22,8 +22,19 @@ import ( "testing" "github.com/GoogleCloudPlatform/kubernetes/pkg/client" + "github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd" ) +func TestExtraArgsFail(t *testing.T) { + buf := bytes.NewBuffer([]byte{}) + + f, _, _ := NewAPIFactory() + c := f.NewCmdCreate(buf) + if cmd.ValidateArgs(c, []string{"rc"}) == nil { + t.Errorf("unexpected non-error") + } +} + func TestCreateObject(t *testing.T) { _, _, rc := testData() rc.Items[0].Name = "redis-master-controller"