Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

config: allow reading teuthology config from env var location #1998

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

phlogistonjohn
Copy link
Contributor

Allow changing the default "user" location of the teuthology configuration yaml using the (optional) TEUTHOLOGY_CONFIG environment variable. This change aids my effort to run a customized local teuthology environment.

@phlogistonjohn
Copy link
Contributor Author

Recursion error looks real and possibly related to this change. Will investigate.

@@ -285,10 +284,13 @@ def set_config_attr(obj):


def _get_config_path():
config_path = os.environ.get('TEUTHOLOGY_CONFIG', '~/.teuthology.yaml')
config_path = os.path.join(os.path.expanduser(config_path))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bad style, overriding variable.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also if we declare the env for the config, we should stop immediately if such file does not exists.

@@ -137,7 +137,6 @@ class TeuthologyConfig(YamlConfig):
objects. Currently it serves as a convenient interface to
~/.teuthology.yaml and nothing else.
"""
yaml_path = os.path.join(os.path.expanduser('~/.teuthology.yaml'))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess if drop this line you have to update the comment above about "interface to ~/.teuthology.yaml and nothing else".

for path in (config_path, system_config_path):
if os.path.exists(path):
return path
return None
Copy link
Contributor

@kshtsk kshtsk Aug 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The idea was to always return a meaningful value, see usage of config constructor below.

@phlogistonjohn
Copy link
Contributor Author

@zmc is there a primer on how & what basic tests to run locally?
I tried cleaning this up and testing multiple scenarios on my machine (no env var, env var but no file, etc) but the CI tests still don't like me. I presume it's because this code is doing a bunch of stuff at import time (something I don't care for) and that makes it hard to know how these test suites will handle it.

I'd like to upstream parts of my "hacked up local teuthology" and this is merely the first part. So getting a better handle on how you all test it would hopefully avoid me stumbling over the same problems again and again. Thanks.

@kshtsk
Copy link
Contributor

kshtsk commented Nov 13, 2024

any updates?

Allow changing the default "user" location of the teuthology
configuration yaml using the (optional) TEUTHOLOGY_CONFIG environment
variable. This change aids my effort to run a customized local
teuthology environment.

Signed-off-by: John Mulligan <[email protected]>
Comment on lines +11 to +14
_SYSTEM_CONFIG_PATH = '/etc/teuthology.yaml'
_USER_CONFIG_PATH = '~/.teuthology.yaml'
_ALT_PATH_ENV_VAR = 'TEUTHOLOGY_CONFIG'

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to PEP8 there is no need to add _ (underscore) in the beginning of the constant name, may we have just SYSTEM_CONFIG_PATH and USER_CONFIG_PATH?
Also, I think to keep similar naming to env, like CONFIG_PATH_ENV_NAME.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants