summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonty Taylor <mordred@inaugust.com>2017-05-16 18:12:41 -0500
committerMonty Taylor <mordred@inaugust.com>2017-05-16 18:13:48 -0500
commit8235e0ce6cff00bfa84501865a3cf48511cdf2ec (patch)
tree364153e21231288ed54820bd3e7dfc8f2b879a84
parentf6804f6b0dec9b1322ee996972489c1118f19f90 (diff)
downloados-client-config-8235e0ce6cff00bfa84501865a3cf48511cdf2ec.tar.gz
Keep a singleton to support multiple get_config calls
We are destructive to os.environ in the OpenStackConfig constructor- so it really should only ever be called once. Make sure get_config does this. Change-Id: I279bdf68408a807ec18fba634df3769c9b8fc4dc Closes-Bug: #1691294
-rw-r--r--os_client_config/__init__.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/os_client_config/__init__.py b/os_client_config/__init__.py
index 1f1266c..4246525 100644
--- a/os_client_config/__init__.py
+++ b/os_client_config/__init__.py
@@ -21,6 +21,7 @@ from os_client_config.config import OpenStackConfig # noqa
__version__ = pbr.version.VersionInfo('os_client_config').version_string()
+_config = None
def get_config(
@@ -28,16 +29,18 @@ def get_config(
app_name=None, app_version=None,
**kwargs):
load_yaml_config = kwargs.pop('load_yaml_config', True)
- config = OpenStackConfig(
- load_yaml_config=load_yaml_config,
- app_name=app_name, app_version=app_version)
+ global _config
+ if not _config:
+ _config = OpenStackConfig(
+ load_yaml_config=load_yaml_config,
+ app_name=app_name, app_version=app_version)
if options:
- config.register_argparse_arguments(options, sys.argv, service_key)
+ _config.register_argparse_arguments(options, sys.argv, service_key)
parsed_options = options.parse_known_args(sys.argv)
else:
parsed_options = None
- return config.get_one_cloud(options=parsed_options, **kwargs)
+ return _config.get_one_cloud(options=parsed_options, **kwargs)
def make_rest_client(