mirror of
https://forgejo.altau.su/lego/lego-monitoring.git
synced 2026-03-10 04:41:10 +00:00
65 lines
1.1 KiB
Python
65 lines
1.1 KiB
Python
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 CheckLoginConfig:
|
|
hostname: str
|
|
|
|
|
|
@dataclass
|
|
class ChecksConfig(NestedDeserializableDataclass):
|
|
docker_registry: CheckDockerRegistryConfig
|
|
raid: CheckRaidConfig
|
|
wearout: CheckWearoutConfig
|
|
login: CheckLoginConfig
|
|
|
|
|
|
@dataclass
|
|
class Config(NestedDeserializableDataclass):
|
|
matrix: MatrixConfig
|
|
checks: ChecksConfig
|
|
disabled_checks: list[str]
|
|
|
|
|
|
def get_config() -> Config:
|
|
with open(CONFIG_FILE) as f:
|
|
cfg_dict = json.load(f)
|
|
cfg = Config.from_dict(cfg_dict)
|
|
return cfg
|