X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/ad76f76cdd557d61497aa0ff26e0537788f2d5b6..d72f3039300613487af606ce69e5b7b8b2c67027:/services/fuse/arvados_fuse/__init__.py diff --git a/services/fuse/arvados_fuse/__init__.py b/services/fuse/arvados_fuse/__init__.py index 5cc666058f..2d4f6c9dcd 100644 --- a/services/fuse/arvados_fuse/__init__.py +++ b/services/fuse/arvados_fuse/__init__.py @@ -31,40 +31,6 @@ _logger = logging.getLogger('arvados.arvados_fuse') # appear as underscores in the fuse mount.) _disallowed_filename_characters = re.compile('[\x00/]') -class SafeApi(object): - """Threadsafe wrapper for API object. - - This stores and returns a different api object per thread, because - httplib2 which underlies apiclient is not threadsafe. - """ - - def __init__(self, config): - self.host = config.get('ARVADOS_API_HOST') - self.api_token = config.get('ARVADOS_API_TOKEN') - self.insecure = config.flag_is_true('ARVADOS_API_HOST_INSECURE') - self.local = threading.local() - self.block_cache = arvados.KeepBlockCache() - - def localapi(self): - if 'api' not in self.local.__dict__: - self.local.api = arvados.api( - version='v1', - host=self.host, token=self.api_token, insecure=self.insecure) - return self.local.api - - def localkeep(self): - if 'keep' not in self.local.__dict__: - self.local.keep = arvados.KeepClient(api_client=self.localapi(), block_cache=self.block_cache) - return self.local.keep - - def __getattr__(self, name): - # Proxy nonexistent attributes to the local API client. - try: - return getattr(self.localapi(), name) - except AttributeError: - return super(SafeApi, self).__getattr__(name) - - def convertTime(t): """Parse Arvados timestamp to unix time.""" if not t: @@ -350,7 +316,7 @@ class CollectionDirectory(Directory): with llfuse.lock_released: coll_reader = arvados.CollectionReader( - self.collection_locator, self.api, self.api.localkeep(), + self.collection_locator, self.api, self.api.keep, num_retries=self.num_retries) new_collection_object = coll_reader.api_response() or {} # If the Collection only exists in Keep, there will be no API @@ -935,5 +901,5 @@ class Operations(llfuse.Operations): # arv-mount. # The workaround is to implement it with the proper number of parameters, # and then everything works out. - def create(self, p1, p2, p3, p4, p5): + def create(self, inode_parent, name, mode, flags, ctx): raise llfuse.FUSEError(errno.EROFS)