-
Notifications
You must be signed in to change notification settings - Fork 96
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update ceph s3 tests for Riak CS 2.1.0 with bug fixes #1212
Conversation
And change ceph/s3-tests branch to updated one for Riak CS 2.1 release
1fba11b
to
527c5c9
Compare
Errors by client side mistake or (supposed) race is not for error severity in server operator sense. Also, lager's logging with error level triggers disk sync in default settings, it may load disk.
…sions Example response: HTTP/1.1 501 Not Implemented Server: Riak CS Date: Fri, 07 Aug 2015 05:18:13 GMT Content-Type: application/xml Content-Length: 217 <?xml version="1.0" encoding="UTF-8"?> <Error> <Code>NotImplemented</Code> <Message>A request you provided implies functionality that is not implemented</Message> <Resource>/test/</Resource> <RequestId/> </Error>
Reference - PUT Object - Copy - Amazon Simple Storage Service : http://docs.aws.amazon.com/AmazonS3/latest/API/RESTO bjectCOPY.html - Test cases in ceph/s3-tests s3tests.functional.test_s3:test_object_copy_replacing_metadata s3tests.functional.test_s3:test_object_copy_retaining_metadata
Before this commit, parts to be deleted is calculated based on keys of {PartNumber, ETag}. If there is retry of upload, there exist multiple parts with the same {PartNumber, ETag} pair. This commit fixes it by using ?PART_MANIFEST.part_id, UUIDv4, to extract parts to be deleted.
527c5c9
to
45387fd
Compare
All riak_test passed in my local environment. Ready for review now. For reviewers, this PR should reference changes in basho/s3-tests#4. |
-spec start_put_fsm(binary(), binary(), lfs_manifest(), | ||
-spec new_metadata(lfs_manifest(), #wm_reqdata{}) -> {binary(), [{string(), string()}]}. | ||
new_metadata(SrcManifest, RD) -> | ||
case wrq:get_req_header("x-amz-metadata-directive", RD) of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The document states that Constraints: Values other than COPY or REPLACE result in an immediate 400-based error response. You cannot copy an object to itself unless the MetadataDirective header is specified and its value set to REPLACE.
I think we have to handle other values here as 400 or something. And handle undefined
separately.
Great work! I addressed several concerns and questions; let's discussed after our vacation. I worry it's tiresome to write a release note for this pull request listing up all bugs fixed here :) |
TODO: identify how much known bugs is fixed with this. |
This is left unimplemented because I was just sloppy 🙈 Will push the change.
This is another incompatibility bug of riak cs that can be captured by ceph/s3-tests but is now just skipped. |
|
…stly Update ceph s3 tests for Riak CS 2.1.0 with bug fixes Reviewed-by: kuenishi
+1 |
@borshop merge |
Release notes are in RCS-257 (#1212) |
Main purpose of this PR is to update ceph/s3-tests to latest commit at upstream because upstream has many updates / additions to s3 test suite.
To integrate s3-tests, now nosetest attribute filter is used to minimize changes to s3-tests fork for riak cs.
The filter is implemented in
Makefile
under ceph_test/ directory.Also, it includes a few bug fixes:
but severity with error+ may produce big load to disk)
Following commits are niether bug fix nor refactoring, they make integration
to s3-tests somewhat easier.
errors
This PR requires basho/s3-tests#4