Add CTST coverage for Days=0 lifecycle expiration#2461
Conversation
Hello delthas,My role is to assist you with the merge of this Available options
Available commands
Status report is not available. |
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
|
9061fa1 to
ac6b65e
Compare
|
CI failing due to cloudserver bump introducing unrelated issue, tracked in https://github.com/scality/cli-testing/pull/98. Please review regardless! :) (The introduced tests pass.) |
DarkIsDude
left a comment
There was a problem hiding this comment.
To be honest it's clear 🙏. Thanks !
ce20f64 to
eb025b6
Compare
…ration backbeat 9.5.0-preview.1 -> 9.5.0-preview.4 (BB-791; arsenal >=8.5.6 so the v1 LifecycleTask path also honors Days=0) cloudserver 9.4.0-preview.2 -> 9.4.0-preview.4 (CLDSRV-928, arsenal 8.5.6) pensieve-api 1.10.1 -> 1.11.0-preview.1 (PSVAPI-128) Issue: ZENKO-5314
Add an end-to-end test using the S3 PutBucketLifecycleConfiguration API: a Scenario Outline over non-versioned, versioned and suspended buckets that sets a whole-bucket Days=0 expiration (current version, or current and noncurrent versions) and asserts the bucket empties. Factor the lifecycle-config PUT-with-retry logic shared with the transition workflow helper into putBucketLifecycleConfigurationWithRetry, and add an addExpirationWorkflow helper. Days=0 makes objects immediately eligible, so the test needs no time-progression or one-day-earlier tricks. Issue: ZENKO-5314
Picks up the makeAuthV4Request x-amz-content-sha256 fix (CTST-64) so the quota SigV4 admin routes work against cloudserver >= 9.4.0-preview.3, unblocking the CTST Quotas suite. Issue: ZENKO-5314
2998a3c to
49b0bfc
Compare
|
The |
What does this PR do, and why do we need it?
Adds end-to-end (CTST) coverage for S3 lifecycle Expiration rules with
Days=0("delete all matching objects as soon as backbeat runs"), and bumps the component images that ship the feature.solution/deps.yaml: backbeat9.5.0-preview.1→9.5.0-preview.3(BB-791), cloudserver9.4.0-preview.2→9.4.0-preview.4(CLDSRV-928, arsenal 8.5.6), pensieve-api1.10.1→1.11.0-preview.1(PSVAPI-128).features/lifecycleExpiration.featurewith two@PreMergescenarios using the direct S3PutBucketLifecycleConfigurationAPI:Expiration Days=0→ all objects deleted;Expiration Days=0+NoncurrentVersionExpiration NoncurrentDays=0→ all versions and delete markers removed.putBucketLifecycleConfigurationWithRetry, and adds anaddExpirationWorkflowhelper.Days=0makes objects immediately eligible (backbeat lists with noBeforeDate), so the test needs no time-progression or one-day-earlier tricks and is not tagged@Flaky.The backbeat index-skip heuristic (BB-779) is intentionally out of scope — it is not yet merged and is covered by backbeat unit tests, not e2e.
Which issue does this PR fix?
ZENKO-5314
Special notes for your reviewers:
The new scenarios follow
tests/functional/ctst/HOW_TO_WRITE_TESTS.md: unique per-scenario buckets, external-state-only assertions (viaListObjectVersions), poll-based assertions (idempotent after waits), automatic teardown via the globalAfterhook, and no@Flaky.Issue: ZENKO-5314