Merge pull request #10 from jhollowe/file-configs
Allow files as config sources
This commit is contained in:
commit
8bdaa48c48
1 changed files with 28 additions and 14 deletions
|
@ -165,22 +165,20 @@ class SignalHandler():
|
||||||
logger.info("Exporter is shutting down")
|
logger.info("Exporter is shutting down")
|
||||||
self.shutdown = True
|
self.shutdown = True
|
||||||
|
|
||||||
|
def get_config_value(key, default=""):
|
||||||
|
input_path = os.environ.get("FILE__" + key, None)
|
||||||
|
if input_path is not None:
|
||||||
|
try:
|
||||||
|
with open(input_path, "r") as input_file:
|
||||||
|
return input_file.read().strip()
|
||||||
|
except IOError as e:
|
||||||
|
logger.error(f"Unable to read value for {key} from {input_path}: {str(e)}")
|
||||||
|
|
||||||
|
return os.environ.get(key, default)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
config = {
|
# Init logger so it can be used
|
||||||
"host": os.environ.get("QBITTORRENT_HOST", ""),
|
|
||||||
"port": os.environ.get("QBITTORRENT_PORT", ""),
|
|
||||||
"username": os.environ.get("QBITTORRENT_USER", ""),
|
|
||||||
"password": os.environ.get("QBITTORRENT_PASS", ""),
|
|
||||||
"exporter_port": int(os.environ.get("EXPORTER_PORT", "8000")),
|
|
||||||
"log_level": os.environ.get("EXPORTER_LOG_LEVEL", "INFO"),
|
|
||||||
"metrics_prefix": os.environ.get("METRICS_PREFIX", "qbittorrent"),
|
|
||||||
}
|
|
||||||
|
|
||||||
# Register signal handler
|
|
||||||
signal_handler = SignalHandler()
|
|
||||||
|
|
||||||
# Init logger
|
|
||||||
logHandler = logging.StreamHandler()
|
logHandler = logging.StreamHandler()
|
||||||
formatter = jsonlogger.JsonFormatter(
|
formatter = jsonlogger.JsonFormatter(
|
||||||
"%(asctime) %(levelname) %(message)",
|
"%(asctime) %(levelname) %(message)",
|
||||||
|
@ -189,8 +187,24 @@ def main():
|
||||||
logHandler.setFormatter(formatter)
|
logHandler.setFormatter(formatter)
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
logger.addHandler(logHandler)
|
logger.addHandler(logHandler)
|
||||||
|
logger.setLevel("INFO") # default until config is loaded
|
||||||
|
|
||||||
|
config = {
|
||||||
|
"host": get_config_value("QBITTORRENT_HOST", ""),
|
||||||
|
"port": get_config_value("QBITTORRENT_PORT", ""),
|
||||||
|
"username": get_config_value("QBITTORRENT_USER", ""),
|
||||||
|
"password": get_config_value("QBITTORRENT_PASS", ""),
|
||||||
|
"exporter_port": int(get_config_value("EXPORTER_PORT", "8000")),
|
||||||
|
"log_level": get_config_value("EXPORTER_LOG_LEVEL", "INFO"),
|
||||||
|
"metrics_prefix": get_config_value("METRICS_PREFIX", "qbittorrent"),
|
||||||
|
}
|
||||||
|
# set level once config has been loaded
|
||||||
logger.setLevel(config["log_level"])
|
logger.setLevel(config["log_level"])
|
||||||
|
|
||||||
|
# Register signal handler
|
||||||
|
signal_handler = SignalHandler()
|
||||||
|
|
||||||
|
|
||||||
if not config["host"]:
|
if not config["host"]:
|
||||||
logger.error("No host specified, please set QBITTORRENT_HOST environment variable")
|
logger.error("No host specified, please set QBITTORRENT_HOST environment variable")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
Loading…
Reference in a new issue