From f7655dab9bc3bf77e20f9ba9dc5b664b0d0aeed8 Mon Sep 17 00:00:00 2001 From: Ben McClelland Date: Sat, 9 Mar 2024 10:20:15 -0800 Subject: [PATCH] fix: delete object xml response should be DeleteResult instead of DeleteObjectsResult --- backend/azure/azure.go | 4 ++-- backend/backend.go | 6 +++--- backend/posix/posix.go | 4 ++-- backend/s3proxy/s3.go | 6 +++--- s3api/controllers/backend_moq_test.go | 4 ++-- s3api/controllers/base_test.go | 4 ++-- s3response/s3response.go | 2 +- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/backend/azure/azure.go b/backend/azure/azure.go index d77bf7a..2961de6 100644 --- a/backend/azure/azure.go +++ b/backend/azure/azure.go @@ -422,7 +422,7 @@ func (az *Azure) DeleteObject(ctx context.Context, input *s3.DeleteObjectInput) return azureErrToS3Err(err) } -func (az *Azure) DeleteObjects(ctx context.Context, input *s3.DeleteObjectsInput) (s3response.DeleteObjectsResult, error) { +func (az *Azure) DeleteObjects(ctx context.Context, input *s3.DeleteObjectsInput) (s3response.DeleteResult, error) { delResult, errs := []types.DeletedObject{}, []types.Error{} for _, obj := range input.Delete.Objects { err := az.DeleteObject(ctx, &s3.DeleteObjectInput{ @@ -449,7 +449,7 @@ func (az *Azure) DeleteObjects(ctx context.Context, input *s3.DeleteObjectsInput } } - return s3response.DeleteObjectsResult{ + return s3response.DeleteResult{ Deleted: delResult, Error: errs, }, nil diff --git a/backend/backend.go b/backend/backend.go index 901980e..64ab197 100644 --- a/backend/backend.go +++ b/backend/backend.go @@ -61,7 +61,7 @@ type Backend interface { ListObjects(context.Context, *s3.ListObjectsInput) (*s3.ListObjectsOutput, error) ListObjectsV2(context.Context, *s3.ListObjectsV2Input) (*s3.ListObjectsV2Output, error) DeleteObject(context.Context, *s3.DeleteObjectInput) error - DeleteObjects(context.Context, *s3.DeleteObjectsInput) (s3response.DeleteObjectsResult, error) + DeleteObjects(context.Context, *s3.DeleteObjectsInput) (s3response.DeleteResult, error) PutObjectAcl(context.Context, *s3.PutObjectAclInput) error ListObjectVersions(context.Context, *s3.ListObjectVersionsInput) (*s3.ListObjectVersionsOutput, error) @@ -175,8 +175,8 @@ func (BackendUnsupported) ListObjectsV2(context.Context, *s3.ListObjectsV2Input) func (BackendUnsupported) DeleteObject(context.Context, *s3.DeleteObjectInput) error { return s3err.GetAPIError(s3err.ErrNotImplemented) } -func (BackendUnsupported) DeleteObjects(context.Context, *s3.DeleteObjectsInput) (s3response.DeleteObjectsResult, error) { - return s3response.DeleteObjectsResult{}, s3err.GetAPIError(s3err.ErrNotImplemented) +func (BackendUnsupported) DeleteObjects(context.Context, *s3.DeleteObjectsInput) (s3response.DeleteResult, error) { + return s3response.DeleteResult{}, s3err.GetAPIError(s3err.ErrNotImplemented) } func (BackendUnsupported) PutObjectAcl(context.Context, *s3.PutObjectAclInput) error { return s3err.GetAPIError(s3err.ErrNotImplemented) diff --git a/backend/posix/posix.go b/backend/posix/posix.go index 8ff09eb..da609bf 100644 --- a/backend/posix/posix.go +++ b/backend/posix/posix.go @@ -1189,7 +1189,7 @@ func (p *Posix) removeParents(bucket, object string) error { return nil } -func (p *Posix) DeleteObjects(ctx context.Context, input *s3.DeleteObjectsInput) (s3response.DeleteObjectsResult, error) { +func (p *Posix) DeleteObjects(ctx context.Context, input *s3.DeleteObjectsInput) (s3response.DeleteResult, error) { // delete object already checks bucket delResult, errs := []types.DeletedObject{}, []types.Error{} for _, obj := range input.Delete.Objects { @@ -1218,7 +1218,7 @@ func (p *Posix) DeleteObjects(ctx context.Context, input *s3.DeleteObjectsInput) } } - return s3response.DeleteObjectsResult{ + return s3response.DeleteResult{ Deleted: delResult, Error: errs, }, nil diff --git a/backend/s3proxy/s3.go b/backend/s3proxy/s3.go index 55db70b..15c90e0 100644 --- a/backend/s3proxy/s3.go +++ b/backend/s3proxy/s3.go @@ -320,17 +320,17 @@ func (s *S3Proxy) DeleteObject(ctx context.Context, input *s3.DeleteObjectInput) return handleError(err) } -func (s *S3Proxy) DeleteObjects(ctx context.Context, input *s3.DeleteObjectsInput) (s3response.DeleteObjectsResult, error) { +func (s *S3Proxy) DeleteObjects(ctx context.Context, input *s3.DeleteObjectsInput) (s3response.DeleteResult, error) { if len(input.Delete.Objects) == 0 { input.Delete.Objects = []types.ObjectIdentifier{} } output, err := s.client.DeleteObjects(ctx, input) if err != nil { - return s3response.DeleteObjectsResult{}, handleError(err) + return s3response.DeleteResult{}, handleError(err) } - return s3response.DeleteObjectsResult{ + return s3response.DeleteResult{ Deleted: output.Deleted, Error: output.Errors, }, nil diff --git a/s3api/controllers/backend_moq_test.go b/s3api/controllers/backend_moq_test.go index bde3b55..60fbc8c 100644 --- a/s3api/controllers/backend_moq_test.go +++ b/s3api/controllers/backend_moq_test.go @@ -184,7 +184,7 @@ type BackendMock struct { DeleteObjectTaggingFunc func(contextMoqParam context.Context, bucket string, object string) error // DeleteObjectsFunc mocks the DeleteObjects method. - DeleteObjectsFunc func(contextMoqParam context.Context, deleteObjectsInput *s3.DeleteObjectsInput) (s3response.DeleteObjectsResult, error) + DeleteObjectsFunc func(contextMoqParam context.Context, deleteObjectsInput *s3.DeleteObjectsInput) (s3response.DeleteResult, error) // GetBucketAclFunc mocks the GetBucketAcl method. GetBucketAclFunc func(contextMoqParam context.Context, getBucketAclInput *s3.GetBucketAclInput) ([]byte, error) @@ -994,7 +994,7 @@ func (mock *BackendMock) DeleteObjectTaggingCalls() []struct { } // DeleteObjects calls DeleteObjectsFunc. -func (mock *BackendMock) DeleteObjects(contextMoqParam context.Context, deleteObjectsInput *s3.DeleteObjectsInput) (s3response.DeleteObjectsResult, error) { +func (mock *BackendMock) DeleteObjects(contextMoqParam context.Context, deleteObjectsInput *s3.DeleteObjectsInput) (s3response.DeleteResult, error) { if mock.DeleteObjectsFunc == nil { panic("BackendMock.DeleteObjectsFunc: method is nil but Backend.DeleteObjects was just called") } diff --git a/s3api/controllers/base_test.go b/s3api/controllers/base_test.go index be52f52..ae80d36 100644 --- a/s3api/controllers/base_test.go +++ b/s3api/controllers/base_test.go @@ -1070,8 +1070,8 @@ func TestS3ApiController_DeleteObjects(t *testing.T) { GetBucketAclFunc: func(context.Context, *s3.GetBucketAclInput) ([]byte, error) { return acldata, nil }, - DeleteObjectsFunc: func(context.Context, *s3.DeleteObjectsInput) (s3response.DeleteObjectsResult, error) { - return s3response.DeleteObjectsResult{}, nil + DeleteObjectsFunc: func(context.Context, *s3.DeleteObjectsInput) (s3response.DeleteResult, error) { + return s3response.DeleteResult{}, nil }, }, } diff --git a/s3response/s3response.go b/s3response/s3response.go index c3a14b5..937c163 100644 --- a/s3response/s3response.go +++ b/s3response/s3response.go @@ -116,7 +116,7 @@ type DeleteObjects struct { Objects []types.ObjectIdentifier `xml:"Object"` } -type DeleteObjectsResult struct { +type DeleteResult struct { Deleted []types.DeletedObject Error []types.Error }