rgw: implement GetObjectAttributes#55259
Conversation
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
|
(will rebase this next week) |
dbd921f to
428d55d
Compare
428d55d to
4e7859a
Compare
992c0af to
044270b
Compare
cfd4b60 to
ec20bca
Compare
|
in-progress s3-test case ceph/s3-tests#571 |
|
jenkins test make check |
|
jenkins test make check arm64 |
|
@mattbenjamin This passed QA but there are some CI issues that prevent merging at this moment. |
Implements the corresponding S3 operation, and introduces a new Object::list_parts SAL interface to support it. Includes Casey Bodley <[email protected]>: * use uncompressed part size * local variable shadowed a member variable and broke handling of PartNumberMarker in request and response Fixes: https://tracker.ceph.com/issues/64109 Signed-off-by: Matt Benjamin <[email protected]>
(code review) Signed-off-by: Matt Benjamin <[email protected]>
Signed-off-by: Matt Benjamin <[email protected]>
Signed-off-by: Matt Benjamin <[email protected]>
If a create-multipart-upload requested additional checksum but a part upload omits it, fail gracefully. Possibly we can fixup the checksum uploads and remove this scenario, but coding defensively would still be correct. Signed-off-by: Matt Benjamin <[email protected]>
… upload-part There appear to be workloads that provide a checksum algorithm in create-multipart-upload, but do not provide (what must be) the corresponding algorithm when uploading the parts. (complete-multipart-upload has no checksum argument, the value is implicit.) This behavior is inconsistent with at least some SDKs, but it is possibly accepted behavior in AWS S3, and is not logically necessary, since the originally supplied checksum type is already known. Therefore, change the behavior of upload-part to fall back to a checksum type that was sent with the corresponding create-multipart-upload request, if one is present, rather than failing with InvalidRequest. Fixes: https://tracker.ceph.com/issues/68513 Signed-off-by: Matt Benjamin <[email protected]> (cherry picked from commit 6b487a4)
The version_id member in RGWGetObjAttrs shadows the one in RGWGetObj. Just assign it before conditionally returning the version-id header in RGWGetObjAttrs_ObjStore_S3::send_response(). Signed-off-by: Matt Benjamin <[email protected]>
RGWGetObj::execute() relies on the virtual get_decrypt_filter() which is overridden by RGWGetObj_ObjStore_S3 but when called from RGWGetObjAttrs_ObjStore_S3, there is no override. add one that just calls rgw_s3_prepare_decrypt() Signed-off-by: Casey Bodley <[email protected]>
the part head objects don't have a RGW_ATTR_MANIFEST attribute, so get_obj_state_impl() isn't able to set the correct RGWObjState::accounted_size unless RGW_ATTR_COMPRESSION provides one get_part_obj_state() builds a fake manifest in memory to represent the part and updates state.size accordingly, but it hadn't corrected the value of state.accounted_size Signed-off-by: Casey Bodley <[email protected]>
Signed-off-by: Casey Bodley <[email protected]>
Signed-off-by: Casey Bodley <[email protected]>
Suggested by Casey. This is a relatively small value, but let's be conservative. Signed-off-by: Matt Benjamin <[email protected]>
Suggested by Casey. Signed-off-by: Matt Benjamin <[email protected]>
bb59073 to
6c534ba
Compare
2404fa1 to
d4f52a5
Compare
|
jenkins retest this please |
d4f52a5 to
7c0ae60
Compare
|
maybe I am being fooled by the github interface; |
7c0ae60 to
4b1984f
Compare
Help from Pritha and Casey appreciated Plus, fix 3 explicit mapping tests in test_rgw_iam_policy.cc. Signed-off-by: Matt Benjamin <[email protected]>
4b1984f to
8f5f3fa
Compare
Fixes: https://tracker.ceph.com/issues/64109
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an
xbetween the brackets:[x]. Spaces and capitalization matter when checking off items this way.Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windowsjenkins test rook e2e