Commit graph

446 commits

Author SHA1 Message Date
Andrew Gaul
ffdad9e22f Add test for querying location 2014-12-29 16:15:41 -08:00
Andrew Gaul
45c53c462d Handle idempotent and BucketAlreadyOwnedByYou
AWS S3 has two behaviors for recreating a bucket depending if you use
the us-standard or another region:

>>> bucket = conn.create_bucket('gaul-default', location=Location.DEFAULT)
>>> bucket = conn.create_bucket('gaul-default', location=Location.DEFAULT)
>>> bucket = conn.create_bucket('gaul-uswest', location=Location.USWest)
>>> bucket = conn.create_bucket('gaul-uswest', location=Location.USWest)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/boto/s3/connection.py", line 499, in create_bucket
    response.status, response.reason, body)
boto.exception.S3CreateError: S3CreateError: 409 Conflict
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>BucketAlreadyOwnedByYou</Code><Message>Your previous request to create the named bucket succeeded and you already own it.</Message><BucketName>gaul-uswest</BucketName><RequestId>24B6DC3170365CD7</RequestId><HostId>hUynMTyqc9WZFxAJ2RFK6P7BqmmeHHlMl9xL2NOy56xBUnOZCAlHqGvtMeGeAfVs</HostId></Error>

Additional discussion:

https://issues.apache.org/jira/browse/JCLOUDS-334
2014-12-22 21:05:27 -08:00
Andrew Gaul
9b17da16cd Test to find mismatched MD5
Also clarify the invalid digest test.
2014-12-22 20:26:39 -08:00
Andrew Gaul
673f7d7c44 Test empty and small multi-part uploads 2014-12-22 20:17:35 -08:00
Andrew Gaul
ca2c0dc283 Correctly generate non-mod 1024 parts in generator
Also move implementation to utils and add unit tests.
2014-12-22 20:16:25 -08:00
Alfredo Deza
4a67f6c0f3 Merge pull request #28 from ceph/wip-bad-auth-test
test_object_create_bad_authorization_incorrect: fixes
2014-12-16 16:03:17 -05:00
Yehuda Sadeh
8f6c109882 test_object_create_bad_authorization_incorrect: fixes
The test should expect BadSignature. Also, provide a key that does not
already exist on aws.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2014-12-16 12:56:53 -08:00
Josh Durgin
d50dfe8fa3 Merge pull request #26 from ceph/wip-10066
fixes/improves weird hashing issues on readwrite tests

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2014-12-15 23:17:51 -08:00
Alfredo Deza
abc9e67120 Revert "test_bucket_create_exists should fail on recreate"
This reverts commit c82649b635.

The suite does not support duality in behaviors (e.g.
US Standard vs. Regional behavior) so we adhere to US
Standard only.

Signed-off-by: Alfredo Deza <alfredo@deza.pe>
2014-12-15 10:41:59 -05:00
Ray Lv
085277338f s3tests: add regression test for bug #10311 - rgw: Object is deleted automatically if conditional PUT returns 412
Test for bug #10311

Signed-off-by: Ray Lv <raylv@yahoo-inc.com>
2014-12-15 16:47:34 +08:00
Alfredo Deza
a983b6b670 fix broken/commented tests
Signed-off-by: Alfredo Deza <alfredo@deza.pe>
2014-12-12 13:53:43 -05:00
Alfredo Deza
cad6547eb0 use the new helpers for realistic files
Signed-off-by: Alfredo Deza <alfredo@deza.pe>
2014-12-12 13:53:19 -05:00
Alfredo Deza
b4794edbb3 always seek back to 0, remove chunk usage
Signed-off-by: Alfredo Deza <alfredo@deza.pe>
2014-12-12 13:52:43 -05:00
Yehuda Sadeh
c6043faa30 Merge pull request #23 from xylv/wip-test-issue-8562
s3tests: add conditional put test

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2014-12-12 10:42:54 -08:00
Alfredo Deza
3390afc4a5 adding a new FileValidator
Signed-off-by: Alfredo Deza <alfredo@deza.pe>
2014-12-12 11:12:10 -05:00
Alfredo Deza
8ee55a32f5 new tests for the new pseudo-random content files
Signed-off-by: Alfredo Deza <alfredo@deza.pe>
2014-12-12 11:09:27 -05:00
Alfredo Deza
fc92b4925d adding a proof for the realistic bugs
Signed-off-by: Alfredo Deza <alfredo@deza.pe>
2014-12-10 16:55:54 -05:00
Alfredo Deza
f07b5206a6 Merge pull request #19 from andrewgaul/query-string-authorization-expiration
Test query string authorization expiration
2014-12-04 09:43:25 -05:00
Alfredo Deza
7b5a61fa7f Merge pull request #17 from andrewgaul/delete-object-non-existent-bucket
Test delete object on non-existent bucket
2014-12-04 09:37:11 -05:00
Alfredo Deza
405d96c379 Merge pull request #24 from andrewgaul/list-bucket
Improve list bucket invalid and bad auth tests
2014-12-04 09:32:08 -05:00
Alfredo Deza
81dc4f4b24 Merge pull request #9 from andrewgaul/bucket-create-exists
test_bucket_create_exists should fail on recreate
2014-12-04 09:28:31 -05:00
Andrew Gaul
5a995a9e14 Improve list bucket invalid and bad auth tests
Explicitly test invalid access keys and valid access keys but invalid
secret keys.  Also disable anonymous list bucket test for AWS.
radosgw uses this for connectivity testing but AWS does not allow it:

