diff options
author | Clay Gerrard <clay.gerrard@gmail.com> | 2019-12-20 11:47:13 -0600 |
---|---|---|
committer | Clay Gerrard <clay.gerrard@gmail.com> | 2020-01-05 10:04:05 -0600 |
commit | b1178b4a967ab621e66356a9e7bca08de5be5e2a (patch) | |
tree | 9f0b36513c30c58408f0c415deb2d11d68b0bf5e /swift/common/request_helpers.py | |
parent | 4601548dabdec0a4dc89cefba11e963217255be3 (diff) | |
download | swift-b1178b4a967ab621e66356a9e7bca08de5be5e2a.tar.gz |
Allow reconciler to handle reserved names
Change-Id: Ib918f10e95970b9f562b88e923c25608b826b83f
Diffstat (limited to 'swift/common/request_helpers.py')
-rw-r--r-- | swift/common/request_helpers.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/swift/common/request_helpers.py b/swift/common/request_helpers.py index bdc234c9e..c8399f093 100644 --- a/swift/common/request_helpers.py +++ b/swift/common/request_helpers.py @@ -29,6 +29,7 @@ import six from swift.common.header_key_dict import HeaderKeyDict from swift import gettext_ as _ +from swift.common.constraints import AUTO_CREATE_ACCOUNT_PREFIX from swift.common.storage_policy import POLICIES from swift.common.exceptions import ListingIterError, SegmentError from swift.common.http import is_success @@ -41,6 +42,7 @@ from swift.common.utils import split_path, validate_device_partition, \ parse_content_range, csv_append, list_from_csv, Spliterator, quote, \ RESERVED from swift.common.wsgi import make_subrequest +from swift.container.reconciler import MISPLACED_OBJECTS_ACCOUNT OBJECT_TRANSIENT_SYSMETA_PREFIX = 'x-object-transient-sysmeta-' @@ -121,7 +123,8 @@ def validate_internal_obj(account, container, obj): if not container: raise ValueError('Container is required') validate_internal_container(account, container) - if obj: + if obj and not (account.startswith(AUTO_CREATE_ACCOUNT_PREFIX) or + account == MISPLACED_OBJECTS_ACCOUNT): _validate_internal_name(obj, 'object') if container.startswith(RESERVED) and not obj.startswith(RESERVED): raise HTTPBadRequest(body='Invalid user-namespace object ' |