Commit graph

206 commits

Author SHA1 Message Date
Andrew Gaul
1fed8aebd3 Test setting container ACLs during create bucket
Signed-off-by: Andrew Gaul <andrew@gaul.org>
2015-03-15 18:06:12 -07:00
Andrew Gaul
7b4373bb72 Do not rely on Ceph extensions in head bucket
This commit allows test_bucket_head test_bucket_head,
test_bucket_head_extended, test_multipart_upload, and
test_abort_multipart_upload to succeed against AWS-S3.  Also use
public buckets for head tests since they do not require private
buckets.

Signed-off-by: Andrew Gaul <andrew@gaul.org>
2015-03-10 11:19:24 -07:00
Andrew Schoen
3d3ea9bcfe Add fails_on_mod_proxy_fcgi to functional.test_s3.test_100_continue
Backport: hammer, firefly

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2015-03-10 12:28:13 -05:00
Andrew Gaul
4d7638de5b Copy tests for replacing and retaining metadata 2015-03-02 14:13:30 -08:00
Yehuda Sadeh
81ee959c57 s3tests: add tests of acl settings by alt user
verify ownership

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2015-02-27 16:49:44 -08:00
Yehuda Sadeh
9d36507fdd s3tests: add missing imports
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2015-02-27 11:54:44 -08:00
Yehuda Sadeh
629610d788 Merge pull request #36 from andrewgaul/starts-with-nonalpha
Use unique name in starts with nonalpha test

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2015-02-27 10:37:42 -08:00
Yehuda Sadeh
d2de82d020 Merge pull request #34 from andrewgaul/abort-multipart-upload-not-found
Add test for aborting a bogus multi-part upload

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2015-02-27 10:36:33 -08:00
Yehuda Sadeh
c9e76672df Merge pull request #33 from andrewgaul/multi-delete
Ensure multi-delete removes keys

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2015-02-27 10:35:45 -08:00
Yehuda Sadeh
6582a28395 Merge pull request #32 from andrewgaul/xml-special-characters
Add test for keys with XML special characters

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2015-02-27 10:35:08 -08:00
Yehuda Sadeh
eac714c9b7 Merge pull request #31 from andrewgaul/get-location
Add test for querying location

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2015-02-27 10:34:05 -08:00
Yehuda Sadeh
284938942e Merge pull request #29 from andrewgaul/multipart-upload-empty-small
Test empty and small multi-part uploads

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2015-02-27 10:30:51 -08:00
Yehuda Sadeh
681063cc87 Merge pull request #16 from andrewgaul/put-object-correct-etag
Test that put object returns correct ETag

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2015-02-27 10:25:02 -08:00
Yehuda Sadeh
56b7d32fe1 Merge pull request #15 from andrewgaul/half-open-range-requests
Test half-open range requests

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2015-02-27 10:24:12 -08:00
Yehuda Sadeh
d0e4dd09b0 Merge pull request #11 from andrewgaul/long-bucket-name-tests
Call get_new_bucket_name in long bucket name tests

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2015-02-27 10:16:20 -08:00
Yehuda Sadeh
a9dab59337 s3tests: fix test_bucket_create_bad_contentlength_empty
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2015-02-27 10:23:09 -08:00
Yehuda Sadeh
a7909ddd47 s3tests: test POST with bad access key
Tests issue #10698

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2015-02-05 09:42:45 -08:00
Yehuda Sadeh
f33a86b388 Merge branch 'wip-bi-sharding-3' into wip-rgw-versioning-3
Conflicts:
	s3tests/functional/test_s3.py
