add ssl entries to Config
This commit is contained in:
parent
c2e149aa1d
commit
c339c505ad
1 changed files with 28 additions and 3 deletions
|
@ -5,14 +5,37 @@ Config related tools.
|
||||||
import dataclasses
|
import dataclasses
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
@dataclasses.dataclass
|
@dataclasses.dataclass
|
||||||
class Config:
|
class Config:
|
||||||
username: str
|
username: str
|
||||||
homeserver: str
|
homeserver: str
|
||||||
password: str
|
password: str
|
||||||
port: int
|
|
||||||
host: str
|
|
||||||
alert_rooms: list[str]
|
alert_rooms: list[str]
|
||||||
|
port: int = 8000
|
||||||
|
host: str = "127.0.0.1"
|
||||||
|
tls: bool = False
|
||||||
|
tls_auth: bool = False
|
||||||
|
tls_crt: Optional[str] = None
|
||||||
|
tls_key: Optional[str] = None
|
||||||
|
ca_crt: Optional[str] = None
|
||||||
|
|
||||||
|
def check_integrity(self)->bool:
|
||||||
|
""" Check the integrity of the config.
|
||||||
|
Raise an error if the config is invalid,
|
||||||
|
should always return True (or raise an error).
|
||||||
|
"""
|
||||||
|
if self.tls_auth and not self.tls:
|
||||||
|
raise ValueError("tls_auth is enable, but not tls.")
|
||||||
|
if self.tls and tls_crt is None:
|
||||||
|
raise ValueError("tls is enable but tls_crt was not provided")
|
||||||
|
if self.tls and tls_key is None:
|
||||||
|
raise ValueError("tls is enable but tls_key was not provided")
|
||||||
|
if self.tls_auth and ca_cert is None:
|
||||||
|
raise ValueError("tls_auth is enable, but ca_crt was not provided")
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
def load_config(file:str)->Config:
|
def load_config(file:str)->Config:
|
||||||
"""
|
"""
|
||||||
|
@ -20,5 +43,7 @@ def load_config(file:str)->Config:
|
||||||
"""
|
"""
|
||||||
with open(file, 'r') as f:
|
with open(file, 'r') as f:
|
||||||
data = yaml.load(f, Loader=yaml.loader.SafeLoader)
|
data = yaml.load(f, Loader=yaml.loader.SafeLoader)
|
||||||
return Config(**data)
|
config = Config(**data)
|
||||||
|
config.check_integrity()
|
||||||
|
return config
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue