blob: 13f6a6c550c6fb00721ce266826897459ff53d5d [file] [log] [blame]
Anna Arhipovafa7e1ef2025-03-25 10:23:37 +01001from os import environ
2import yaml
3from pathlib import Path
4import logging
5
6LOG = logging.getLogger(__name__)
7
8RP_CONFIG_FILE = environ.get("RP_CONFIG_FILE") or (Path.home() / ".reportportal_config")
9
10def from_conf(key_name):
11 if not Path(RP_CONFIG_FILE).exists():
12 LOG.warning(f"Can't get {key_name} because config file "
13 f"not found: {RP_CONFIG_FILE}")
14 return None
15 with open(RP_CONFIG_FILE) as f:
16 yaml_config = yaml.safe_load(f)
17 value = yaml_config.get(key_name)
18 if value is None:
19 LOG.warning(f"Can't get {key_name} because it's absent in {RP_CONFIG_FILE}")
20 return value
21
22def call_error(key_name):
23 raise Exception(f"{key_name} should be defined in {RP_CONFIG_FILE} or "
24 f"by environment variable")
25
26RP_APIKEY = environ.get('RP_APIKEY') or from_conf('RP_APIKEY') or call_error("RP_APIKEY")
27RP_ENDPOINT = environ.get('RP_ENDPOINT') or from_conf('RP_ENDPOINT') or call_error("RP_ENDPOINT")
28RP_PROJECT = environ.get('RP_PROJECT') or from_conf('RP_PROJECT') or call_error("RP_PROJECT")
29
30RP_LOG_FILE = environ.get('RP_LOG_FILE') or from_conf('RP_LOG_FILE') or (Path.cwd() / "report.log")
31
32if __name__ == "__main__":
33 LOG.info(f"RP_APIKEY: {RP_APIKEY}")
34 LOG.info(f"RP_ENDPOINT: {RP_ENDPOINT}")
35 LOG.info(f"RP_PROJECT: {RP_PROJECT}")