move upsstatus enum to sensors

This commit is contained in:
Alex 2024-11-09 12:48:53 +03:00
parent 47c110f83e
commit 071d8afb9f
3 changed files with 25 additions and 28 deletions

View file

@ -5,7 +5,6 @@ from datetime import timedelta
from alerting import alerts
from misc import cvars, docker_registry, sensors, vuln
from misc.disks import LVAttr
from misc.enums import UPSStatus
IS_TESTING = False
@ -126,13 +125,13 @@ async def ups_check() -> list[alerts.Alert]:
)
for status in sensor.ups_status:
if IS_TESTING or status == UPSStatus.UPS_OVERLOAD:
if IS_TESTING or status == sensors.UPSStatus.UPS_OVERLOAD:
alert_list.append(
alerts.Alert(
alert_type=alerts.AlertType.UPS, message=f"UPS is overloaded!", severity=alerts.Severity.CRITICAL
)
)
elif IS_TESTING or status == UPSStatus.ON_BATTERY:
elif IS_TESTING or status == sensors.UPSStatus.ON_BATTERY:
alert_list.append(
alerts.Alert(
alert_type=alerts.AlertType.UPS,
@ -140,7 +139,7 @@ async def ups_check() -> list[alerts.Alert]:
severity=alerts.Severity.INFO,
)
)
elif IS_TESTING or status == UPSStatus.UPS_TRIM:
elif IS_TESTING or status == sensors.UPSStatus.UPS_TRIM:
alert_list.append(
alerts.Alert(
alert_type=alerts.AlertType.UPS,
@ -148,7 +147,7 @@ async def ups_check() -> list[alerts.Alert]:
severity=alerts.Severity.INFO,
)
)
elif IS_TESTING or status == UPSStatus.UPS_BOOST:
elif IS_TESTING or status == sensors.UPSStatus.UPS_BOOST:
alert_list.append(
alerts.Alert(
alert_type=alerts.AlertType.UPS,

View file

@ -1,21 +0,0 @@
from enum import StrEnum
class UPSStatus(StrEnum):
"""https://networkupstools.org/docs/developer-guide.chunked/new-drivers.html#_status_data"""
ON_LINE = "OL"
ON_BATTERY = "OB"
BATTERY_LOW = "LB"
BATTERY_HIGH = "HB"
BATTERY_REPLACE = "RB"
BATTERY_CHARGING = "CHRG"
BATTERY_DISCHARGING = "DISCHRG"
UPS_BYPASS = "BYPASS"
"""Battery and connected devices are not protected from power outage!"""
UPS_OFFLINE = "OFF"
UPS_OVERLOAD = "OVER"
UPS_CALIBRATION = "CAL"
UPS_TRIM = "TRIM"
UPS_BOOST = "BOOST"
UPS_FSD = "FSD"

View file

@ -1,12 +1,11 @@
import subprocess
from dataclasses import dataclass
from enum import StrEnum
from psutil import cpu_percent, sensors_temperatures, virtual_memory
from alerting import alerts
from .enums import UPSStatus
@dataclass
class TemperatureSensor:
@ -32,6 +31,26 @@ class RamSensor:
critical_avail: int = 2 * 1024**3
class UPSStatus(StrEnum):
"""https://networkupstools.org/docs/developer-guide.chunked/new-drivers.html#_status_data"""
ON_LINE = "OL"
ON_BATTERY = "OB"
BATTERY_LOW = "LB"
BATTERY_HIGH = "HB"
BATTERY_REPLACE = "RB"
BATTERY_CHARGING = "CHRG"
BATTERY_DISCHARGING = "DISCHRG"
UPS_BYPASS = "BYPASS"
"""Battery and connected devices are not protected from power outage!"""
UPS_OFFLINE = "OFF"
UPS_OVERLOAD = "OVER"
UPS_CALIBRATION = "CAL"
UPS_TRIM = "TRIM"
UPS_BOOST = "BOOST"
UPS_FSD = "FSD"
@dataclass
class UPSSensor:
ups_status: list[UPSStatus] = None