You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
arista_eos_show_inventory silently drops every transceiver whose hardware Rev is not purely numeric, and mis-parses rows whose serial is numeric. The Transceiver state records via the following where VID was defined numeric only. ^\s+${PORT}\s+${DESCR}\s+${PID}\s+${SN}\s+${VID} -> Record
Dropped rows. Any pluggable with an alpha Rev (DACs, AOCs, and most optics — A, A3, A4) fails the record regex and is omitted entirely.
Column shift. When the serial is numeric (e.g. Acacia DP04QSDD-..., serial 253255691), the greedy DESCR + numeric-only VID forced TextFSM to bind the serial as VID, shifting PID/SN/VID left by on column.
Fix
Broaden VID to (\S+). The greedy DESCR then back-tracks to leave the last three whitespace-separated tokens as PID/SN/VID, so alpha-rev rows record and columns align. Change is scoped to this template only.
Testing
Added fixture arista_eos_show_inventory2.{raw,yml} covering alpha-rev DAC, AOC, and optic rows plus the numeric-serial (Acacia) shift case.
Existing arista_eos_show_inventory and arista_eos_show_inventory1 fixtures still pass unchanged (their revs are numeric).
arista_eos_show_inventory silently drops every transceiver whose hardware Rev is not purely numeric, and mis-parses rows whose serial is numeric. The Transceiver state records via the following where VID was defined numeric only.
This template also doesn't have Error directives in the sections like it probably should. (Something probably there from before it was a project requirement.)
I suppose we keep this PR scoped to just the VID since adding in the Error directive part could be quite a few modifications.
If I take on a PR to add Error directives, would you be willing to test it on Arista gear? 🙂
arista_eos_show_inventory silently drops every transceiver whose hardware Rev is not purely numeric, and mis-parses rows whose serial is numeric. The Transceiver state records via the following where VID was defined numeric only.
This template also doesn't have Error directives in the sections like it probably should. (Something probably there from before it was a project requirement.)
I suppose we keep this PR scoped to just the VID since adding in the Error directive part could be quite a few modifications.
If I take on a PR to add Error directives, would you be willing to test it on Arista gear? 🙂
Thanks @mjbear ! Agreed on keeping this PR scoped to just the VID change and leave the Error directive work as a separate effort.
And yes, I'm glad to test an Error-directive PR on Arista gear. I've got show inventory access across a good spread of EOS hardware.
mjbear
changed the title
arista_eos_show_inventory: capture transceivers with alphanumeric Rev
Fix alphanum transceiver Rev in arista eos sh inv
Jun 7, 2026
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
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.
What
arista_eos_show_inventorysilently drops every transceiver whose hardwareRevis not purely numeric, and mis-parses rows whose serial is numeric. TheTransceiverstate records via the following whereVIDwas defined numeric only.^\s+${PORT}\s+${DESCR}\s+${PID}\s+${SN}\s+${VID} -> RecordRev(DACs, AOCs, and most optics —A,A3,A4) fails the record regex and is omitted entirely.DP04QSDD-..., serial253255691), the greedyDESCR+ numeric-onlyVIDforced TextFSM to bind the serial asVID, shiftingPID/SN/VIDleft by on column.Fix
Broaden
VIDto(\S+). The greedyDESCRthen back-tracks to leave the last three whitespace-separated tokens asPID/SN/VID, so alpha-rev rows record and columns align. Change is scoped to this template only.Testing
arista_eos_show_inventory2.{raw,yml}covering alpha-rev DAC, AOC, and optic rows plus the numeric-serial (Acacia) shift case.arista_eos_show_inventoryandarista_eos_show_inventory1fixtures still pass unchanged (their revs are numeric).