feat: close parser gaps for core vendors (Nokia, Juniper, Arista) - #128
Merged
kayodebristol merged 8 commits intoAug 7, 2026
Merged
Conversation
Close parser gaps for core vendors by adding: - Nokia SROS: parse_lldp_neighbors (show system lldp neighbor) - Juniper JunOS: parse_lldp_neighbors_junos (show lldp neighbors), parse_lacp_interfaces_junos (show lacp interfaces) - Arista EOS: parse_lldp_neighbors_eos (JSON), parse_lldp_neighbors_eos_text, parse_vlan_eos (JSON), parse_vlan_eos_text Includes comprehensive unit tests for all new parsers. Closes #123 Co-authored-by: kayodebristol <3579196+kayodebristol@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Close parser gaps for core vendors (Nokia, Juniper, Arista)
feat: close parser gaps for core vendors (Nokia, Juniper, Arista)
Aug 7, 2026
Co-authored-by: kayodebristol <3579196+kayodebristol@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR closes parser coverage gaps for core network vendors by adding/expanding LLDP, LACP, and VLAN parsers (Nokia SR OS, Juniper JunOS, Arista EOS), and adds/updates tests and CI/dev tooling to support the new functionality.
Changes:
- Added new CLI/eAPI parsers: Nokia SR OS LLDP neighbors, JunOS LLDP neighbors + LACP interfaces, EOS LLDP neighbors + VLANs (JSON + text fallbacks).
- Added new vendor-focused parser test suites (Juniper, Arista) and extended Nokia parser tests.
- Tightened dev/CI setup (mypy pin + overrides, install
tuiextras in CI) and minor TUI/test cleanup.
Reviewed changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
tests/test_tui_smoke.py |
Minor test cleanup (unused pilot var, import formatting). |
tests/test_tui_mouse.py |
Removes unused import; avoids unused pilot variable. |
tests/test_tui_async.py |
Moves scan_subnet_async import to module scope. |
tests/test_scan_always_enriches.py |
Removes unused imports; avoids unused result variable. |
tests/test_real_devices.py |
Test cleanup (removes unused import/variable). |
tests/test_parsers_nokia.py |
Adds LLDP neighbor parser fixtures + tests for Nokia SR OS. |
tests/test_parsers_juniper.py |
New tests for JunOS LLDP neighbors + LACP interfaces parsing. |
tests/test_parsers_arista.py |
New tests for EOS LLDP + VLAN parsing (JSON + text). |
tests/test_integration_tui.py |
Removes unused imports; minor import ordering. |
tests/test_integration_scan.py |
Removes unused import from mock SSH server module. |
tests/test_community_registry.py |
Removes unused import. |
tests/mock_ssh_server.py |
Switches Generator import to collections.abc. |
pyproject.toml |
Pins mypy <2.0 and adds per-module mypy overrides. |
netops/tui/__init__.py |
TUI typing/docstring improvements and paste handling; refactors some list parsing/comprehensions. |
netops/parsers/nokia_sros.py |
Adds parse_lldp_neighbors for SR OS CLI output. |
netops/parsers/juniper.py |
Adds parse_lldp_neighbors_junos and parse_lacp_interfaces_junos. |
netops/parsers/arista.py |
Adds EOS LLDP and VLAN parsers (JSON + text). |
netops/inventory/scan.py |
Minor typing/ordering tweak; docstring mentions optional SSH port override. |
netops/core/community.py |
Formatting-only import wrapping / docstring spacing. |
netops/__main__.py |
Adds a short docstring to main(). |
.github/workflows/ci.yml |
Installs tui extras in CI. |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds missing CLI parsers for LLDP, LACP, and VLAN across core vendors — the primary gap identified in ROADMAP.md Phase 1.
Nokia SROS
parse_lldp_neighbors—show system lldp neighborJuniper JunOS
parse_lldp_neighbors_junos—show lldp neighborsparse_lacp_interfaces_junos—show lacp interfaces(aggregated interface membership, activity, MUX state)Arista EOS
parse_lldp_neighbors_eos— JSON eAPIparse_lldp_neighbors_eos_text— text fallbackparse_vlan_eos— JSON eAPIparse_vlan_eos_text— text fallbackAll new parsers follow existing conventions: return
list[dict], normalize field names across vendors, handle empty/malformed input gracefully.Tests
tests/test_parsers_juniper.py— new file covering LLDP + LACPtests/test_parsers_arista.py— new file covering LLDP + VLAN (JSON and text)tests/test_parsers_nokia.py— extended with LLDP tests