Got 3750-X monitoring working

This commit is contained in:
2026-03-17 19:38:27 +01:00
parent c474f9c9c2
commit e66998b826
9 changed files with 424 additions and 132 deletions

View File

@@ -3,7 +3,8 @@ from sqlalchemy.ext.asyncio import create_async_engine
from typing import Annotated, Final
from dataclasses import asdict
from models.idracModel import snmpPyIDRACData
from models.sqlTable import idracMeasurement
from models.ciscoModel import C3750XciscoData
from models.sqlTable import idracMeasurement, C3750XMeasurement
# SQL ENV-------------------------------------------
USESQL: Final[int] = int(os.getenv("USESQL", 0))
@@ -27,7 +28,7 @@ else:
engine = None
async def sqlIDRACDataWriter(
async def sqlDataWriter(
inpDict: dict
) -> int:
@@ -44,10 +45,36 @@ async def sqlIDRACDataWriter(
match inpDict["source"]:
case "CISCO":
await eng.execute(
# changeMeLater
t1.insert(), [{"name": "some name 1"}, {"name": "some name 2"}]
)
match inpDict["device"]:
case "3750X":
payload = inpDict["value"] # snmpPyIDRACData
row = asdict(payload)
await eng.execute(
C3750XMeasurement.insert(),
[row]
)
return 0
case "NEXUS":
payload = inpDict["value"] # snmpPyIDRACData
row = asdict(payload)
await eng.execute(
NexusMeasurement.insert(),
[row]
)
return 0
case _:
print(f"{inpDict['device']} is not supported.\nOnly '3750X' and 'Nexus' are.")
return 1
# await eng.execute(
# # changeMeLater
# t1.insert(), [{"name": "some name 1"}, {"name": "some name 2"}]
# )
case "IDRAC":
payload = inpDict["value"] # snmpPyIDRACData
row = asdict(payload)
@@ -73,4 +100,4 @@ async def sqlIDRACDataWriter(
return 0
# asyncio.sleep(5)
# asyncio.sleep(5)