ShreeJejurikar [Wed, 13 May 2026 15:53:49 +0000 (21:23 +0530)]
test: verify Requester field is the assumed-role ARN
Add a bucket logging test that asserts the standard access log Requester
field is set to the assumed-role ARN (per AWS S3 spec) when a request is
made with STS temporary credentials.
The test creates an IAM role assumable by the alt user, assumes it via
STS, performs an S3 PutObject with the temporary credentials, flushes the
bucket log, and verifies the log record's Requester field matches
arn:aws:sts:::assumed-role/<role>/<session>.
s3tests: add tests for RestoreStatus in object listings
Add tests to validate the x-amz-optional-object-attributes RestoreStatus
support in listing responses.
New tests:
- test_list_objects_restore_status: validates RestoreStatus appears in
list_objects and list_objects_v2 responses for temporarily restored
objects, and is absent for normal objects or when the header is omitted
- test_list_object_versions_restore_status: validates RestoreStatus
appears for restored non-current versions while unrestored versions
remain unaffected
cheese-cakee [Fri, 15 May 2026 20:02:36 +0000 (01:32 +0530)]
test_s3: fix test_bucket_logging_request_id for newer botocore
The test was using a boto3 event handler to capture the x-amz-request-id
header, incorrectly accessing kwargs["response"] in an after-call event.
Botocore's after-call event does not pass a "response" kwarg; it passes
"parsed", "http_response", "model", and "context". Fix by reading the
request ID directly from the put_object() response, which is simpler and
works across all botocore versions.
cheese-cakee [Wed, 25 Mar 2026 20:00:15 +0000 (01:30 +0530)]
test: add test for standard access log request ID
Add test_bucket_logging_request_id to verify that the RequestID field
in the standard access log matches the x-amz-request-id returned in
the S3 PUT object response.
Matthew N. Heler [Fri, 12 Dec 2025 01:14:22 +0000 (19:14 -0600)]
s3tests: add tests for per-bucket cloud transition targeting
Add tests to validate the target_by_bucket feature which allows each
source bucket to transition objects to a dedicated destination bucket
rather than sharing a common target.
New tests:
- test_lifecycle_cloud_transition_target_by_bucket: validates objects
land in bucket-specific targets without source bucket name prefix
- test_lifecycle_cloud_transition_target_by_bucket_multiple_buckets:
validates isolation between different source buckets
Each test will perform a restore of the object transitioned.
Jacques Heunis [Mon, 16 Mar 2026 15:13:02 +0000 (15:13 +0000)]
s3: Add a test for attempting to complete an unstarted multipart upload
The AWS documentation for CompleteMultipartUpload specifies that the call will
return a 404 with the text "NoSuchUpload" to indicate that the specified
multipart upload does not exist. This could be the result of an invalid upload
ID or a multipart upload that has been aborted or completed.
Of particular significance is the requirement that this API call return a
400-series error (indicating a client-side problem) and not a 500-series error
(indicating a server-size problem).
At the time of writing, Ceph returns a 500 in this scenario which may be
handled incorrectly by client SDKs and is likely to be misinterpreted by Ceph
monitoring as an increase in errors that require operator intervention to fix.
CompleteMultipartUpload docs available at:
https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html