2015-01-22 15:24:07 -08:00
Yehuda Sadeh
76e8bed4bd s3tests: send raw http requests to test redirects
Since we fixed the rgw redirect code, it turns out that boto actually
follows on them. We just want to check if redirect is sent.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2015-01-22 15:21:46 -08:00
Yehuda Sadeh
4d0af2149f Merge pull request #27 from xylv/wip-test-issue-10311
s3tests: add regression test for bug #10311 - rgw: Object is deleted automatically if conditional PUT returns 412

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2015-01-21 14:49:47 -08:00
Yehuda Sadeh
7a0932fe02 s3tests: test list bucket versions
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2015-01-19 15:08:29 -08:00
Yehuda Sadeh
460e3f1f1e s3tests: concurrent object versioning tests
test concurrent creation and removal

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2015-01-19 15:08:29 -08:00
Yehuda Sadeh
5be9694863 s3tests: versioned get_acl, put_acl
modify a specific version acl, check this specific version, check it
didn't affect object head acls.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2015-01-19 15:07:54 -08:00
Yehuda Sadeh
e109c5c7b7 s3test: add a new multi obj delete test
Validate creation of delete marker.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2015-01-19 15:07:54 -08:00
Yehuda Sadeh
53d5857e83 s3test: add versioned multi delete
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2015-01-19 15:07:54 -08:00
Yehuda Sadeh
ec6ea92443 test: fixes
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2015-01-19 15:07:54 -08:00
Yehuda Sadeh
67bb05c87e s3test: test copy version
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2015-01-19 15:07:54 -08:00
Yehuda Sadeh
b4d406bcf7 test_s3: add versioned multipart upload test
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2015-01-19 15:07:54 -08:00
Yehuda Sadeh
3c297038f6 s3tests: more object versioning tests
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2015-01-19 15:07:54 -08:00
Yehuda Sadeh
a3ce6be105 s3tests: object version removal and delete marker test
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2015-01-19 15:07:54 -08:00
Yehuda Sadeh
5d67c7f5df s3tests: extend object versions test
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2015-01-19 15:07:54 -08:00
Yehuda Sadeh
0f0e833801 s3tests: add test_versioning_obj_create_read_remove()
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2015-01-19 15:07:53 -08:00
Yehuda Sadeh
032f41f6f3 functional: add test_versioning_bucket_create_suspend()
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2015-01-19 15:07:53 -08:00
Yehuda Sadeh
2f279540f9 s3tests: send raw http requests to test redirects
Since we fixed the rgw redirect code, it turns out that boto actually
follows on them. We just want to check if redirect is sent.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2015-01-13 16:46:33 -08:00
Andrew Gaul
bb0a88fd1b Use unique name in starts with nonalpha test 2015-01-06 13:43:09 -08:00
Andrew Gaul
d978adbf2d Add test for aborting a bogus multi-part upload 2015-01-02 19:29:53 -08:00
Andrew Gaul
00f4ffed5a Ensure multi-delete removes keys 2014-12-31 15:50:14 -08:00
Andrew Gaul
2682a6a0eb Add test for keys with XML special characters 2014-12-30 15:55:35 -08:00
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
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
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
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
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
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
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
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
Yehuda Sadeh
3fc4121f8b Merge branch 'next' 2013-09-06 21:54:46 -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
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
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
Yehuda Sadeh
56665e7da5 rgw: more extensive CORS testing
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-08-27 19:47:07 -07:00
Yehuda Sadeh
a06f5784df Merge branch 'next'
Conflicts:
	s3tests/functional/test_s3.py

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-08-16 10:55:54 -07:00
Yehuda Sadeh
f20c6e250e rename 'partial' metadata sync to 'incremental'
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-08-05 13:55:22 -07:00
Yehuda Sadeh
ef471ec2b9 s3tests: improve cors test to cover more functionality
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-08-01 13:24:28 -07:00
Yehuda Sadeh
7bdf4b897a test_s3: basic cors test
related to issue #5261

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-08-01 11:07:07 -07:00
Yehuda Sadeh
9954bc4470 s3tests: only tun multiregion tests if configured
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-07-29 13:17:46 -07:00
Yehuda Sadeh
3b733245c5 s3tests: modify cross region copy, sync triggering
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-07-26 22:19:36 -07:00
Yehuda Sadeh
b4441e3057 s3tests: improve cross region copy, sync meta
Can now configure sync agent rest address in order to force
a sync operation. Another option is to set a waiting time for
meta sync.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-07-26 20:33:48 -07:00
Yehuda Sadeh
04d46c59f0 s3tests: basic test to copy object between regions
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-07-26 18:07:52 -07:00
Yehuda Sadeh
5f4910fad5 s3tests: test_region_bucket_create_secondary_access_master
first multi-region test

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-07-26 11:16:36 -07:00
Yehuda Sadeh
0fb067de30 s3tests: some more multiregion changes
Now creating a connection per region for each user, can access
master and secondaries, and set a default region.
No longer using a specific region per user, as it doesn't
make sense.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-07-26 10:48:45 -07:00
Yehuda Sadeh
ca72b6cb7b s3_test: add test for listing objects with special prefix
Check for ceph issue #5362. Prefix starts with underscore.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-07-25 21:53:33 -07:00
Yehuda Sadeh
a62df16023 test_s3: basic cors test
related to issue #5261

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-07-25 21:53:33 -07:00
Yehuda Sadeh
232dd35817 add flexible multi-region configuration
can now create a region-specific configuration:

