towerops/lib
Graham McIntire 39ac89ab52 refactor(snmp): extract remaining sub-domains (wireless, entity, transceivers, printer, ARP, MAC, discovered devices, topology)
Splits the rest of lib/towerops/snmp.ex into dedicated submodules:

- Towerops.Snmp.WirelessClients
- Towerops.Snmp.EntityPhysicals
- Towerops.Snmp.Transceivers
- Towerops.Snmp.PrinterSupplies
- Towerops.Snmp.ArpEntries
- Towerops.Snmp.MacAddresses
- Towerops.Snmp.DiscoveredDevices (cross-source aggregation + OUI lookup)
- Towerops.Snmp.Topology (graph nodes/edges/subnets)

DiscoveredDevices and Topology use Towerops.Devices.DeviceQuery.for_organization/1
to remove inline 'site.organization_id' joins. Public API preserved via
defdelegate in Towerops.Snmp.

snmp.ex shrinks from 2159 to 450 lines (originally 2742).
2026-04-30 14:26:30 -05:00
..
mix/tasks tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
snmpkit refactor: convert 6 Gleam modules to idiomatic Elixir with TDD (#196) 2026-03-28 09:52:07 -05:00
towerops refactor(snmp): extract remaining sub-domains (wireless, entity, transceivers, printer, ARP, MAC, discovered devices, topology) 2026-04-30 14:26:30 -05:00
towerops_web fix: allow Plausible analytics domain in CSP 2026-04-29 14:24:04 -05:00
snmp_lib.ex bring in snmpkit 2026-01-23 12:52:17 -06:00
snmp_mgr.ex credo fixes 2026-01-23 14:01:52 -06:00
snmpkit.ex complete overhaul of snmp engine 2026-01-30 10:41:07 -06:00
towerops.ex init 2025-12-21 11:10:43 -06:00
towerops_native.ex dialyzer: replace suppressions with real fixes where possible 2026-04-21 11:01:30 -05:00
towerops_web.ex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00