Skip to content

feat: close parser gaps for core vendors (Nokia, Juniper, Arista) - #128

Merged
kayodebristol merged 8 commits into
mainfrom
copilot/close-parser-gaps-nokia-juniper-arista
Aug 7, 2026
Merged

feat: close parser gaps for core vendors (Nokia, Juniper, Arista)#128
kayodebristol merged 8 commits into
mainfrom
copilot/close-parser-gaps-nokia-juniper-arista

Conversation

Copilot AI commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

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_neighborsshow system lldp neighbor

Juniper JunOS

  • parse_lldp_neighbors_junosshow lldp neighbors
  • parse_lacp_interfaces_junosshow lacp interfaces (aggregated interface membership, activity, MUX state)

Arista EOS

  • parse_lldp_neighbors_eos — JSON eAPI
  • parse_lldp_neighbors_eos_text — text fallback
  • parse_vlan_eos — JSON eAPI
  • parse_vlan_eos_text — text fallback

All 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 + LACP
  • tests/test_parsers_arista.py — new file covering LLDP + VLAN (JSON and text)
  • tests/test_parsers_nokia.py — extended with LLDP tests
from netops.parsers.nokia_sros import parse_lldp_neighbors
from netops.parsers.juniper import parse_lldp_neighbors_junos, parse_lacp_interfaces_junos
from netops.parsers.arista import parse_vlan_eos, parse_lldp_neighbors_eos

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
Copilot AI requested a review from kayodebristol August 7, 2026 15:31
Co-authored-by: kayodebristol <3579196+kayodebristol@users.noreply.github.com>
@kayodebristol
kayodebristol marked this pull request as ready for review August 7, 2026 15:46
Copilot AI lite review requested due to automatic review settings August 7, 2026 15:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 tui extras 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.

Comment thread netops/tui/__init__.py
Comment thread netops/tui/__init__.py
Comment thread netops/parsers/arista.py Outdated
Comment thread netops/parsers/arista.py
Comment thread netops/parsers/juniper.py
kayodebristol and others added 5 commits August 7, 2026 10:56
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>
@kayodebristol
kayodebristol merged commit 4631a74 into main Aug 7, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Close parser gaps for core vendors (Nokia, Juniper, Arista)

3 participants