mirror of
https://forgejo.altau.su/lego/lego-monitoring.git
synced 2026-03-10 04:41:10 +00:00
26 lines
781 B
Python
26 lines
781 B
Python
from typing import Optional
|
|
|
|
from .alert import Alert
|
|
from .enum import AlertType, Severity
|
|
|
|
|
|
class CurrentAlerts(list[Alert]):
|
|
def get_severity(self) -> Optional[Severity]:
|
|
max_severity = None
|
|
for a in self:
|
|
if max_severity is None or a.severity > max_severity:
|
|
max_severity = a.severity
|
|
return a.severity
|
|
|
|
def get_types(self) -> set[AlertType]:
|
|
types = set()
|
|
for a in self:
|
|
types.add(a.alert_type)
|
|
return types
|
|
|
|
def update(self, alerts: list[Alert]) -> tuple[Optional[Severity], Optional[Severity]]:
|
|
old_severity = self.get_severity()
|
|
self.clear()
|
|
self.extend(alerts)
|
|
new_severity = self.get_severity()
|
|
return (old_severity, new_severity)
|