summaryrefslogtreecommitdiff
path: root/swiftclient/service.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-05-19 08:53:50 +0000
committerGerrit Code Review <review@openstack.org>2016-05-19 08:53:50 +0000
commit8ffc5c11ae6e246769a15104096873ed47d535a5 (patch)
treed935612a7201fb3298cca5643b51005760a6723c /swiftclient/service.py
parent8da9cbf1615002e44038ae2161ba278ea5c05758 (diff)
parent9fd537a08245cf6a34c1abdf8b7c42bfd3669c74 (diff)
downloadpython-swiftclient-8ffc5c11ae6e246769a15104096873ed47d535a5.tar.gz
Merge "Use application/directory content-type for dir markers"
Diffstat (limited to 'swiftclient/service.py')
-rw-r--r--swiftclient/service.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/swiftclient/service.py b/swiftclient/service.py
index 081d624..de08090 100644
--- a/swiftclient/service.py
+++ b/swiftclient/service.py
@@ -202,6 +202,10 @@ _default_local_options = {
}
POLICY = 'X-Storage-Policy'
+KNOWN_DIR_MARKERS = (
+ 'application/directory', # Preferred
+ 'text/directory', # Historically relevant
+)
def get_from_queue(q, timeout=864000):
@@ -1143,9 +1147,8 @@ class SwiftService(object):
fp = None
try:
- content_type = headers.get('content-type')
- if (content_type and
- content_type.split(';', 1)[0] == 'text/directory'):
+ content_type = headers.get('content-type', '').split(';', 1)[0]
+ if content_type in KNOWN_DIR_MARKERS:
make_dir = not no_file and out_file != "-"
if make_dir and not isdir(path):
mkdirs(path)
@@ -1603,12 +1606,12 @@ class SwiftService(object):
if options['changed']:
try:
headers = conn.head_object(container, obj)
- ct = headers.get('content-type')
+ ct = headers.get('content-type', '').split(';', 1)[0]
cl = int(headers.get('content-length'))
et = headers.get('etag')
mt = headers.get('x-object-meta-mtime')
- if (ct.split(';', 1)[0] == 'text/directory' and
+ if (ct in KNOWN_DIR_MARKERS and
cl == 0 and
et == EMPTY_ETAG and
mt == put_headers['x-object-meta-mtime']):
@@ -1627,7 +1630,7 @@ class SwiftService(object):
return res
try:
conn.put_object(container, obj, '', content_length=0,
- content_type='text/directory',
+ content_type=KNOWN_DIR_MARKERS[0],
headers=put_headers,
response_dict=results_dict)
res.update({