Skip to content

Commit

Permalink
Merge pull request #1998 from phlogistonjohn/jjm-config-alt-path
Browse files Browse the repository at this point in the history
config: allow reading teuthology config from env var location
  • Loading branch information
kshtsk authored Jan 7, 2025
2 parents cca92a2 + abc47fd commit 07120e2
Showing 1 changed file with 23 additions and 7 deletions.
30 changes: 23 additions & 7 deletions teuthology/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@
from collections import MutableMapping


# Configuration constants
SYSTEM_CONFIG_PATH = '/etc/teuthology.yaml'
USER_CONFIG_PATH = '~/.teuthology.yaml'
CONFIG_PATH_VAR_NAME = 'TEUTHOLOGY_CONFIG' # name of env var to check


def init_logging():
log = logging.getLogger(__name__)
return log
Expand Down Expand Up @@ -135,9 +141,9 @@ class TeuthologyConfig(YamlConfig):
"""
This class is intended to unify teuthology's many configuration files and
objects. Currently it serves as a convenient interface to
~/.teuthology.yaml and nothing else.
~/.teuthology.yaml or equivalent.
"""
yaml_path = os.path.join(os.path.expanduser('~/.teuthology.yaml'))
yaml_path = USER_CONFIG_PATH # yaml_path is updated in _get_config_path
_defaults = {
'archive_base': '/home/teuthworker/archive',
'archive_upload': None,
Expand Down Expand Up @@ -285,10 +291,20 @@ def set_config_attr(obj):


def _get_config_path():
system_config_path = '/etc/teuthology.yaml'
if not os.path.exists(TeuthologyConfig.yaml_path) and \
os.path.exists(system_config_path):
return system_config_path
return TeuthologyConfig.yaml_path
"""Look for a teuthology config yaml and return it's path.
Raises ValueError if no config yaml can be found.
"""
paths = [
os.path.join(os.path.expanduser(USER_CONFIG_PATH)),
SYSTEM_CONFIG_PATH,
]
if CONFIG_PATH_VAR_NAME in os.environ:
paths.insert(0, os.path.expanduser(os.environ[CONFIG_PATH_VAR_NAME]))
for path in paths:
if os.path.exists(path):
return path
log.warning(f"no teuthology config found, looked for: {paths}")
return None


config = TeuthologyConfig(yaml_path=_get_config_path())

0 comments on commit 07120e2

Please sign in to comment.