From 017e42633f15817d3a295f7063fc2db0341ed600 Mon Sep 17 00:00:00 2001 From: Saarthak Gupta <79454214+saarthak2002@users.noreply.github.com> Date: Tue, 10 Nov 2026 12:15:01 -0800 Subject: [PATCH] shell: return flag parse errors from s3.bucket.create (#12544) --- weed/shell/command_s3_bucket_create.go | 2 +- weed/shell/command_s3_bucket_create_test.go | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/weed/shell/command_s3_bucket_create.go b/weed/shell/command_s3_bucket_create.go index 07f0eab1db..4e08dda5e4 100644 --- a/weed/shell/command_s3_bucket_create.go +++ b/weed/shell/command_s3_bucket_create.go @@ -59,7 +59,7 @@ func (c *commandS3BucketCreate) Do(args []string, commandEnv *CommandEnv, writer bucketOwner := bucketCommand.String("owner", "", "bucket owner identity name (for S3 IAM authentication)") withLock := bucketCommand.Bool("withLock", false, "enable Object Lock on the bucket (requires and enables versioning)") if err = bucketCommand.Parse(args); err != nil { - return nil + return err } if *bucketName == "" { diff --git a/weed/shell/command_s3_bucket_create_test.go b/weed/shell/command_s3_bucket_create_test.go index c409585fa3..8834c0791b 100644 --- a/weed/shell/command_s3_bucket_create_test.go +++ b/weed/shell/command_s3_bucket_create_test.go @@ -62,6 +62,17 @@ func TestS3BucketCreateRequestsExclusiveCreate(t *testing.T) { assert.Equal(t, "my-bucket", req.Entry.Name) } +func TestS3BucketCreateReturnsFlagParseError(t *testing.T) { + filerServer := &bucketCreateTestFilerServer{} + commandEnv, cleanup := newBucketCreateTestCommandEnv(t, filerServer) + defer cleanup() + + var output bytes.Buffer + err := (&commandS3BucketCreate{}).Do([]string{"-name", "my-bucket", "-withlock"}, commandEnv, &output) + require.EqualError(t, err, "flag provided but not defined: -withlock") + assert.Empty(t, filerServer.createRequests()) +} + func newBucketCreateTestCommandEnv(t *testing.T, filerServer filer_pb.SeaweedFilerServer) (*CommandEnv, func()) { t.Helper()