CI / test (3.10) (push) Successful in 32s
CI / test (3.11) (push) Successful in 32s
CI / test (3.12) (push) Successful in 33s
CI / test (3.10) (pull_request) Successful in 32s
CI / test (3.11) (pull_request) Successful in 29s
CI / test (3.12) (pull_request) Successful in 33s
netgear_smart no longer collects over SNMP. SNMP_HEALTH_PROFILE states where the switch publishes uptime (standard sysUpTime), memory (total and free in KiB) and CPU (a text value whose five-second figure counts); the application polls and computes (napalm-device-types docs/STRUCTURE.md). Interface counters now come from the 64-bit ifXTable where the switch has it, as the application reads them for every device.
34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
"""The switch's SNMP health OIDs, declared as data (napalm-device-types docs/STRUCTURE.md).
|
|
|
|
The driver does not collect over SNMP; the application polls with this profile.
|
|
"""
|
|
|
|
import re
|
|
|
|
from napalm_netgear.netgear_smart import NetgearSmartDriver
|
|
|
|
PROFILE = NetgearSmartDriver.SNMP_HEALTH_PROFILE
|
|
|
|
|
|
def test_the_driver_does_not_collect_itself():
|
|
assert "get_health_metrics" not in vars(NetgearSmartDriver)
|
|
|
|
|
|
def test_uptime_from_the_standard_sysuptime():
|
|
assert PROFILE["uptime"] == {"oids": ["1.3.6.1.2.1.1.3.0"]}
|
|
|
|
|
|
def test_memory_from_total_and_free_in_kib():
|
|
assert PROFILE["memory"] == {
|
|
"total": {"oids": ["1.3.6.1.4.1.4526.100.1.1.4.2.0"]},
|
|
"free": {"oids": ["1.3.6.1.4.1.4526.100.1.1.4.1.0"]},
|
|
"unit": "KiB",
|
|
}
|
|
|
|
|
|
def test_cpu_is_the_five_second_figure_in_a_text_value():
|
|
cpu = PROFILE["cpu"]
|
|
assert cpu["oids"] == ["1.3.6.1.4.1.4526.100.1.1.4.9.0"]
|
|
text = " 5 Secs ( 3.2%) 60 Secs ( 4.1%) 300 Secs ( 2.0%)"
|
|
assert re.search(cpu["pattern"], text).group(1) == "3.2"
|