From 464500dc9291c6d8f2381fb63b8950fa6f700415 Mon Sep 17 00:00:00 2001 From: Hai Huang Date: Sat, 3 Mar 2018 15:22:25 -0500 Subject: [PATCH] added async_req parameter (default to True) to ApiClient constructor --- kubernetes/client/api_client.py | 13 ++++++++----- kubernetes/e2e_test/test_client.py | 10 ++++++++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/kubernetes/client/api_client.py b/kubernetes/client/api_client.py index 3b89eee848..1dbc3577ba 100644 --- a/kubernetes/client/api_client.py +++ b/kubernetes/client/api_client.py @@ -59,12 +59,14 @@ class ApiClient(object): 'object': object, } - def __init__(self, configuration=None, header_name=None, header_value=None, cookie=None): + def __init__(self, configuration=None, header_name=None, header_value=None, cookie=None, async_req=True): if configuration is None: configuration = Configuration() self.configuration = configuration - self.pool = ThreadPool() + self.async_req = async_req + if async_req: + self.pool = ThreadPool() self.rest_client = RESTClientObject(configuration) self.default_headers = {} if header_name is not None: @@ -74,8 +76,9 @@ def __init__(self, configuration=None, header_name=None, header_value=None, cook self.user_agent = 'Swagger-Codegen/5.0.0-snapshot/python' def __del__(self): - self.pool.close() - self.pool.join() + if self.async_req: + self.pool.close() + self.pool.join() @property def user_agent(self): @@ -313,7 +316,7 @@ def call_api(self, resource_path, method, If parameter async is False or missing, then the method will return the response directly. """ - if not async: + if not async or not self.async_req: return self.__call_api(resource_path, method, path_params, query_params, header_params, body, post_params, files, diff --git a/kubernetes/e2e_test/test_client.py b/kubernetes/e2e_test/test_client.py index 7331304b71..fe8b911d37 100644 --- a/kubernetes/e2e_test/test_client.py +++ b/kubernetes/e2e_test/test_client.py @@ -234,3 +234,13 @@ def test_node_apis(self): node = api.read_node(name=item.metadata.name) self.assertTrue(len(node.metadata.labels) > 0) self.assertTrue(isinstance(node.metadata.labels, dict)) + + def test_sync_node_apis(self): + client = api_client.ApiClient(configuration=self.config, async_req=False) + api = core_v1_api.CoreV1Api(client) + + for item in api.list_node().items: + node = api.read_node(name=item.metadata.name) + self.assertTrue(len(node.metadata.labels) > 0) + self.assertTrue(isinstance(node.metadata.labels, dict)) +