mirror of
https://forgejo.altau.su/lego/lego-monitoring.git
synced 2026-03-10 04:41:10 +00:00
use NestedDeserializableDataclass for config
This commit is contained in:
parent
96664684f8
commit
3eb358d618
13 changed files with 188 additions and 130 deletions
58
misc/config.py
Normal file
58
misc/config.py
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
import json
|
||||
from dataclasses import dataclass
|
||||
|
||||
from alt_utils import NestedDeserializableDataclass
|
||||
|
||||
from alerting.enum import Severity
|
||||
from misc.common import CONFIG_FILE
|
||||
|
||||
|
||||
@dataclass
|
||||
class MatrixConfig:
|
||||
homeserver: str
|
||||
user_id: str
|
||||
device_id: str
|
||||
access_token: str
|
||||
room_id: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class CheckDockerRegistryConfig:
|
||||
hub_url: str
|
||||
images: list[str]
|
||||
|
||||
|
||||
@dataclass
|
||||
class CheckRaidConfig:
|
||||
lvs: list[str]
|
||||
|
||||
|
||||
@dataclass
|
||||
class CheckWearoutDiskConfig:
|
||||
name: str
|
||||
severity: Severity
|
||||
|
||||
|
||||
@dataclass
|
||||
class CheckWearoutConfig(NestedDeserializableDataclass):
|
||||
disks: list[CheckWearoutDiskConfig]
|
||||
|
||||
|
||||
@dataclass
|
||||
class ChecksConfig(NestedDeserializableDataclass):
|
||||
docker_registry: CheckDockerRegistryConfig
|
||||
raid: CheckRaidConfig
|
||||
wearout: CheckWearoutConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class Config(NestedDeserializableDataclass):
|
||||
matrix: MatrixConfig
|
||||
checks: ChecksConfig
|
||||
|
||||
|
||||
def get_config() -> Config:
|
||||
with open(CONFIG_FILE) as f:
|
||||
cfg_dict = json.load(f)
|
||||
cfg = Config.from_dict(cfg_dict)
|
||||
return cfg
|
||||
Loading…
Add table
Add a link
Reference in a new issue