summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2018-03-29 06:22:38 +0000
committerGerrit Code Review <review@openstack.org>2018-03-29 06:22:38 +0000
commit96daa8e39d476e1b9e44af4449275b6b904df251 (patch)
tree6c815bb041ffbcc97e9640a26892e8608481a60a
parent72230f86bea82d9164002bd28dadb49adeb05d6a (diff)
parent0c41c91d55de1e4cfc09c00fa4968b0525694a96 (diff)
downloadswift-96daa8e39d476e1b9e44af4449275b6b904df251.tar.gz
Merge "Remove zero-byte final segment hack" into feature/s3api
-rw-r--r--swift/common/middleware/s3api/controllers/multi_upload.py19
-rw-r--r--test/unit/common/middleware/s3api/test_multi_upload.py8
2 files changed, 3 insertions, 24 deletions
diff --git a/swift/common/middleware/s3api/controllers/multi_upload.py b/swift/common/middleware/s3api/controllers/multi_upload.py
index 4d757790f..3e6034226 100644
--- a/swift/common/middleware/s3api/controllers/multi_upload.py
+++ b/swift/common/middleware/s3api/controllers/multi_upload.py
@@ -592,19 +592,6 @@ class UploadController(Controller):
self.logger.error(e)
raise exc_type, exc_value, exc_traceback
- # Following swift commit 7f636a5, zero-byte segments aren't allowed,
- # even as the final segment
- empty_seg = None
- if manifest[-1]['size_bytes'] == 0:
- empty_seg = manifest.pop()
-
- # We'll check the sizes of all except the last segment below, but
- # since we just popped off a zero-byte segment, we should check
- # that last segment, too.
- if manifest and \
- manifest[-1]['size_bytes'] < self.conf.min_segment_size:
- raise EntityTooSmall()
-
# Check the size of each segment except the last and make sure they are
# all more than the minimum upload chunk size
for info in manifest[:-1]:
@@ -634,12 +621,6 @@ class UploadController(Controller):
else:
raise
- if empty_seg:
- # clean up the zero-byte segment
- _, empty_seg_cont, empty_seg_name = empty_seg['path'].split('/', 2)
- req.get_response(self.app, 'DELETE',
- container=empty_seg_cont, obj=empty_seg_name)
-
# clean up the multipart-upload record
obj = '%s/%s' % (req.object_name, upload_id)
try:
diff --git a/test/unit/common/middleware/s3api/test_multi_upload.py b/test/unit/common/middleware/s3api/test_multi_upload.py
index d66eeb748..d686ecf45 100644
--- a/test/unit/common/middleware/s3api/test_multi_upload.py
+++ b/test/unit/common/middleware/s3api/test_multi_upload.py
@@ -818,12 +818,11 @@ class TestS3ApiMultiUpload(S3ApiTestCase):
('HEAD', '/v1/AUTH_test/empty-bucket+segments/object/X'),
('GET', '/v1/AUTH_test/empty-bucket+segments?delimiter=/&'
'format=json&prefix=object/X/'),
- # note the lack of multipart-manifest=put below
- ('PUT', '/v1/AUTH_test/empty-bucket/object'),
- ('DELETE', '/v1/AUTH_test/empty-bucket+segments/object/X/1'),
+ ('PUT',
+ '/v1/AUTH_test/empty-bucket/object?multipart-manifest=put'),
('DELETE', '/v1/AUTH_test/empty-bucket+segments/object/X'),
])
- _, _, put_headers = self.swift.calls_with_headers[-3]
+ _, _, put_headers = self.swift.calls_with_headers[-2]
self.assertEqual(put_headers.get('X-Object-Meta-Foo'), 'bar')
self.assertEqual(put_headers.get('Content-Type'), 'baz/quux')
@@ -936,7 +935,6 @@ class TestS3ApiMultiUpload(S3ApiTestCase):
('GET', '/v1/AUTH_test/bucket+segments?delimiter=/&'
'format=json&prefix=object/X/'),
('PUT', '/v1/AUTH_test/bucket/object?multipart-manifest=put'),
- ('DELETE', '/v1/AUTH_test/bucket+segments/object/X/3'),
('DELETE', '/v1/AUTH_test/bucket+segments/object/X'),
])