Skip to content

feat: network topology SVG diagram for v1.8.0#19

Merged
franklupo merged 1 commit intomasterfrom
feat/network-diagram-svg-1.8.0
Apr 15, 2026
Merged

feat: network topology SVG diagram for v1.8.0#19
franklupo merged 1 commit intomasterfrom
feat/network-diagram-svg-1.8.0

Conversation

@franklupo
Copy link
Copy Markdown
Member

Summary

  • Every export now produces a standalone SVG network topology diagram next to the Excel file (same basename). For each Proxmox node it shows the full chain NICs → bonds → bridges → gateway VMs → internal bridges → leaf VMs, plus a dedicated strip below for network-backed storage (NFS, CIFS, PBS, iSCSI, Ceph, RBD, GlusterFS). Multi-homed VMs (potential gateways) and inactive interfaces get distinct colours so routing is visible at a glance.
  • More resilient QEMU agent collection — each agent sub-call (get-osinfo, get-host-name, network-get-interfaces, get-fsinfo) is now awaited independently. A single failure (e.g. OPNsense returning an error object on get-fsinfo) no longer wipes hostname / OS / network info for the VM.
  • Clearer agent error messages in the Hostname column when the agent throws.
  • New helpers (TaskExtensions.WhenAllSafe, Task<T>.ResultOrDefault(), LabeledValue, VmTypeLabel, SplitWords, MtuLabel, ActiveStatus, YesNo, InterfaceTitle, BoxLabel, RenderBox, AddNicNode) consolidate repeated patterns across ReportEngine.*.
  • New docs page docs/network-diagram.md, anonymised sample docs/network-diagram.svg, README updated with diagram preview.
  • Storage /storage API call now made once in LoadResourcesAsync and reused by both the Storages sheet and the diagram.
  • Bumps version to 1.8.0 and adds a changelog entry.

Test plan

  • cv4pve-report @config.rsp export produces both Report_*.xlsx and Report_*.svg
  • cv4pve-report @config.rsp export -o /tmp/myreport.xlsx produces /tmp/myreport.svg alongside the xlsx
  • Open the SVG in a browser: legend, info box (counts), per-node chain and storage strip render correctly
  • Multi-homed VMs (e.g. OPNsense + storage hosts) appear orange; stopped VMs and inactive interfaces appear grey; storages with a gateway on the host show their bridge arrow correctly
  • OPNsense / FreeBSD VMs report a real hostname (no longer "Agent not running!" because of get-fsinfo)
  • Excel report unchanged: cover, all sheets, hyperlinks still work
  • Fast / Standard / Full profiles still generate without errors

Every export now produces an SVG next to the Excel file showing the
full per-node network topology (NICs -> bonds -> bridges -> gateway VMs
-> internal bridges -> leaf VMs) plus a dedicated strip for network
storages (NFS, CIFS, PBS, iSCSI, Ceph, RBD, GlusterFS).

Also: more resilient QEMU agent calls (single failed sub-call no longer
hides hostname/OS/network), clearer agent error messages in the Hostname
column, helper consolidation across the codebase, new docs page and
sample diagram in docs/.
@franklupo franklupo merged commit 133474c into master Apr 15, 2026
4 checks passed
@franklupo franklupo deleted the feat/network-diagram-svg-1.8.0 branch April 15, 2026 15:09
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