[region foo]
api_name = ...
host = ...
port = ...

and set that region to be used for specific connection:

[s3 main]
region = foo

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-07-25 14:13:34 -07:00
Yehuda Sadeh
c40b1cd348 support region configuration
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-07-24 13:23:24 -07:00
Sage Weil
0380eafac0 Merge remote-tracking branch 'gh/next' 2013-05-06 21:36:43 -07:00
Yehuda Sadeh
10a6caf4ee test_s3: reduce multipart tests sizes
Tests were dominating run time

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-02-20 13:55:35 -08:00
caleb miles
4095675827 test_s3: test multi-part uploads using boto provided functionality.
Tests the implementation of multi-part upload and verifies written
object.

Signed-off-by: caleb miles <caleb.miles@inktank.com>
2013-02-20 13:51:14 -08:00
caleb miles
27581ccf6a test_s3: Add test of ACL grants through HTTP headers.
Signed-off-by: caleb miles <caleb.miles@inktank.com>
2013-02-20 11:39:48 -08:00
Yehuda Sadeh
fd33286494 test_s3: fix test_list_multipart_upload
test wasn't really testing what it should have

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-02-19 18:00:15 -08:00
caleb miles
b39f25a02b test_s3: Add tests for additional canned acl support.
Corresponds to tracker issue 3667.

Signed-off-by: caleb miles <caleb.miles@inktank.com>
2013-02-07 14:49:03 -08:00
Yehuda Sadeh
d4978eb4d1 test_s3: check stats correct after multipart upload
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-02-06 10:34:54 -08:00
Yehuda Sadeh
414a107b46 rgw: fix post tests to include tcp port
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-01-23 10:41:38 -08:00
Yehuda Sadeh
efa352711b rgw: remove more fails_on_dho tags
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-01-18 10:35:31 -08:00
Yehuda Sadeh
509715810d rgw: remove fails_on_dho tags
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-01-18 10:33:02 -08:00
Yehuda Sadeh
da7558e3ab test_s3: add test_object_copy_canned_acl
test copy object with canned acl modification

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-01-18 10:07:01 -08:00
Yehuda Sadeh
761d7f290f rgw: add missing fails_on_dho to post tests
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-01-18 09:57:01 -08:00
Yehuda Sadeh
83813602bc s3tests: fix post tests
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-01-18 09:37:21 -08:00
caleb miles
3b2c7b6b81 test_s3: Add tests of post object.
Tests the implementation of browser based uploads via a POST request.

Signed-off-by: caleb miles <caleb.miles@inktank.com>
2013-01-18 09:37:12 -08:00