Add reporter for ReportPortal

Related-Prod: PRODX-48948
Change-Id: Ib879a913513c8da5b9a6090798951e1396939bc2
diff --git a/rp_reporter/settings.py b/rp_reporter/settings.py
new file mode 100644
index 0000000..13f6a6c
--- /dev/null
+++ b/rp_reporter/settings.py
@@ -0,0 +1,35 @@
+from os import environ
+import yaml
+from pathlib import Path
+import logging
+
+LOG = logging.getLogger(__name__)
+
+RP_CONFIG_FILE = environ.get("RP_CONFIG_FILE") or (Path.home() / ".reportportal_config")
+
+def from_conf(key_name):
+    if not Path(RP_CONFIG_FILE).exists():
+        LOG.warning(f"Can't get {key_name} because config file "
+                    f"not found: {RP_CONFIG_FILE}")
+        return None
+    with open(RP_CONFIG_FILE) as f:
+        yaml_config = yaml.safe_load(f)
+        value = yaml_config.get(key_name)
+        if value is None:
+            LOG.warning(f"Can't get {key_name} because it's absent in {RP_CONFIG_FILE}")
+        return value
+
+def call_error(key_name):
+    raise Exception(f"{key_name} should be defined in {RP_CONFIG_FILE} or "
+                    f"by environment variable")
+
+RP_APIKEY = environ.get('RP_APIKEY') or from_conf('RP_APIKEY') or call_error("RP_APIKEY")
+RP_ENDPOINT = environ.get('RP_ENDPOINT') or from_conf('RP_ENDPOINT') or call_error("RP_ENDPOINT")
+RP_PROJECT = environ.get('RP_PROJECT') or from_conf('RP_PROJECT') or call_error("RP_PROJECT")
+
+RP_LOG_FILE = environ.get('RP_LOG_FILE') or from_conf('RP_LOG_FILE') or (Path.cwd() / "report.log")
+
+if __name__ == "__main__":
+    LOG.info(f"RP_APIKEY: {RP_APIKEY}")
+    LOG.info(f"RP_ENDPOINT: {RP_ENDPOINT}")
+    LOG.info(f"RP_PROJECT: {RP_PROJECT}")
\ No newline at end of file