added logging to Config
This commit is contained in:
@@ -1,7 +1,8 @@
|
|||||||
import logging
|
import logging
|
||||||
|
from logger import getLogger
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from lxml import etree
|
from lxml import etree
|
||||||
from functools import cached_property
|
from functools import cached_property, lru_cache
|
||||||
from arguments import ArgumentsParser
|
from arguments import ArgumentsParser
|
||||||
from typing import NamedTuple, Optional
|
from typing import NamedTuple, Optional
|
||||||
|
|
||||||
@@ -11,6 +12,9 @@ class TriggerTuple(NamedTuple):
|
|||||||
interval_in_seconds: int
|
interval_in_seconds: int
|
||||||
governor: str
|
governor: str
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return f"{self.name}, interval: {self.interval_in_seconds}, governor: {self.governor}"
|
||||||
|
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
def __init__(self, basepath: Path) -> None:
|
def __init__(self, basepath: Path) -> None:
|
||||||
@@ -36,9 +40,15 @@ class Config:
|
|||||||
)
|
)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
@cached_property
|
||||||
|
def log(self) -> logging.Logger:
|
||||||
|
return getLogger(self.__class__.__name__, loglevel=self.loglevel.upper())
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def testmode(self) -> bool:
|
def testmode(self) -> bool:
|
||||||
value = self.app_root.xpath('testMode').pop().text.lower()
|
value = self.app_root.xpath('testMode').pop().text.lower()
|
||||||
|
if value is None:
|
||||||
|
self.log.warning("testMode not set in config")
|
||||||
if value not in ['true', 'false']:
|
if value not in ['true', 'false']:
|
||||||
raise ValueError("testMode can only be 'true' or 'false")
|
raise ValueError("testMode can only be 'true' or 'false")
|
||||||
return True if value == 'true' else False
|
return True if value == 'true' else False
|
||||||
@@ -51,16 +61,21 @@ class Config:
|
|||||||
name = trigger.xpath('name').pop().text
|
name = trigger.xpath('name').pop().text
|
||||||
interval_in_seconds = trigger.xpath('intervalInSeconds').pop().text
|
interval_in_seconds = trigger.xpath('intervalInSeconds').pop().text
|
||||||
governor = trigger.xpath('governor').pop().text
|
governor = trigger.xpath('governor').pop().text
|
||||||
ret_val.append(
|
_new_trigger = TriggerTuple(
|
||||||
TriggerTuple(
|
|
||||||
name=name,
|
name=name,
|
||||||
interval_in_seconds=int(interval_in_seconds),
|
interval_in_seconds=int(interval_in_seconds),
|
||||||
governor=governor
|
governor=governor
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
ret_val.append(_new_trigger)
|
||||||
|
self.log.info("Loaded trigger: %s", _new_trigger)
|
||||||
|
|
||||||
return ret_val
|
return ret_val
|
||||||
|
|
||||||
|
@lru_cache(maxsize=99)
|
||||||
def get_trigger_by_name(self, name: str) -> Optional[TriggerTuple]:
|
def get_trigger_by_name(self, name: str) -> Optional[TriggerTuple]:
|
||||||
|
self.log.debug("getting trigger: %s", name)
|
||||||
_all_trigger_tuples = self.triggertuples.copy()
|
_all_trigger_tuples = self.triggertuples.copy()
|
||||||
return next((t for t in _all_trigger_tuples if t.name == name), None)
|
ret_val = next((t for t in _all_trigger_tuples if t.name == name), None)
|
||||||
|
if ret_val is None:
|
||||||
|
self.log.error("trigger not found: %s", ret_val)
|
||||||
|
return ret_val
|
||||||
|
|||||||
Reference in New Issue
Block a user