Skip to content

feat(services/swift): add bulk delete support#7210

Merged
Xuanwo merged 1 commit intoapache:mainfrom
benroeder:swift/bulk-delete
Feb 23, 2026
Merged

feat(services/swift): add bulk delete support#7210
Xuanwo merged 1 commit intoapache:mainfrom
benroeder:swift/bulk-delete

Conversation

@benroeder
Copy link
Contributor

Summary

  • Fixes feat: Swift service should support bulk delete #7209
  • Implement oio::BatchDelete for Swift using the POST ?bulk-delete endpoint
  • Supports up to 10,000 objects per request
  • Parse per-object errors from Swift's JSON response to correctly report partial failures
  • Includes unit tests for bulk delete response parsing (success and error cases)

Reference: https://docs.openstack.org/swift/latest/api/bulk-delete.html

Test plan

  • test_batch_delete and test_delete_stream now execute instead of being skipped
  • All 93 behavior tests pass against both local SAIO and a real Swift cluster

Implement oio::BatchDelete for SwiftDeleter, using Swift's
POST ?bulk-delete API to delete up to 10,000 objects per request.

- Add swift_bulk_delete() to SwiftCore for the HTTP request
- Add BulkDeleteResponse serde struct for parsing JSON responses
- Change Deleter type from OneShotDeleter to BatchDeleter
- Declare delete_max_size: 10000 in capabilities
- Add unit tests for bulk delete response parsing
@benroeder benroeder requested a review from Xuanwo as a code owner February 23, 2026 00:33
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Feb 23, 2026
@dosubot
Copy link

dosubot bot commented Feb 23, 2026

Related Documentation

Checked 0 published document(s) in 1 knowledge base(s). No updates required.

How did I do? Any feedback?  Join Discord

@dosubot dosubot bot added the releases-note/feat The PR implements a new feature or has a title that begins with "feat" label Feb 23, 2026
Copy link
Member

@Xuanwo Xuanwo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for working on this!

@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Feb 23, 2026
@Xuanwo Xuanwo merged commit ec8ff52 into apache:main Feb 23, 2026
338 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm This PR has been approved by a maintainer releases-note/feat The PR implements a new feature or has a title that begins with "feat" size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Swift service should support bulk delete

2 participants