X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/aacc78d5403686ea326eda6bae3896f9725f9506..964ab3dd90ff1508efc0c77378cde2b3a4da1029:/services/fuse/arvados_fuse/__init__.py diff --git a/services/fuse/arvados_fuse/__init__.py b/services/fuse/arvados_fuse/__init__.py index 80ad6b3343..dfdd3127fd 100644 --- a/services/fuse/arvados_fuse/__init__.py +++ b/services/fuse/arvados_fuse/__init__.py @@ -526,6 +526,8 @@ class ProjectDirectory(Directory): self.project_object = project_object self.project_object_file = None self.uuid = project_object['uuid'] + self._poll = poll + self._poll_time = poll_time def createDirectory(self, i): if collection_uuid_pattern.match(i['uuid']): @@ -727,13 +729,14 @@ class Operations(llfuse.Operations): so request handlers do not run concurrently unless the lock is explicitly released using "with llfuse.lock_released:"''' - def __init__(self, uid, gid, encoding="utf-8"): + def __init__(self, uid, gid, encoding="utf-8", set_executable_bit=False): super(Operations, self).__init__() self.inodes = Inodes() self.uid = uid self.gid = gid self.encoding = encoding + self.set_executable_bit = set_executable_bit # dict of inode to filehandle self._filehandles = {} @@ -766,6 +769,8 @@ class Operations(llfuse.Operations): entry.st_mode = stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH if isinstance(e, Directory): entry.st_mode |= stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH | stat.S_IFDIR + elif isinstance(e, StreamReaderFile) and self.set_executable_bit: + entry.st_mode |= stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH | stat.S_IFREG else: entry.st_mode |= stat.S_IFREG