mirror of
https://github.com/hansjone/netx.git
synced 2026-10-09 00:50:46 +08:00
Collect interface bit/s via CLI on a schedule, store samples in Postgres, and chart trends with uPlot. Co-authored-by: Cursor <cursoragent@cursor.com>
29 lines
811 B
Python
29 lines
811 B
Python
"""Vendor → port traffic CLI command matrix (ZTE first)."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
|
|
from .config_sync_commands import normalize_vendor_key
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class PortTrafficCommands:
|
|
brief: str
|
|
detail_template: str # format with ifname=
|
|
vendor_key: str = "other"
|
|
|
|
|
|
def commands_for_vendor(vendor: str, device_type: str = "") -> PortTrafficCommands | None:
|
|
key = normalize_vendor_key(vendor, device_type)
|
|
if key == "zte":
|
|
return PortTrafficCommands(
|
|
brief="show interface brief",
|
|
detail_template="show interface {ifname}",
|
|
vendor_key=key,
|
|
)
|
|
return None
|
|
|
|
|
|
def detail_command(cmds: PortTrafficCommands, ifname: str) -> str:
|
|
return cmds.detail_template.format(ifname=ifname)
|