X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/32030bce1b67218c91a8ed2a0287ec973221c5f7..ffd49a86ec939a674e141a4cab8dcb3b6baaf2e6:/sdk/python/arvados/collection.py diff --git a/sdk/python/arvados/collection.py b/sdk/python/arvados/collection.py index a076de6baf..ebca15c54b 100644 --- a/sdk/python/arvados/collection.py +++ b/sdk/python/arvados/collection.py @@ -827,7 +827,7 @@ class RichCollectionBase(CollectionBase): self.set_committed(False) self.notify(DEL, self, pathcomponents[0], deleteditem) else: - item.remove(pathcomponents[1]) + item.remove(pathcomponents[1], recursive=recursive) def _clonefrom(self, source): for k,v in listitems(source): @@ -1262,7 +1262,8 @@ class Collection(RichCollectionBase): block_manager=None, replication_desired=None, storage_classes_desired=None, - put_threads=None): + put_threads=None, + get_threads=None): """Collection constructor. :manifest_locator_or_text: @@ -1307,10 +1308,16 @@ class Collection(RichCollectionBase): super(Collection, self).__init__(parent) self._api_client = api_client self._keep_client = keep_client + + # Use the keep client from ThreadSafeApiCache + if self._keep_client is None and isinstance(self._api_client, ThreadSafeApiCache): + self._keep_client = self._api_client.keep + self._block_manager = block_manager self.replication_desired = replication_desired self._storage_classes_desired = storage_classes_desired self.put_threads = put_threads + self.get_threads = get_threads if apiconfig: self._config = apiconfig @@ -1404,7 +1411,7 @@ class Collection(RichCollectionBase): @synchronized def _my_api(self): if self._api_client is None: - self._api_client = ThreadSafeApiCache(self._config) + self._api_client = ThreadSafeApiCache(self._config, version='v1') if self._keep_client is None: self._keep_client = self._api_client.keep return self._api_client @@ -1424,7 +1431,12 @@ class Collection(RichCollectionBase): copies = (self.replication_desired or self._my_api()._rootDesc.get('defaultCollectionReplication', 2)) - self._block_manager = _BlockManager(self._my_keep(), copies=copies, put_threads=self.put_threads, num_retries=self.num_retries, storage_classes_func=self.storage_classes_desired) + self._block_manager = _BlockManager(self._my_keep(), + copies=copies, + put_threads=self.put_threads, + num_retries=self.num_retries, + storage_classes_func=self.storage_classes_desired, + get_threads=self.get_threads,) return self._block_manager def _remember_api_response(self, response):