Skip to content

US-27 — Analyse a vendor that is not Cisco, end to end #320

Closed

Description

@ARSH871-bot

As an engineer with a mixed estate, I want Arista, NX-OS and Juniper to work as well as IOS does.

Acceptance criteria

  • vendor-asa joins the other three: a deliberate fault, and an end-to-end test that finds it. It is the only fixture Batfish reports as PARTIALLY_UNRECOGNIZED, so this depends on resolving parse strictness
  • Any check that is IOS-specific says so as status="error", per F-4
  • A per-vendor support table in README.md, generated rather than typed -- nothing a user reads currently says which vendors work
  • The table distinguishes parses from produces findings, because tests/test_vendor_fixtures.py is emphatic that these are different claims

Why this is in the milestone

RESCOPED after measuring, and the original scope was wrong in our favour twice. Discussion #296 asked for "the three existing vendor fixtures" to run through the full pipeline. There are four fixtures, and three of them already do -- pytest tests/test_vendor_fixtures.py passes 10 tests against real Batfish today. What remains is vendor-asa, which parses only partially, and the fact that no user-facing document says any of this.


Epic: Vendors | Size: L | Assigned: @patelankeet2

Story and acceptance criteria come from Discussion #296 unchanged, so anyone who reviewed the discussion has already reviewed this issue.

Part of Phase 3 - market readiness. The distribution of this milestone is deliberately uneven and is explained in docs/design/phase-3-backlog.md and on #249.

Activity

  1. added
    size: LTwo weeks or more, or needs a team decision.
    phase: 3Market readiness -- what stands between us and a product someone could buy.
    on Sep 10, 2026
  2. ARSH871-bot commented on Sep 10, 2026

    @ARSH871-bot
    OwnerAuthor

    @patelankeet2 — I have rescoped this before you started it, because I checked the premise against main and the original scope was wrong in our favour, twice.

    This issue was created from Discussion #296, which asked for "the three existing vendor fixtures run through the full pipeline, not just parsing". Measured this morning:

    $ ls tests/fixtures/vendor-*
    vendor-arista   vendor-asa   vendor-juniper   vendor-nxos      <- FOUR, not three
    
    $ pytest tests/test_vendor_fixtures.py -v      (real Batfish, running)
    test_each_vendor_produces_a_real_finding_end_to_end[vendor-arista]   PASSED
    test_each_vendor_produces_a_real_finding_end_to_end[vendor-juniper]  PASSED
    test_each_vendor_produces_a_real_finding_end_to_end[vendor-nxos]     PASSED
    10 passed in 6.56s
    

    So three vendors already run the full pipeline and produce a real finding. That criterion was asking for work that had been done — largely by you.

    The fixture that is genuinely outstanding is vendor-asa. Its own test file records why:

    arista_eos.cfg    PASSED
    cisco_nxos.cfg    PASSED
    juniper.conf      PASSED
    cisco_asa.cfg     PARTIALLY_UNRECOGNIZED
    

    and find_parse_problems() currently treats anything other than PASSED as fatal, which is open decision 1 in CLAUDE.md. So this story now depends on that decision rather than pretending it does not.

    What the issue asks for now: vendor-asa brought up to the standard of the other three, and a generated per-vendor support table in README.md — because nothing a user reads currently says which vendors work. The table has to distinguish parses from produces findings, since test_vendor_fixtures.py is emphatic that those are different claims:

    "Batfish parsed it" is much weaker than "Netwise finds real problems in it", and only the second is worth telling anyone.

    Why I am writing this up rather than quietly editing

    Two wrong numbers reached this issue because I copied #296's wording faithfully instead of checking it. Copying a claim faithfully is not the same as checking it, and the whole argument of this project is that those get confused. It is the same shape as the A-2 ratification table and the stale PF Sense blocker list: a sentence that was true when written, carried forward by someone who had no reason to doubt it.

    The under-claim is the part worth noticing. An overclaim gets caught when somebody tries it. An underclaim just quietly wastes a sprint re-doing finished work, and nothing objects.

    docs/design/phase-3-backlog.md on #348 is corrected to match — its Vendors section previously said "Three vendor fixtures exist. One vendor has ever been proven end to end." Both halves were wrong.

  3. added a commit that references this issue on Oct 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

phase: 3Market readiness -- what stands between us and a product someone could buy.size: LTwo weeks or more, or needs a team decision.

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions