diff options
author | Monty Taylor <mordred@inaugust.com> | 2017-05-16 18:12:41 -0500 |
---|---|---|
committer | Monty Taylor <mordred@inaugust.com> | 2017-05-16 18:13:48 -0500 |
commit | 8235e0ce6cff00bfa84501865a3cf48511cdf2ec (patch) | |
tree | 364153e21231288ed54820bd3e7dfc8f2b879a84 | |
parent | f6804f6b0dec9b1322ee996972489c1118f19f90 (diff) | |
download | os-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__.py | 13 |
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( |