From 7808957452118e1f8fa8adc679f8ab34c349159f Mon Sep 17 00:00:00 2001 From: Federico Ressi Date: Thu, 14 Mar 2019 12:06:42 +0100 Subject: [PATCH] Make Heat and Neutron clients creation lazy (just-in-time). Change-Id: I14bf6b9271d81049a954946640be4c6dc7a1eb85 --- tobiko/common/managers/network.py | 10 +++++++++- tobiko/common/managers/stack.py | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/tobiko/common/managers/network.py b/tobiko/common/managers/network.py index 6ae5baa97..137b3ec57 100644 --- a/tobiko/common/managers/network.py +++ b/tobiko/common/managers/network.py @@ -18,7 +18,15 @@ class NetworkManager(object): """Manages Neutron Resources.""" def __init__(self, client_manager): - self.client = client_manager.neutron_client + self._client_manager = client_manager + + _client = None + + @property + def client(self): + if not self._client: + self._client = self._client_manager.network_client + return self._client def create_sg_rules(self, rules, sg_id): """Creates security group rules.""" diff --git a/tobiko/common/managers/stack.py b/tobiko/common/managers/stack.py index 9ce4e539f..113b4fc64 100644 --- a/tobiko/common/managers/stack.py +++ b/tobiko/common/managers/stack.py @@ -41,10 +41,18 @@ class StackManager(object): """Manages Heat stacks.""" def __init__(self, client_manager, templates_dir, wait_interval=5): - self.client = client_manager.heat_client + self._client_manager = client_manager self.templates_dir = templates_dir self.wait_interval = wait_interval + _client = None + + @property + def client(self): + if not self._client: + self._client = self._client_manager.heat_client + return self._client + def load_template(self, template_path): """Loads template from a given file.""" _, template = template_utils.get_template_contents(template_path)