Inspired by a reference diagram the user liked (VLAN legend/mapping table,
per-port VLAN info) but explicitly without the literal switch CLI config
dumps that diagram also had.
- export_topology.py: pulls ipam.VLAN (with prefixes) plus, for every
edge whose endpoint is a real Interface, that port's mode/untagged/
tagged VLANs. NetBox has zero VLANs defined right now, so this comes
back empty/null throughout -- the plumbing is real, the data just
isn't there yet.
- generate_drawio.py: renders a VLAN table (VLAN/Name/Description/
Subnet/Site) at the top of the diagram. With no VLANs it shows an
explicit dashed 'not configured yet' placeholder row instead of
either fabricating VLAN numbers or silently omitting the table.
Connector labels get a 'V<id>' / 'V<id>,<id>T' suffix per side
whenever that port actually has VLAN config -- currently a no-op,
activates automatically the moment VLANs exist in NetBox.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NM3nivbufxEWiKKmatEtEe
- export_topology.py: edges now carry the exact port name on both ends
(pulled directly from Cable/CableTermination, not inferred from the
trace chain), so the diagram can label each connector.
- generate_drawio.py: patch panels are now a small rack-unit shape
(header strip + port ticks, parented to the panel body so they move
together) instead of a plain box; connectors show 'porta <-> portb'
and no longer carry a directional arrowhead (these are physical
cables, not directed links); switches keep the network-switch icon.
- render_png.js + render_host.html: headless Puppeteer driver for
embed.diagrams.net's postMessage export protocol -- an actual
render of the .drawio file, not an approximation. Field-Switch-
Topology.png is the committed output, for anyone who wants a look
without opening draw.io.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NM3nivbufxEWiKKmatEtEe