run_device_action (install_lldpd, install_auc, install_coreutils_base64, fix_snmp) becomes ensure_package(name) and configure_snmp_agent(settings) (NAPALM/napalm-device-types#33). The live _action_fix_snmp (openwrt.py ~490-636) finds the management zone from $SSH_CONNECTION and names its rule Allow-SNMP-netOrk; zone and sources come from settings. Deleting every rule that mentions SNMP or port 161 also removes rules that are not ours. The shadowed copy in system_mixin.py is dead (#5).
get_device_warnings (lldpd_not_installed, updates_available, update_notifications_disabled, no_base64) goes; report installed packages and get_available_updates() as facts. Its update read swallows failures, unlike get_available_updates.
get_snmp_config: a missing community is missing, not public.
Parsers that are POSIX-wide move to napalm-unix (NAPALM/napalm-device-types#35): apk/opkg (two upgradable parsers with different regexes), _clean_pkg_output (duplicates terminal), lldpctl keyvalue, the BusyBox/iputils ping parser, ntpq/chrony. ListeningSocketsMixin's hook becomes run_command.
Neutral names: firewall.snmp_netork, Allow-SNMP-netOrk; eight netOrk mentions in code.
The application calls _send_command for UCI (wifi channel in sites.py, _uci_apply.py). Those need public methods here.
Low: optional_args.pop("port") mutates the caller's dict; available_ram is not total RAM; destination goes unquoted into the ping command line.
What this driver has to change for the agnostic structure (NAPALM/napalm-device-types `docs/STRUCTURE.md` (NAPALM/napalm-device-types#37), epic NetOrk/netork#1105).
- `run_device_action` (`install_lldpd`, `install_auc`, `install_coreutils_base64`, `fix_snmp`) becomes `ensure_package(name)` and `configure_snmp_agent(settings)` (NAPALM/napalm-device-types#33). The live `_action_fix_snmp` (`openwrt.py` ~490-636) finds the management zone from `$SSH_CONNECTION` and names its rule `Allow-SNMP-netOrk`; zone and sources come from `settings`. Deleting every rule that mentions SNMP or port 161 also removes rules that are not ours. The shadowed copy in `system_mixin.py` is dead (#5).
- `get_device_warnings` (`lldpd_not_installed`, `updates_available`, `update_notifications_disabled`, `no_base64`) goes; report installed packages and `get_available_updates()` as facts. Its update read swallows failures, unlike `get_available_updates`.
- `get_snmp_config`: a missing community is missing, not `public`.
- Parsers that are POSIX-wide move to napalm-unix (NAPALM/napalm-device-types#35): apk/opkg (two upgradable parsers with different regexes), `_clean_pkg_output` (duplicates `terminal`), lldpctl keyvalue, the BusyBox/iputils ping parser, ntpq/chrony. `ListeningSocketsMixin`'s hook becomes `run_command`.
- Neutral names: `firewall.snmp_netork`, `Allow-SNMP-netOrk`; eight netOrk mentions in code.
- The application calls `_send_command` for UCI (wifi channel in `sites.py`, `_uci_apply.py`). Those need public methods here.
- Low: `optional_args.pop("port")` mutates the caller's dict; `available_ram` is not total RAM; `destination` goes unquoted into the ping command line.
Size: medium. Needs: NAPALM/napalm-device-types#33, NAPALM/napalm-device-types#35.
Prio P3.
Status 2026-10-18, checked against the pin on NetOrk/netork main.
Done: Templates ensure_package and configure_snmp_agent(settings) (0.2.0); no warnings (0.3.0/0.4.0); netOrk mentions in code are gone; netOrk uses run_command instead of _send_command (0.4.0, #16; NetOrk/netork#1160).
Rest:
get_snmp_config still defaults the community to public (system_mixin.py:246).
POSIX parsers move to napalm-unix (NAPALM/napalm-device-types#35); ListeningSocketsMixin's hook can become run_command.
Status 2026-10-18, checked against the pin on NetOrk/netork main.
**Done:** Templates `ensure_package` and `configure_snmp_agent(settings)` (0.2.0); no warnings (0.3.0/0.4.0); netOrk mentions in code are gone; netOrk uses `run_command` instead of `_send_command` (0.4.0, #16; NetOrk/netork#1160).
**Rest:**
- `get_snmp_config` still defaults the community to `public` (`system_mixin.py:246`).
- POSIX parsers move to napalm-unix (NAPALM/napalm-device-types#35); `ListeningSocketsMixin`'s hook can become `run_command`.
- Low: `optional_args.pop("port")` mutates the caller's dict (`openwrt.py:113`); `available_ram`; unquoted ping destination.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What this driver has to change for the agnostic structure (NAPALM/napalm-device-types
docs/STRUCTURE.md(NAPALM/napalm-device-types#37), epic NetOrk/netork#1105).run_device_action(install_lldpd,install_auc,install_coreutils_base64,fix_snmp) becomesensure_package(name)andconfigure_snmp_agent(settings)(NAPALM/napalm-device-types#33). The live_action_fix_snmp(openwrt.py~490-636) finds the management zone from$SSH_CONNECTIONand names its ruleAllow-SNMP-netOrk; zone and sources come fromsettings. Deleting every rule that mentions SNMP or port 161 also removes rules that are not ours. The shadowed copy insystem_mixin.pyis dead (#5).get_device_warnings(lldpd_not_installed,updates_available,update_notifications_disabled,no_base64) goes; report installed packages andget_available_updates()as facts. Its update read swallows failures, unlikeget_available_updates.get_snmp_config: a missing community is missing, notpublic._clean_pkg_output(duplicatesterminal), lldpctl keyvalue, the BusyBox/iputils ping parser, ntpq/chrony.ListeningSocketsMixin's hook becomesrun_command.firewall.snmp_netork,Allow-SNMP-netOrk; eight netOrk mentions in code._send_commandfor UCI (wifi channel insites.py,_uci_apply.py). Those need public methods here.optional_args.pop("port")mutates the caller's dict;available_ramis not total RAM;destinationgoes unquoted into the ping command line.Size: medium. Needs: NAPALM/napalm-device-types#33, NAPALM/napalm-device-types#35.
Prio P3.
Status 2026-10-18, checked against the pin on NetOrk/netork main.
Done: Templates
ensure_packageandconfigure_snmp_agent(settings)(0.2.0); no warnings (0.3.0/0.4.0); netOrk mentions in code are gone; netOrk usesrun_commandinstead of_send_command(0.4.0, #16; NetOrk/netork#1160).Rest:
get_snmp_configstill defaults the community topublic(system_mixin.py:246).ListeningSocketsMixin's hook can becomerun_command.optional_args.pop("port")mutates the caller's dict (openwrt.py:113);available_ram; unquoted ping destination.