http://ceph.com/docs/master/radosgw/config/#verify-the-runtime
http://docs.aws.amazon.com/AmazonS3/latest/API/RESTServiceGET.html
2014-12-03 20:42:23 -08:00
Ray Lv
3e1e2ee438 s3tests: add conditional put test
Test for issue #8562

Signed-off-by: Ray Lv <raylv@yahoo-inc.com>
2014-11-25 14:51:38 +08:00
Josh Durgin
70db3015b9 Merge pull request #22 from ceph/wip-configurable-copy
test_s3: add is_slow_backend

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2014-10-20 13:45:39 -07:00
Yehuda Sadeh
f4de9f7b42 test_s3: fix test_list_multipart_upload()
Test was calling _multipart_upload() with extra useless param, this
broke when we added a new param to the function.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2014-10-14 14:16:30 -07:00
Yehuda Sadeh
d39799327e Merge pull request #21 from lpabon/small_multipart_upload
Multipart test with 10k small objects.

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2014-10-13 12:52:09 -07:00
Luis Pabón
be982f624e Multipart test with 10k small objects.
Test detects that the server returns the correct error
code

Signed-off-by: Luis Pabón <lpabon@redhat.com>
2014-10-13 10:10:27 -04:00
Yehuda Sadeh
97beb9c816 test_s3: add is_slow_backend
for slow ec region copy

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2014-10-03 15:09:27 -07:00
Yehuda Sadeh
d2c0ccd7b5 readwrite: dump a more meaningful message on md5 read error
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2014-08-26 14:06:25 -07:00
Andrew Gaul
6aac86205a Test query string authorization expiration 2014-08-23 18:36:41 -07:00
Andrew Gaul
4adf87c7e3 Test that put object returns correct ETag 2014-08-22 11:13:57 -07:00
Andrew Gaul
870c19a44b Test delete object on non-existent bucket 2014-08-22 11:06:04 -07:00
Andrew Gaul
b81a718794 Test half-open range requests 2014-08-12 12:26:27 -07:00
Andrew Gaul
74a08169b1 Disable retries to test short writes
Previously test_object_create_bad_contentlength_mismatch_above failed
with:

Traceback (most recent call last):
  File "/home/gaul/work/s3-tests/virtualenv/local/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/home/gaul/work/s3-tests/s3tests/functional/test_headers.py", line 343, in test_object_create_bad_contentlength_mismatch_above
    e = assert_raises(boto.exception.S3ResponseError, key.set_contents_from_string, content)
  File "/home/gaul/work/s3-tests/s3tests/functional/utils.py", line 11, in assert_raises
    callableObj(*args, **kwargs)
  File "/home/gaul/work/s3-tests/virtualenv/local/lib/python2.7/site-packages/boto/s3/key.py", line 1379, in set_contents_from_string
    encrypt_key=encrypt_key)
  File "/home/gaul/work/s3-tests/virtualenv/local/lib/python2.7/site-packages/boto/s3/key.py", line 1246, in set_contents_from_file
    chunked_transfer=chunked_transfer, size=size)
  File "/home/gaul/work/s3-tests/virtualenv/local/lib/python2.7/site-packages/boto/s3/key.py", line 725, in send_file
    chunked_transfer=chunked_transfer, size=size)
  File "/home/gaul/work/s3-tests/virtualenv/local/lib/python2.7/site-packages/boto/s3/key.py", line 914, in _send_file_internal
    query_args=query_args
  File "/home/gaul/work/s3-tests/virtualenv/local/lib/python2.7/site-packages/boto/s3/connection.py", line 658, in make_request
    retry_handler=retry_handler
  File "/home/gaul/work/s3-tests/virtualenv/local/lib/python2.7/site-packages/boto/connection.py", line 1048, in make_request
    retry_handler=retry_handler)
  File "/home/gaul/work/s3-tests/virtualenv/local/lib/python2.7/site-packages/boto/connection.py", line 1004, in _mexe
    raise BotoServerError(response.status, response.reason, body)
