Skip to content

Add device onboarding CLI - #205

Merged
WilhelmZA merged 1 commit into
mainfrom
feat/onboard-cli-128
Oct 31, 2026
Merged

WilhelmZA merged 1 commit into
mainfrom
feat/onboard-cli-128

Conversation

@WilhelmZA

@WilhelmZA WilhelmZA commented Oct 31, 2026 •

Copy link
Copy Markdown
Owner

Summary

Implements #128.

  • Add hyperglass onboard device, test, check, and directive.
  • Validate device entries and preserve unrelated YAML fields. Keep candidate credentials in process-local state.
  • Report sent commands, command errors, reactive and version-selected fallbacks, and structured field coverage.
  • Check effective configuration defaults, Redis reachability, built fonts, and device capabilities.
  • Add configuration documentation and 21 onboarding tests.

Verification

  • CI run 41242774512: backend, frontend, Python distributions, and Docker build all pass.
  • Backend suite: 937 passed.
  • Ruff passes for the onboarding package, CLI registration, tests, and state hook.
  • Black formatting checks pass. Wheel build passes.
  • Live FRR: all eight default-target queries pass, including structured BGP and traceroute.
  • Lab inventory run covers both application configurations: 18 device/configuration combinations queried and 20 unavailable. Detailed results are in the PR comments.

Lab limitation

Most configured router VMs are stopped. Most running routers also have their BGP feeds disabled. The policy matrix's AS 64999 fixture routes are absent; its FRR API query returns the existing no-matching-results warning. The CLI reports missing output and empty structured tables as failed tests. This draft remains open for complete live-platform acceptance.

@WilhelmZA

Copy link
Copy Markdown
Owner Author

Live onboarding results

Run against both lab configurations with the PR source mounted read-only.

Targets: route 1.0.0.0/24 and 2606:4700:4700::/48; AS path _64999_; community 65000:777; ping/traceroute use the documented defaults.

The lab currently lacks the AS 64999 policy fixtures. Only the FRR core sessions are established. Missing route results are test failures, not successful validation. An independent FRR run using the default BGP targets passed all eight queries.

Configuration Device Passed Failed Availability
ultraglass lab-frr 6 2 queried
ultraglass lab-bird 4 4 queried
ultraglass lab-openbgpd 4 4 queried
ultraglass lab-mikrotik 4 4 queried
ultraglass lab-vyos — — unavailable
ultraglass lab-junos — — unavailable
ultraglass lab-arista 4 4 queried
ultraglass lab-huawei-vrpv8 — — unavailable
ultraglass lab-huawei-ne40 — — unavailable
ultraglass lab-iol 4 4 queried
ultraglass lab-ioll2 6 2 queried
ultraglass lab-xrd — — unavailable
ultraglass lab-iosv — — unavailable
ultraglass lab-nexus — — unavailable
ultraglass lab-routeros6 — — unavailable
ultraglass lab-arista-vrf 4 4 queried
ultraglass lab-frr-vrf 0 4 queried
ultraglass lab-huawei-vrpv8-vrf — — unavailable
ultraglass lab-huawei-ne40-vrf — — unavailable
ultraglass-text lab-frr 6 2 queried
ultraglass-text lab-bird 8 0 queried
ultraglass-text lab-openbgpd 8 0 queried
ultraglass-text lab-mikrotik 8 0 queried
ultraglass-text lab-vyos — — unavailable
ultraglass-text lab-junos — — unavailable
ultraglass-text lab-arista 8 0 queried
ultraglass-text lab-huawei-vrpv8 — — unavailable
ultraglass-text lab-huawei-ne40 — — unavailable
ultraglass-text lab-iol 6 2 queried
ultraglass-text lab-ioll2 6 2 queried
ultraglass-text lab-xrd — — unavailable
ultraglass-text lab-iosv — — unavailable
ultraglass-text lab-nexus — — unavailable
ultraglass-text lab-routeros6 — — unavailable
ultraglass-text lab-arista-vrf 8 0 queried
ultraglass-text lab-frr-vrf 2 2 queried
ultraglass-text lab-huawei-vrpv8-vrf — — unavailable
ultraglass-text lab-huawei-ne40-vrf — — unavailable

Configuration checks

  • ultraglass: lab-mikrotik: OS version, lab-iol: OS version, lab-ioll2: structured output, lab-ioll2: OS version.
  • ultraglass-text: External RPKI, enrich_traceroute, enrich_bgproute, Server DNS, lab-frr: structured output, lab-bird: structured output, lab-openbgpd: structured output, lab-mikrotik: structured output, lab-mikrotik: OS version, lab-vyos: structured output, lab-junos: structured output, lab-arista: structured output, lab-huawei-vrpv8: structured output, lab-huawei-ne40: structured output, lab-iol: structured output, lab-iol: OS version, lab-ioll2: structured output, lab-ioll2: OS version, lab-xrd: structured output, lab-iosv: structured output, lab-nexus: structured output, lab-routeros6: structured output, lab-arista-vrf: structured output, lab-frr-vrf: structured output, lab-huawei-vrpv8-vrf: structured output, lab-huawei-ne40-vrf: structured output.

The CLI caught empty-table responses that otherwise looked successful. The corrected MikroTik run reports four empty-table failures and four successful ping/traceroute commands. Regression tests cover this result.

Complete live-platform acceptance still needs the stopped VMs and the policy fixture feeds.

@WilhelmZA
WilhelmZA marked this pull request as ready for review October 31, 2026 21:34
@WilhelmZA
WilhelmZA force-pushed the feat/onboard-cli-128 branch from bc38605 to 2fcbed9 Compare October 31, 2026 21:38
@WilhelmZA
WilhelmZA merged commit 2fcbed9 into main Oct 31, 2026
12 checks passed
@WilhelmZA
WilhelmZA deleted the feat/onboard-cli-128 branch October 31, 2026 21:42
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.

1 participant