projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '18027-unmount-fuse'
[arvados.git]
/
sdk
/
python
/
arvados
/
safeapi.py
diff --git
a/sdk/python/arvados/safeapi.py
b/sdk/python/arvados/safeapi.py
index 5c5c87250ac678f9b9bf93cbf56cb335707c6554..c6e17cae0b71a4ca0b580bbb6f8c056da8cb8988 100644
(file)
--- a/
sdk/python/arvados/safeapi.py
+++ b/
sdk/python/arvados/safeapi.py
@@
-1,8
+1,16
@@
-import threading
-import api
-import keep
-import config
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+from __future__ import absolute_import
+
+from builtins import object
import copy
import copy
+import threading
+
+import arvados
+import arvados.keep as keep
+import arvados.config as config
class ThreadSafeApiCache(object):
"""Threadsafe wrapper for API objects.
class ThreadSafeApiCache(object):
"""Threadsafe wrapper for API objects.
@@
-12,16
+20,24
@@
class ThreadSafeApiCache(object):
"""
"""
- def __init__(self, apiconfig=None, keep_params={}):
+ def __init__(self, apiconfig=None, keep_params={}
, api_params={}
):
if apiconfig is None:
apiconfig = config.settings()
self.apiconfig = copy.copy(apiconfig)
if apiconfig is None:
apiconfig = config.settings()
self.apiconfig = copy.copy(apiconfig)
+ self.api_params = api_params
self.local = threading.local()
self.local = threading.local()
+
+ # Initialize an API object for this thread before creating
+ # KeepClient, this will report if ARVADOS_API_HOST or
+ # ARVADOS_API_TOKEN are missing.
+ self.localapi()
+
self.keep = keep.KeepClient(api_client=self, **keep_params)
def localapi(self):
if 'api' not in self.local.__dict__:
self.keep = keep.KeepClient(api_client=self, **keep_params)
def localapi(self):
if 'api' not in self.local.__dict__:
- self.local.api = api.api_from_config('v1', apiconfig=self.apiconfig)
+ self.local.api = arvados.api_from_config('v1', apiconfig=self.apiconfig,
+ **self.api_params)
return self.local.api
def __getattr__(self, name):
return self.local.api
def __getattr__(self, name):