BotoServerError: BotoServerError: 400 Bad Request
2014-08-01 21:47:13 -07:00
Andrew Gaul
3d3a4ce8fe Call get_new_bucket_name in long bucket name tests
Previously test_bucket_create_naming_good_long_251 and
test_bucket_list_long_name could fail with BucketAlreadyOwnedByYou.
2014-08-01 16:43:50 -07:00
Andrew Gaul
c82649b635 test_bucket_create_exists should fail on recreate
AWS S3 has two behaviors for recreating a bucket depending if you use
the us-standard or another region:

>>> bucket = conn.create_bucket('gaul-default', location=Location.DEFAULT)
>>> bucket = conn.create_bucket('gaul-default', location=Location.DEFAULT)
>>> bucket = conn.create_bucket('gaul-uswest', location=Location.USWest)
>>> bucket = conn.create_bucket('gaul-uswest', location=Location.USWest)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/boto/s3/connection.py", line 499, in create_bucket
    response.status, response.reason, body)
boto.exception.S3CreateError: S3CreateError: 409 Conflict
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>BucketAlreadyOwnedByYou</Code><Message>Your previous request to create the named bucket succeeded and you already own it.</Message><BucketName>gaul-uswest</BucketName><RequestId>24B6DC3170365CD7</RequestId><HostId>hUynMTyqc9WZFxAJ2RFK6P7BqmmeHHlMl9xL2NOy56xBUnOZCAlHqGvtMeGeAfVs</HostId></Error>

Additional discussion:

https://issues.apache.org/jira/browse/JCLOUDS-334
2014-07-31 01:35:21 -07:00
Yehuda Sadeh
a23c81187b test_s3: add bucket listing tests
Test prefix, delimiter, common prefixes, max_keys.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2014-07-22 16:59:58 -07:00
Yehuda Sadeh
b07fce46a0 rgw: add more multipart upload tests
Check for issue #8846.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2014-07-16 13:22:38 -07:00
Yehuda Sadeh
05f45c0fe9 s3tests: extende multipart upload test
Test for issue #8452

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2014-06-03 16:15:29 -07:00
Yehuda Sadeh
474bfd2077 test_s3: add some debug prints for multi region test
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2014-04-01 12:24:53 -07:00
Yehuda Sadeh
f2902a042f test_s3: extend multipart test
Make test use a multipart upload with different part sizes, to exercise
code that triggered #7935.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2014-04-01 12:24:53 -07:00
Yehuda Sadeh
1b3d766621 test_s3: extend multi-delete test
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2014-04-01 12:24:53 -07:00
Sandon Van Ness
9a22d94aeb Added pip 1.5 workaround.
Setuptools needs to be upgraded with --no-use-wheel. A change we
already were using in other projects.

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
2014-01-09 19:09:39 -08:00
Yehuda Sadeh
3fc4121f8b Merge branch 'next' 2013-09-06 21:54:46 -07:00
Yehuda Sadeh
dfe455b6f6 Merge branch 'wip-6078' into next 2013-09-06 21:54:25 -07:00
Yehuda Sadeh
b24fd7a099 rgw: extend cors tests
Checks all sort of issues related to #6078.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-09-04 16:45:00 -07:00
Joe Buck
ad9f3615e3 fix nuke_buckets for non-region tests
Signed-off-by: Joe Buck <jbbuck@gmail.com>
2013-08-30 23:47:54 -07:00
Joe Buck
2a216abcb4 Moving region_sync to utils
Since other classes need to do syncs,
let's move it to the utils file.

Signed-off-by: Joe Buck <jbbuck@gmail.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-08-30 22:13:42 -07:00
Joe Buck
15f7fcfc84 Rework nuke_buckets
Nuke all buckets on the master, sync, and then
nuke any remaining buckets on non-master regions.

Signed-off-by: Joe Buck <jbbuck@gmail.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-08-30 22:13:34 -07:00
Joe Buck
e54c700bbd Improve post-test cleanup
The multi-region tests were not being diligent
about cleaning up their buckets / keys
and making sure that those deletes were synced.
This was causing the nuke_prefixed_buckets()
method to run into errors.
This patch adds more cleanup code and
validation of that cleanup within
the pertinent tests.

Signed-off-by: Joe Buck <jbbuck@gmail.com>
2013-08-28 22:48:48 -07:00