X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1128f6e0d62f71f4ee91ab609c918ae5bb291edd..8b90f80efca772efd2697ffc70d7809c32564171:/services/fuse/arvados_fuse/__init__.py diff --git a/services/fuse/arvados_fuse/__init__.py b/services/fuse/arvados_fuse/__init__.py index d2c95fc0b6..71c4ee5a2c 100644 --- a/services/fuse/arvados_fuse/__init__.py +++ b/services/fuse/arvados_fuse/__init__.py @@ -65,7 +65,9 @@ class SafeApi(object): def convertTime(t): - '''Parse Arvados timestamp to unix time.''' + """Parse Arvados timestamp to unix time.""" + if not t: + return 0 try: return calendar.timegm(time.strptime(t, "%Y-%m-%dT%H:%M:%SZ")) except (TypeError, ValueError): @@ -301,8 +303,10 @@ class CollectionDirectory(Directory): self.collection_object = None if isinstance(collection, dict): self.collection_locator = collection['uuid'] + self._mtime = convertTime(collection.get('modified_at')) else: self.collection_locator = collection + self._mtime = 0 def same(self, i): return i['uuid'] == self.collection_locator or i['portable_data_hash'] == self.collection_locator @@ -317,6 +321,8 @@ class CollectionDirectory(Directory): def new_collection(self, new_collection_object, coll_reader): self.collection_object = new_collection_object + self._mtime = convertTime(self.collection_object.get('modified_at')) + if self.collection_object_file is not None: self.collection_object_file.update(self.collection_object) @@ -390,10 +396,6 @@ class CollectionDirectory(Directory): else: return super(CollectionDirectory, self).__contains__(k) - def mtime(self): - self.checkupdate() - return convertTime(self.collection_object["modified_at"]) if self.collection_object is not None and 'modified_at' in self.collection_object else 0 - class MagicDirectory(Directory): '''A special directory that logically contains the set of all extant keep