Support Days=0 lifecycle expiration: bump arsenal and add functional tests#6192
Support Days=0 lifecycle expiration: bump arsenal and add functional tests#6192delthas wants to merge 3 commits into
Conversation
Hello delthas,My role is to assist you with the merge of this Available options
Available commands
Status report is not available. |
Request integration branchesWaiting for integration branch creation to be requested by the user. To request integration branches, please comment on this pull request with the following command: Alternatively, the |
| "@hapi/joi": "^17.1.1", | ||
| "@smithy/node-http-handler": "^3.0.0", | ||
| "arsenal": "git+https://github.com/scality/Arsenal#8.4.4", | ||
| "arsenal": "git+https://github.com/scality/Arsenal#f5d43abeb8139ec8835ef0354888ff13ddb14d8b", |
There was a problem hiding this comment.
Arsenal is pinned to a commit hash, not a released tag. The PR description acknowledges this, but flagging per policy: git-based deps must pin to a tag before merge.
— Claude Code
❌ 6 Tests Failed:
View the top 1 failed test(s) by shortest run time
View the full list of 5 ❄️ flaky test(s)
To view more test analytics, go to the Test Analytics Dashboard |
f6b1245 to
a934286
Compare
Pure formatting pass (no logic change) on the functional test file touched by the Days=0 work, so the prettier CI check (which runs on whole files modified by the PR) passes. Isolating the reformat keeps the test commit reviewable. Issue: CLDSRV-928
Cover the new Days=0 ("empty this bucket") capability in PutBucketLifecycle:
- Expiration Days=0 accepted and round-trips via GetBucketLifecycle
- NoncurrentVersionExpiration NoncurrentDays=0 accepted
- AbortIncompleteMultipartUpload DaysAfterInitiation=0 accepted
- negative Expiration Days rejected (must be nonnegative)
- Expiration Days exceeding MAX_DAYS rejected (MalformedXML)
These pass once the arsenal dependency is bumped to the version including
ARSN-597.
Issue: CLDSRV-928
Point arsenal at the ARSN-597 commit (72e5d59ea4ca10e060e55dccb17063f98d1a86a1) rather than a released tag, since the version is not cut yet. This delivers Days=0 support (the explicit "empty this bucket" lifecycle signal) and makes the functional tests added in the previous commit pass. To amend once ARSN-597 is released: replace the commit pin with the released arsenal version (>= 8.4.8) and re-run yarn install. Issue: CLDSRV-928
a934286 to
c7099f8
Compare
|
What
CloudServer side of the
Days = 0lifecycle support. Two commits:tests/functional/aws-node-sdk/test/bucket/putBucketLifecycle.js):ExpirationDays: 0accepted and round-trips via GetBucketLifecycleNoncurrentVersionExpirationNoncurrentDays: 0andAbortIncompleteMultipartUploadDaysAfterInitiation: 0acceptedExpirationDaysrejected (must be nonnegative) and> MAX_DAYSrejected (MalformedXML)Why
Days = 0is an explicit "empty this bucket" lifecycle signal. Because it was rejected everywhere until now, it is unambiguous (unlikeDays = 1, used by legitimate short-retention buckets) and lets backbeat (BB-779) skip building costly lifecycle indexes for buckets being drained. CloudServer delegates all lifecycle validation to arsenal, so the only changes here are the dependency bump and the tests.The arsenal dependency is pinned to the ARSN-597 commit
f5d43abeb8139ec8835ef0354888ff13ddb14d8b(arsenal PR scality/Arsenal#2648), not a released tag, because the version is not cut yet. Before merge: amend the bump to the released arsenal version (>= 8.4.8) and re-runyarn install. Draft until then.Related
Issue: CLDSRV-928