clearml-server/apiserver/config/info.py

52 lines
1.0 KiB
Python
Raw Normal View History

2019-07-08 21:01:16 +00:00
from functools import lru_cache
2019-12-14 21:33:04 +00:00
from os import getenv
from pathlib import Path
2019-07-08 21:01:16 +00:00
2021-05-03 14:26:44 +00:00
from boltons.iterutils import first
2021-01-05 14:44:31 +00:00
from apiserver.config_repo import config
2021-01-05 14:28:49 +00:00
from apiserver.version import __version__
2019-07-08 21:01:16 +00:00
root = Path(__file__).parent.parent
def _get(prop_name, env_suffix=None, default=""):
2021-05-03 14:26:44 +00:00
suffix = env_suffix or prop_name
keys = [f"{p}_SERVER_{suffix}" for p in ("CLEARML", "TRAINS")]
value = first(map(getenv, keys))
if value:
return value
2019-07-08 21:01:16 +00:00
try:
return (root / prop_name).read_text().strip()
2019-07-08 21:01:16 +00:00
except FileNotFoundError:
return default
@lru_cache()
def get_build_number():
return _get("BUILD")
2019-07-08 21:01:16 +00:00
@lru_cache()
def get_version():
return _get("VERSION", default=__version__)
@lru_cache()
def get_commit_number():
return _get("COMMIT")
2019-12-14 21:33:04 +00:00
@lru_cache()
def get_deployment_type() -> str:
return _get("DEPLOY", env_suffix="DEPLOYMENT_TYPE", default="manual")
def get_default_company():
return config.get("apiserver.default_company")
missed_es_upgrade = False
es_connection_error = False