From 692485cc21d2dc436ab80a3f7db68c405b4b829b Mon Sep 17 00:00:00 2001 From: Antony Chazapis Date: Fri, 23 Mar 2012 15:25:30 +0200 Subject: [PATCH] Check Content-Type up to semicolon. Fixes #2240 --- snf-pithos-backend/pithos/backends/modular.py | 4 ++-- snf-pithos-tools/pithos/tools/fs.py | 2 +- snf-pithos-tools/pithos/tools/sync.py | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/snf-pithos-backend/pithos/backends/modular.py b/snf-pithos-backend/pithos/backends/modular.py index c90a6e1..453a7a9 100644 --- a/snf-pithos-backend/pithos/backends/modular.py +++ b/snf-pithos-backend/pithos/backends/modular.py @@ -1061,7 +1061,7 @@ class ModularBackend(BaseBackend): if node is not None: props = self.node.version_lookup(node, inf, CLUSTER_NORMAL) if props is not None: - if props[self.TYPE] in ('application/directory', 'application/folder'): + if props[self.TYPE].split(';', 1)[0].strip() in ('application/directory', 'application/folder'): formatted.append((p.rstrip('/') + '/', self.MATCH_PREFIX)) formatted.append((p, self.MATCH_EXACT)) return formatted @@ -1081,7 +1081,7 @@ class ModularBackend(BaseBackend): if node is not None: props = self.node.version_lookup(node, inf, CLUSTER_NORMAL) if props is not None: - if props[self.TYPE] in ('application/directory', 'application/folder'): + if props[self.TYPE].split(';', 1)[0].strip() in ('application/directory', 'application/folder'): return p return None diff --git a/snf-pithos-tools/pithos/tools/fs.py b/snf-pithos-tools/pithos/tools/fs.py index b6dae70..264ba0d 100755 --- a/snf-pithos-tools/pithos/tools/fs.py +++ b/snf-pithos-tools/pithos/tools/fs.py @@ -248,7 +248,7 @@ class StoreFS(Operations): gid = int(meta.get('x-account-meta-gid', 0)) size = int(meta.get('content-length', 0)) - if meta['content-type'] == 'application/directory': + if meta['content-type'].split(';', 1)[0].strip() == 'application/directory': mode = int(meta.get('x-object-meta-mode', 0755)) flags = S_IFDIR nlink = 2 diff --git a/snf-pithos-tools/pithos/tools/sync.py b/snf-pithos-tools/pithos/tools/sync.py index 4c56466..d3ac107 100755 --- a/snf-pithos-tools/pithos/tools/sync.py +++ b/snf-pithos-tools/pithos/tools/sync.py @@ -148,7 +148,7 @@ class State(object): meta = client.retrieve_object_metadata(self.container, path) except Fault: return 'DEL' - if meta.get('content-type', None) == 'application/directory': + if meta.get('content-type', '').split(';', 1)[0].strip() == 'application/directory': return 'DIR' else: return meta['x-object-hash'] @@ -292,7 +292,7 @@ def walk(dir, container): if 'subdir' in object: continue name = object['name'] - if object['content_type'] == 'application/directory': + if object['content_type'].split(';', 1)[0].strip() == 'application/directory': dirs.add(name) else: files.add(name) -- 1.7.10.4