66 lines
1.7 KiB
Python
66 lines
1.7 KiB
Python
from dataclasses import dataclass
|
|
from typing import Optional, Annotated, Dict
|
|
|
|
|
|
|
|
|
|
@dataclass
|
|
class C3750XciscoData():
|
|
"""Dataclass for snmp data"""
|
|
hostname: str
|
|
systemStatus: str
|
|
systemTemp: int
|
|
last5SecUsage: int
|
|
last1MinUsage: int
|
|
last5MinUsage: int
|
|
uptimeS: int
|
|
# uptimeH: float
|
|
|
|
|
|
|
|
def __str__(self):
|
|
return (
|
|
f"{self.hostname}\n"
|
|
f"System status: {self.systemStatus} \n"
|
|
f"System temp: {self.systemTemp} C\n"
|
|
f"Last 5 second CPU usage: {self.last5SecUsage} %\n"
|
|
f"Last 1 minute CPU usage: {self.last1MinUsage} %\n"
|
|
f"Last 5 minutes CPU usage: {self.last5MinUsage} %\n"
|
|
f"Uptime: {self.uptimeS} Seconds\n"
|
|
)
|
|
|
|
|
|
@dataclass
|
|
class snmpPyCiscoData():
|
|
"""Dataclass for snmp data"""
|
|
hostname: str
|
|
powerDrawPSU1: int
|
|
voltagePSU1: int
|
|
inletTemp: float
|
|
exhaustTemp: float
|
|
cpu1Temp: float
|
|
uptimeS: int
|
|
uptimeH: float
|
|
|
|
# optional fields
|
|
uptimeD: float | None = None
|
|
cpu2Temp: float | None = None
|
|
powerDrawPSU2: int | None = None
|
|
voltagePSU2: int | None = None
|
|
|
|
|
|
def __str__(self):
|
|
return (
|
|
f"{self.hostname}\n"
|
|
f"PSU1 {self.powerDrawPSU1} Watts\n"
|
|
f"PSU2 {self.powerDrawPSU2} Watts\n"
|
|
f"PSU1 {self.voltagePSU1} Volts\n"
|
|
f"PSU2 {self.voltagePSU2} Volts\n"
|
|
f"Inlet {self.inletTemp} C\n"
|
|
f"Exhaust {self.exhaustTemp} C\n"
|
|
f"CPU1 {self.cpu1Temp} C\n"
|
|
f"CPU2 {self.cpu2Temp} C\n"
|
|
f"Uptime {self.uptimeS} Seconds\n"
|
|
f"Uptime {self.uptimeH} Hours\n"
|
|
f"Uptime {self.uptimeD} Days"
|
|
) |