From aa7341af066a291d1661b8b68a2d2f480ea55813 Mon Sep 17 00:00:00 2001 From: Jared Vititoe Date: Sat, 14 Nov 2026 19:30:59 -0500 Subject: [PATCH 1/4] Topology: a live page drawn from the real gear The dashboard's hand-drawn diagram was out of date. /topology replaces it with the network as the switches report it, every device drawn to scale from its faceplate or cutsheet front, and one cable per physical link leaving the port it is plugged into. - topology.py builds the graph: switch-to-switch cables seen from both ends are merged, servers get one cable per NIC, the gateway's internet port goes to the modem and on to the internet, unknown neighbours are stubs, and gear with no live cable is drawn where it was last seen. - Ports named after a different device than the one plugged in are flagged. - Cables show medium, speed, state and traffic; click one for its details, hover a device to trace its path to the internet; pan, zoom and filters. - The monitor now keeps host_macs (MAC to host NIC) in link_stats. - The old dashboard diagram and its JS and CSS are removed. Co-Authored-By: Claude Opus 5.5 --- README.md | 41 +- app.py | 42 +- devices.py | 13 + docs/img/topology.png | Bin 91918 -> 188233 bytes monitor.py | 11 +- static/app.js | 28 -- static/faceplates.js | 13 +- static/style.css | 450 +++++++++------------ static/topology.js | 842 ++++++++++++++++++++++++++++++++++++++++ templates/base.html | 9 + templates/index.html | 200 ---------- templates/topology.html | 55 +++ tests/test_app.py | 44 ++- tests/test_monitor.py | 4 +- tests/test_topology.py | 338 ++++++++++++++++ topology.py | 411 ++++++++++++++++++++ 16 files changed, 1982 insertions(+), 519 deletions(-) create mode 100644 static/topology.js create mode 100644 templates/topology.html create mode 100644 tests/test_topology.py create mode 100644 topology.py diff --git a/README.md b/README.md index ef4fd17..7a48efb 100644 --- a/README.md +++ b/README.md @@ -19,11 +19,13 @@ A Proxmox/Ceph cluster lives or dies by its network, and network problems are sn ## Gallery -**Dashboard**: alert queue with linked tickets, a live topology, per-host interface status and the UniFi device inventory. +**Dashboard**: alert queue with linked tickets, per-host interface status and the UniFi device inventory. ![Dashboard](docs/img/dashboard.png) -![Topology diagram](docs/img/topology.png) +**Topology**: every device drawn from its real faceplate or chassis, with each cable leaving the port it is plugged into, styled by medium and speed, with live traffic. + +![Topology](docs/img/topology.png) ![Host cards](docs/img/host-cards.png) @@ -105,9 +107,8 @@ Ping-only (no node_exporter): **pbs** (10.10.10.3) ### Dashboard (`/`) - Device search (see Device pages below) -- Active alerts first, then the WAN / Fiber panel, hosts, UniFi devices, topology, and recently resolved alerts +- Active alerts first, then the WAN / Fiber panel, hosts, UniFi devices, and recently resolved alerts - Real-time host status grid with per-NIC link state (UP / DOWN / degraded) -- Network topology diagram (Internet → Modem → Gateway → Switches → Hosts) - WAN / Fiber panel: WAN and PON state, Rx/Tx power, optics temperature, throughput, errors, gateway uptime and last restart, 7-day Rx trend, recent WAN outages - UniFi device table (switches, APs, gateway) - Active alerts table with severity, target, consecutive failures, ticket link @@ -180,6 +181,34 @@ The rack front, drawn from the rack units set on cutsheet items, top first. claim the same top unit, the one recorded first is drawn. Items without a rack unit are listed below. - The rack keeps its own dark "hardware" palette in both themes. +### Topology (`/topology`) +The whole network as the switches see it now, top down: the internet, the modem, the gateway, then +each switch by how many hops it is from the gateway, the gear and unknown devices below them, and the +servers along the bottom. Power gear (PDU, UPS, power strip) sits in a rail on the right. +- **Drawn to scale from the real gear**: UniFi devices use their faceplates (the same drawings as the + port inspector and rack page), and servers use the **Front drawing** of their cutsheet item. Servers + without one are a plain box. Above each server is a strip of its physical NICs, so every cable lands + on the NIC it is plugged into; NICs marked unused are dimmed. +- **One line per physical cable**, leaving the exact port: a switch-to-switch cable is reported by both + switches and drawn once. A server with two links (10G and 1G) has two cables. Colour is the cable + type (DAC, multimode fibre, the provider's fibre, an SFP+ module that doesn't say which, copper) and + thickness is the speed. A cable that is down is dashed red. +- **Last seen**: a device with no live cable is drawn on the port it was last seen on, dotted red. +- **Unknown devices**: something plugged into a switch port that Gandalf can't name is a grey stub, + labelled with the port name (or its address), linking to that port. +- **Port names**: a ⚠ marks a port named after one device with a different one plugged in (a port + called "Large1 Management" with the AP on it). Generic names ("Port 4", "SFP+ 2", "Uplink") and + "Downlink to X" with X on the other end never flag. +- **Alerts**: a device with active alerts (not suppressed) gets a ring and a count in its worst + severity colour, and the NIC it is about is marked. +- Click a device for its page, or a port on a faceplate for that port. Click a cable for its details: + both ends, speed, cable type and module, traffic each way and how busy it is, errors and drops, and + its cutsheet record. Hovering a device traces its path to the internet. +- Drag to pan, scroll or pinch to zoom, **Fit** (or `0`) to see everything, `+` and `-` to zoom. Show + or hide unknown devices, power gear, traffic, cables slower than 10G, and everything without an + alert. The filters are remembered per browser. Refreshes every 30 seconds without moving the view. +- API: `GET /api/topology` returns `{nodes, links, warnings, updated}` (see `topology.py`). + ### Health check (`/health`) No login needed. Returns 200 when the database answers and the monitor has completed a check recently, otherwise 503 with the failing check: `{"status": "degraded", "checks": {"db": "ok", "monitor": "stale", @@ -738,6 +767,7 @@ gandalf/ ├── monitor.py # Background daemon (Prometheus, UniFi, Pulse, alert logic) ├── modem.py # Read-only AT&T gateway status page client and parser ├── devices.py # Device inventory for search and device pages +├── topology.py # The topology graph: devices, cables, depth, last-seen links ├── cutsheet.py # Cutsheet validation, path tracing, plan-vs-actual checks, CSV ├── ticket_text.py # Markdown for tickets and recovery notes ├── db.py # Database operations (MariaDB via pymysql, thread-local conn reuse) @@ -751,6 +781,8 @@ gandalf/ │ ├── cutsheet.js # Cutsheet page │ ├── events.js # Alert history page │ ├── rack.js # Rack drawing +│ ├── topology.js # Topology page: layout, cables, pan and zoom +│ ├── faceplates.js # UniFi faceplates drawn from each model's real layout │ ├── fronts.js # Drawn fronts for gear without a live faceplate (NVR, server cases) │ └── port-inspector.js # Switch front panel, port panel, path check, diagnostics └── templates/ @@ -760,6 +792,7 @@ gandalf/ ├── cutsheet.html # Cutsheet page and its editors ├── events.html # Alert history page ├── rack.html # Rack drawing + ├── topology.html # Topology page ├── _modem_panel.html # WAN / Fiber panel, shared by the dashboard and modem page └── suppressions.html # Suppression management page ``` diff --git a/app.py b/app.py index b5245f9..87aa948 100644 --- a/app.py +++ b/app.py @@ -26,6 +26,7 @@ import cutsheet import db import devices import diagnose +import topology from monitor import PulseClient, UnifiClient logging.basicConfig( @@ -1195,17 +1196,7 @@ def _racks(items: list) -> list: return racks -_VIRTUAL_IFACE = ('lo', 'vmbr', 'bond', 'docker', 'veth', 'tap', 'fwbr', 'fwpr', 'fwln', 'br-', 'virbr', 'wg', 'tun') - - -def _physical_interfaces(name: str, snapshot: dict) -> list: - """A host's physical NICs in name order, with their state: [{'name', 'up'}]. - - Drawn fronts light one RJ45 per NIC in this order (first NIC on the leftmost jack). - """ - ifaces = ((snapshot.get('hosts') or {}).get(name) or {}).get('interfaces') or {} - return [{'name': n, 'up': str(state).lower() == 'up', 'unused': str(state).lower() == 'unused'} - for n, state in sorted(ifaces.items()) if not n.startswith(_VIRTUAL_IFACE)] +_physical_interfaces = devices.physical_interfaces def _device_status(name: str, snapshot: dict) -> str: @@ -1314,6 +1305,35 @@ def api_rack(): }) +# --------------------------------------------------------------------------- +# Topology +# --------------------------------------------------------------------------- + +@app.route('/topology') +@require_auth +def topology_page(): + return render_template('topology.html', user=_get_user()) + + +@app.route('/api/topology') +@require_auth +def api_topology(): + """Every device and physical cable, for the topology page (see topology.build_graph).""" + events = db.get_active_events(limit=_PAGE_LIMIT) + _annotate_suppressions(events, db.get_active_suppressions()) + try: + _ensure_cutsheet_schema() + sheet = db.cutsheet_load() + except Exception as e: + logger.error(f'Cutsheet unavailable for topology: {e}') + sheet = {'items': [], 'cables': []} + graph = topology.build_graph( + _state_json('network_snapshot'), _state_json('link_stats'), _state_json('modem_stats'), + events, sheet['items'], sheet['cables'], _state_json('known_uplinks'), + ) + return jsonify(graph) + + @app.route('/api/cutsheet/racks', methods=['POST']) @require_auth @require_admin diff --git a/devices.py b/devices.py index 6346a75..5a49cc7 100644 --- a/devices.py +++ b/devices.py @@ -14,6 +14,19 @@ _KIND_BY_TYPE = { } +_VIRTUAL_IFACE = ('lo', 'vmbr', 'bond', 'docker', 'veth', 'tap', 'fwbr', 'fwpr', 'fwln', 'br-', 'virbr', 'wg', 'tun') + + +def physical_interfaces(name: str, snapshot: dict) -> List[dict]: + """A host's physical NICs in name order, with their state: [{'name', 'up', 'unused'}]. + + Drawn fronts light one RJ45 per NIC in this order (first NIC on the leftmost jack). + """ + ifaces = (((snapshot or {}).get('hosts') or {}).get(name) or {}).get('interfaces') or {} + return [{'name': n, 'up': str(state).lower() == 'up', 'unused': str(state).lower() == 'unused'} + for n, state in sorted(ifaces.items()) if not n.startswith(_VIRTUAL_IFACE)] + + def unifi_kind(unifi_type: str, model: str) -> str: if model in _PDU_MODELS: return 'pdu' diff --git a/docs/img/topology.png b/docs/img/topology.png index c19aeaae3b4048f3e39a9f85c0eb9a917b9917da..d631607be618a7155cf6f933f0f60e239c07f9b7 100644 GIT binary patch literal 188233 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 z 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 o1ONbbcMAuv90$K3{yfHE04l9~7x5*e2s{E None: - """Name port neighbors: UniFi's LLDP data has only MACs, and many servers send none.""" + def _resolve_neighbors(self, switches: dict, unifi_devices: dict, instance_map: Dict[str, str]) -> dict: + """Name port neighbors: UniFi's LLDP data has only MACs, and many servers send none. + + Returns {mac: (host, interface)} for every physical host NIC Prometheus reports.""" host_macs: Dict[str, tuple] = {} host_ips: Dict[str, str] = {} # Bonds share their MAC with their member NICs, and LLDP runs on the NIC. @@ -962,6 +966,7 @@ class LinkStatsCollector: } devices.resolve_lldp_neighbors(switches, host_macs, device_macs, host_ips) devices.apply_client_locations(switches, self.unifi.get_wired_clients(), host_macs, device_macs) + return host_macs def _compute_unifi_rates(self, raw: Dict[str, dict], now: float) -> Dict[str, dict]: """Compute per-port byte/error rates from delta against previous snapshot.""" diff --git a/static/app.js b/static/app.js index d004f65..4c50b1b 100644 --- a/static/app.js +++ b/static/app.js @@ -48,7 +48,6 @@ async function refreshAll() { const net = netResult.value; updateHostGrid(net.hosts || {}); updateUnifiTable(net.unifi || []); - updateTopology(net.hosts || {}); } else { showToast('Network data unavailable', 'warning'); } @@ -167,26 +166,6 @@ function updateHostGrid(hosts) { } } -function updateTopology(hosts) { - document.querySelectorAll('.topo-host').forEach(node => { - const name = node.dataset.host; - const host = hosts[name]; - if (!host) return; - node.className = node.className.replace(/topo-v2-status-(up|down|degraded|unknown)/g, ''); - node.classList.add(`topo-v2-status-${host.status}`); - const badge = node.querySelector('.topo-badge'); - if (badge) { - badge.className = `topo-badge topo-badge-${host.status}`; - badge.textContent = host.status; - } - - // Animate the 10G drop-wire red+dashed when host is down - document.querySelectorAll(`.topo-v2-wire-10g[data-host="${CSS.escape(name)}"]`).forEach(wire => { - wire.classList.toggle('wire-down', host.status === 'down'); - }); - }); -} - // ── Device search ───────────────────────────────────────────────────── function deviceUrl(name) { return `/device/${encodeURIComponent(name)}`; @@ -396,13 +375,9 @@ function updateModem(data) { detailsLink.hidden = false; } - const rxLabel = document.getElementById('topo-modem-rx'); - const topo = document.getElementById('topo-modem'); const title = document.getElementById('modem-title'); if (!data.reachable) { - if (rxLabel) rxLabel.textContent = 'unreachable'; - if (topo) topo.classList.add('topo-v2-status-down'); body.innerHTML = `
Modem status unavailable: ${lt.escHtml(data.error || 'unknown error')} Last attempt ${lt.escHtml(data.updated || '-')}
@@ -415,10 +390,7 @@ function updateModem(data) { const status = data.optics_status || {}; const counters = data.counters || {}; const rates = data.rates || {}; - const rx = optics.rx_power ? optics.rx_power.value : null; - if (topo) topo.classList.toggle('topo-v2-status-down', problems.length > 0); - if (rxLabel) rxLabel.textContent = (rx === null || rx === undefined) ? 'Rx -' : `Rx ${rx} dBm`; if (title) { title.textContent = [data.model || 'AT&T Gateway', data.firmware && `fw ${data.firmware}`] .filter(Boolean).join(' · '); diff --git a/static/faceplates.js b/static/faceplates.js index 3f04150..682231b 100644 --- a/static/faceplates.js +++ b/static/faceplates.js @@ -1,5 +1,5 @@ 'use strict'; -/* exported renderFaceplate, faceplateScrollLeft, FACEPLATES */ +/* exported renderFaceplate, faceplateScrollLeft, faceplatePortAnchor, FACEPLATES */ // Realistic front panels, drawn as SVG from each model's real geometry. // Coordinates are traced from reference images. Keys match UniFi's model code. @@ -639,6 +639,17 @@ function faceplateSvg(model, ctx, attrs = '') { return { svg, marks }; } +// Where a port's cable plugs in, in the faceplate's viewBox units: { x, y, face }, face 'top' for a +// port the right way up and 'bottom' for a flipped one (the lower row). null when there is no such +// port. A model whose one port takes any index (the PDU's management port) answers for every index. +function faceplatePortAnchor(spec, idx) { + const p = spec.ports.find(q => q.idx === idx) || spec.ports.find(q => q.anyPort); + if (!p) return null; + const face = p.flip ? 'bottom' : 'top'; + if (p.type === 'sfp') return { x: p.x + p.w / 2, y: p.y + p.h / 2, face }; + return { x: p.x, y: p.y, face }; +} + // Where an fp-scroll panel should start: its port area function faceplateScrollLeft(model, frame) { const spec = FACEPLATES[model]; diff --git a/static/style.css b/static/style.css index 131954a..7e8e4d2 100644 --- a/static/style.css +++ b/static/style.css @@ -60,12 +60,6 @@ --glow-cyan: none; --glow-xl: none; } -[data-theme="light"] .topology { - background-image: radial-gradient(circle, rgba(0,100,160,0.07) 1px, transparent 1px); -} -[data-theme="light"] .topo-vc-label { - background: rgba(235,238,242,.88); -} /* ── Header overlap fix ─────────────────────────────────────────── .lt-container's padding shorthand resets padding-top, defeating @@ -151,23 +145,6 @@ /* ── Stats grid spacing variant ──────────────────────────────────── */ .lt-stats-grid--mb { margin-bottom: 16px; } -/* ── Topology section collapse toggle ────────────────────────────── */ -.topo-collapse-btn { - margin-left: auto; - font-size: .7em; - color: var(--text-muted); - background: transparent; - border: 1px solid var(--border-color); - padding: 2px 8px; - cursor: pointer; - font-family: var(--font); - letter-spacing: .04em; - transition: border-color .15s, color .15s; -} -.topo-collapse-btn:hover { border-color: var(--amber); color: var(--amber); } -.topo-collapsible { overflow: hidden; transition: max-height .25s ease; } -.topo-collapsible.is-collapsed { display: none; } - /* ── Animations used by custom components ─────────────────────────── */ @keyframes pulse-red { 0%,100% { box-shadow: 0 0 0 0 rgba(255,45,85,.5); } @@ -276,7 +253,7 @@ border: 1px solid; letter-spacing: .04em; } -.chip-critical { color: var(--red); border-color: var(--red); text-shadow: var(--glow-red); animation: topo-pulse-down 2s ease-in-out infinite; } +.chip-critical { color: var(--red); border-color: var(--red); text-shadow: var(--glow-red); animation: pulse-down 2s ease-in-out infinite; } .chip-warning { color: var(--orange); border-color: var(--orange); } .chip-ok { color: var(--green); border-color: var(--green-muted); text-shadow: var(--glow); } .status-meta { display: flex; align-items: center; gap: 10px; white-space: nowrap; } @@ -418,252 +395,12 @@ .target-ifaces{ display: flex; flex-wrap: wrap; gap: 3px; } .iface-chip { font-family: var(--font); font-size: .65em; background: var(--bg3); border: 1px solid var(--border-color); padding: 1px 5px; color: var(--text-dim); } -/* ── Topology diagram ─────────────────────────────────────────────── */ -.topology { - background-color: var(--bg2); - background-image: radial-gradient(circle, rgba(0,212,255,0.07) 1px, transparent 1px); - background-size: 22px 22px; - border: 1px solid var(--border-color); - padding: 20px 16px 16px; - margin-bottom: 16px; - text-align: center; - overflow-x: auto; -} - -/* topo-v2 outer wrapper */ -.topo-v2 { - display: flex; - flex-direction: column; - align-items: center; - gap: 0; - min-width: 860px; - padding: 20px 24px 24px; -} - -.topo-tier { - display: flex; - justify-content: center; - align-items: center; - width: 100%; -} - -.topo-vc { - display: flex; - justify-content: center; - align-items: flex-start; - width: 100%; - position: relative; - height: 40px; -} -.topo-vc-wire { - position: absolute; - left: 50%; - top: 0; - transform: translateX(-50%); - width: 2px; - height: 100%; - background: linear-gradient(to bottom, var(--cyan), var(--green)); - opacity: .7; -} -.topo-vc-wire--wan { background: linear-gradient(to bottom, var(--cyan), rgba(0,212,255,.3)); opacity: .7; } -.topo-vc-wire--10g { background: var(--amber); opacity: .6; } -.topo-vc-wire--mgmt { background: var(--border-color); opacity: .5; } -/* Blurred copy of the wire for a soft glow halo */ -.topo-vc-wire::before { - content: ''; - position: absolute; - inset: 0; - background: inherit; - filter: blur(5px); - opacity: .5; -} -.topo-vc-label { - position: absolute; - left: calc(50% + 7px); - top: 50%; - transform: translateY(-50%); - font-size: .58em; - color: var(--amber); - white-space: nowrap; - letter-spacing: .06em; - font-family: var(--font); - background: rgba(3,5,8,.7); - padding: 1px 4px; -} - -.topo-v2-node { - display: flex; - flex-direction: column; - align-items: center; - gap: 3px; - padding: 8px 16px; - border: 1px solid var(--border-color); - background: var(--bg3); - position: relative; - font-size: .75em; - font-family: var(--font); - min-width: 110px; - text-align: center; - transition: border-color .2s, box-shadow .2s; - overflow: hidden; -} -/* Top highlight strip: color matches node type / status */ -.topo-v2-node::before { - content: ''; - position: absolute; - top: 0; left: 0; right: 0; - height: 2px; - background: currentColor; - opacity: .4; -} -.topo-v2-status-up.topo-v2-node::before { background: var(--green); opacity: .65; } -.topo-v2-status-down.topo-v2-node::before { background: var(--red); opacity: .75; } -.topo-v2-status-degraded.topo-v2-node::before { background: var(--orange); opacity: .65; } -.topo-v2-status-unknown.topo-v2-node::before { opacity: .15; } -.topo-v2-icon { font-size: 1.3em; line-height: 1; } -.topo-v2-label { font-weight: bold; letter-spacing: .04em; } -.topo-v2-sub { font-size: .58em; color: var(--text-muted); letter-spacing: .02em; } -.topo-v2-vlan { font-size: .54em; color: var(--cyan); opacity: .75; } - -.topo-v2-host--bus { min-width: 80px; max-width: 96px; } -.topo-v2-internet { border-color: var(--cyan); color: var(--cyan); text-shadow: var(--glow-cyan); box-shadow: 0 0 12px rgba(0,212,255,.12); } -.topo-v2-router { border-color: var(--cyan); color: var(--cyan); text-shadow: var(--glow-cyan); box-shadow: 0 0 12px rgba(0,212,255,.14); } -.topo-v2-switch { border-color: var(--amber); color: var(--amber); text-shadow: var(--glow-amber); box-shadow: 0 0 12px rgba(255,179,0,.12); } -.topo-v2-host { border-color: var(--border-color); color: var(--text); cursor: default; } - -@keyframes topo-pulse-down { +/* Pulsing red glow for critical chips and down states */ +@keyframes pulse-down { 0%,100% { box-shadow: 0 0 6px rgba(255,45,85,.3); } 50% { box-shadow: 0 0 18px rgba(255,45,85,.75), 0 0 30px rgba(255,45,85,.2); } } -.topo-v2-status-up { border-color: var(--green); box-shadow: 0 0 8px rgba(0,255,136,.2); } -.topo-v2-status-down { border-color: var(--red); animation: topo-pulse-down 2s ease-in-out infinite; } -.topo-v2-status-degraded { border-color: var(--orange); box-shadow: 0 0 8px rgba(255,107,0,.2); } -.topo-v2-status-unknown { border-color: var(--border-color); } -.topo-v2-offrack { border-style: dashed !important; } - -.topo-badge { font-size: .68em; padding: 1px 5px; border: 1px solid; letter-spacing: .03em; } -.topo-badge-up { color: var(--green); border-color: var(--green); text-shadow: var(--glow); } -.topo-badge-down { color: var(--red); border-color: var(--red); animation: topo-pulse-down 1.5s ease-in-out infinite; } -.topo-badge-degraded { color: var(--orange); border-color: var(--orange); } -.topo-badge-unknown { color: var(--text-muted); border-color: var(--border-color); } - -/* Host wrap + dual-homing wires */ -.topo-v2-host-wrap { - display: flex; - flex-direction: column; - align-items: center; -} -.topo-v2-host-wires { - display: flex; - gap: 6px; - height: 28px; - align-items: flex-start; -} -.topo-v2-wire-10g { width: 2px; height: 100%; background: var(--green); opacity: .55; transition: background .3s, opacity .3s; } -.topo-v2-wire-1g { width: 0; height: 100%; border-left: 2px dashed var(--amber); opacity: .45; } - -@keyframes wire-dash-anim { to { background-position: 0 -20px; } } -.topo-v2-wire-10g.wire-down { - background: repeating-linear-gradient(to bottom, var(--red) 0 6px, transparent 6px 10px) !important; - background-size: 2px 10px !important; - opacity: .9 !important; - transition: none !important; - animation: wire-dash-anim .7s linear infinite; -} - -/* Bus rails */ -.topo-bus-section { - width: 100%; - max-width: 860px; - display: flex; - flex-direction: column; - align-items: stretch; - gap: 0; -} -.topo-bus-10g { - display: flex; - align-items: center; - position: relative; - height: 20px; -} -.topo-bus-10g-line { - flex: 1; - height: 2px; - background: var(--green); - opacity: .55; - margin: 0 4px; - box-shadow: 0 0 6px rgba(0,255,136,.4); -} -.topo-bus-10g-label { - font-size: .56em; - color: var(--green); - white-space: nowrap; - letter-spacing: .05em; - font-family: var(--font); - opacity: .85; - padding: 0 8px; -} -.topo-bus-1g { - display: flex; - align-items: center; - position: relative; - height: 18px; -} -.topo-bus-1g-line { - flex: 1; - height: 0; - border-top: 2px dashed var(--amber); - opacity: .35; - margin: 0 4px; -} -.topo-bus-1g-label { - font-size: .56em; - color: var(--amber); - white-space: nowrap; - letter-spacing: .05em; - font-family: var(--font); - opacity: .8; - padding: 0 8px; -} - -/* Hosts row */ -.topo-v2-hosts { - display: flex; - justify-content: center; - gap: 12px; - flex-wrap: wrap; - padding-top: 4px; - width: 100%; -} - -/* Topology legend */ -.topo-legend { - display: flex; - gap: 18px; - align-items: center; - margin-top: 14px; - padding-top: 10px; - border-top: 1px solid rgba(255,107,0,.12); - flex-wrap: wrap; - justify-content: center; -} -.topo-legend-item { - display: flex; - align-items: center; - gap: 5px; - font-size: .58em; - color: var(--text-muted); - font-family: var(--font); -} -.topo-legend-item--offrack { - border: 1px dashed var(--border-color); - padding: 1px 5px; -} -.topo-legend-line-10g { width: 24px; height: 2px; background: var(--green); display: inline-block; box-shadow: 0 0 4px rgba(0,255,136,.5); } -.topo-legend-line-1g { width: 24px; height: 0; border-top: 2px dashed var(--amber); display: inline-block; } -.topo-legend-line-wan { width: 24px; height: 2px; background: linear-gradient(to right, var(--cyan), var(--green)); display: inline-block; } - /* ── Link debug page ──────────────────────────────────────────────── */ .link-host-list { display: flex; flex-direction: column; gap: 18px; } .link-host-panel { @@ -1067,7 +804,7 @@ .lt-stat-card--alert { border-color: var(--red) !important; box-shadow: 0 0 8px rgba(255,45,85,.25) !important; - animation: topo-pulse-down 2s ease-in-out infinite; + animation: pulse-down 2s ease-in-out infinite; } .lt-stat-card--alert::before { background: var(--red); box-shadow: var(--glow-red); } @@ -1077,7 +814,6 @@ /* ── Responsive ───────────────────────────────────────────────────── */ @media (max-width: 768px) { .host-grid { grid-template-columns: 1fr; } - .topology { display: none; } .form-row { flex-direction: column; } .status-bar { flex-direction: column; align-items: flex-start; } .link-ifaces-grid { grid-template-columns: 1fr; } @@ -1150,7 +886,6 @@ a.device-link:hover { color: var(--text-accent); border-bottom-color: current .device-row-sub { font-size: .72em; color: var(--text-muted); } .device-row-toggle { background: none; border: 0; color: inherit; cursor: pointer; font: inherit; padding: 2px 6px; } .device-row-detail > td { background: var(--bg-tertiary); padding: 10px 14px; } -.topo-host[data-host] { cursor: pointer; } /* WAN outage list in the modem panel */ .modem-outages { padding: 0 12px 8px; } @@ -1678,3 +1413,180 @@ body.fp-marks-off .fp-svg .fp-mark { display: none; } .device-row--unused td { opacity: .6; } .device-row--unused td:last-child { opacity: 1; } .lt-btn-xs { padding: 1px 6px; font-size: .68rem; margin-left: 6px; } + +/* ── Topology page ─────────────────────────────────────────────────── */ +.tp-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 8px 0 10px; } +.tp-filters { display: flex; flex-wrap: wrap; gap: 6px 14px; } +.tp-filter { display: inline-flex; align-items: center; gap: 6px; font-size: .78em; color: var(--text-dim); cursor: pointer; } +.tp-zoom { display: inline-flex; gap: 4px; } +.tp-updated { margin-left: auto; font-size: .72em; color: var(--text-muted); } +.tp-warnings { border: 1px solid var(--amber); color: var(--amber); background: var(--amber-dim); padding: 8px 12px; margin-bottom: 10px; font-size: .8em; } +.tp-canvas { + position: relative; overflow: hidden; touch-action: none; cursor: grab; + height: clamp(420px, calc(100vh - 300px), 1400px); + border: 1px solid var(--border-color); + background-color: var(--bg2); + background-image: radial-gradient(circle, rgba(0,212,255,.07) 1px, transparent 1px); + background-size: 22px 22px; +} +[data-theme="light"] .tp-canvas { background-image: radial-gradient(circle, rgba(0,100,160,.08) 1px, transparent 1px); } +.tp-canvas:focus-visible { outline: 2px solid var(--amber); outline-offset: 2px; } +.tp-canvas.tp-dragging { cursor: grabbing; } +.tp-svg { display: block; width: 100%; height: 100%; user-select: none; } +.tp-loading { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; } +.tp-loading[hidden] { display: none; } + +/* Devices */ +.tp-node-link { cursor: pointer; outline: none; } +.tp-node-hit { fill: transparent; stroke: transparent; stroke-width: 4; } +.tp-node-link:hover .tp-node-hit, .tp-node-link:focus-visible .tp-node-hit { stroke: var(--amber); fill: rgba(255,179,0,.04); } +.tp-name { font-family: var(--font); font-size: 40px; font-weight: 700; fill: var(--text); letter-spacing: .02em; + paint-order: stroke; stroke: var(--bg2); stroke-width: 10px; stroke-linejoin: round; } +.tp-sub { font-family: var(--font); font-size: 28px; fill: var(--text-muted); + paint-order: stroke; stroke: var(--bg2); stroke-width: 8px; stroke-linejoin: round; } +.tp-dot { stroke: rgba(0,0,0,.35); stroke-width: 2; } +.tp-dot-up { fill: #2fd36b; } +.tp-dot-degraded { fill: #ffb300; } +.tp-dot-down { fill: #e0312b; } +.tp-dot-unknown { fill: #6b737d; } +.tp-ring { fill: none; stroke-width: 7; } +.tp-ring-critical { stroke: #e0312b; } +.tp-ring-warning { stroke: #ffb300; } +.tp-ring-info { stroke: #34a8ff; } +.tp-badge circle { stroke: var(--bg2); stroke-width: 5; } +.tp-badge text { font-family: var(--font); font-size: 34px; font-weight: 700; fill: #fff; } +.tp-badge-critical circle { fill: #e0312b; } +.tp-badge-warning circle { fill: #c98a00; } +.tp-badge-info circle { fill: #1f7ad6; } +.tp-kind-stub .tp-name { font-size: 32px; font-weight: 400; fill: var(--text-dim); } +.tp-kind-stub .tp-sub { font-size: 24px; } + +.tp-cloud { fill: #dfe7ef; stroke: #8fa3b5; stroke-width: 4; } +.tp-cloud-text { font-family: var(--font); font-size: 44px; font-weight: 700; fill: #34495e; letter-spacing: .12em; } +.tp-st-down .tp-cloud { fill: #f3d6d4; stroke: #e0312b; } +.tp-modem-body { fill: #16181b; stroke: #050506; stroke-width: 3; } +.tp-modem-edge { fill: none; stroke: #2c3035; stroke-width: 3; } +.tp-modem-globe { fill: #1f6fd1; } +.tp-modem-globe-line { fill: none; stroke: #9cc6ff; stroke-width: 3; } +.tp-modem-model { font-family: var(--font); font-size: 22px; fill: #8b929b; } +.tp-led { stroke: #000; stroke-width: 2; } +.tp-led-on { fill: #2fd36b; } +.tp-led-off { fill: #3a3f45; } +.tp-led-bad { fill: #e0312b; } +.tp-ap-body { fill: #f2f3f4; stroke: #c3c6ca; stroke-width: 4; } +.tp-ap-ring { fill: none; stroke-width: 10; stroke: #6b737d; } +.tp-ap-up { stroke: #2a8cff; } +.tp-ap-down { stroke: #e0312b; } +.tp-ap-dot { fill: #d7dadd; } +.tp-strip-body { fill: #f0f1f2; stroke: #c3c6ca; stroke-width: 4; } +.tp-strip-outlet rect:first-of-type { fill: #fafafa; stroke: #b9bcc0; stroke-width: 3; } +.tp-strip-slot { fill: #2b2d31; } +.tp-strip-outlet.tp-off rect:first-of-type { fill: #d9dadc; } +.tp-box, .tp-host-box { fill: #22272e; stroke: #3a434e; stroke-width: 3; } +.tp-box-text { font-family: var(--font); font-size: 34px; fill: #8b97a5; } +.tp-host-led { stroke: #000; stroke-width: 2; } +.tp-gen-body { fill: #2a2f36; stroke: #12151a; stroke-width: 3; } +.tp-gen-model { font-family: var(--font); font-size: 30px; fill: #c9d1d9; } +.tp-gen-port { fill: #111418; stroke: #4b5562; stroke-width: 2; } +.tp-gen-up { stroke: #2fd36b; } +.tp-gen-num { font-family: var(--font); font-size: 16px; fill: #8b97a5; } +.tp-stub-body { fill: #3a3f46; stroke: #23272c; stroke-width: 3; } +.tp-stub-jack { fill: #15181c; } +.tp-stub-q { font-family: var(--font); font-size: 30px; font-weight: 700; fill: #9aa3ad; } +.tp-st-down .tp-stub-body { stroke: #e0312b; } + +/* Host NIC sockets */ +.tp-strip { fill: #1b1f24; stroke: #2f363f; stroke-width: 3; } +.tp-nic-rj45, .tp-nic-sfp { fill: #0b0d10; stroke: #59626e; stroke-width: 3; } +.tp-nic-sfp-in { fill: #23272d; } +.tp-nic-name { font-family: var(--font); font-size: 18px; fill: #aab4bf; } +.tp-nic-led { fill: #3a3f45; } +.tp-nic-up .tp-nic-led { fill: #2fd36b; } +.tp-nic-up .tp-nic-rj45, .tp-nic-up .tp-nic-sfp { stroke: #8f9aa6; } +.tp-nic-down .tp-nic-led { fill: #e0312b; } +.tp-nic-down .tp-nic-rj45, .tp-nic-down .tp-nic-sfp { stroke: #e0312b; } +.tp-nic-unused { opacity: .45; } +.tp-nic-unused .tp-nic-rj45, .tp-nic-unused .tp-nic-sfp { stroke-dasharray: 6 5; } +.tp-nic-alert-critical .tp-nic-name { fill: #ff6b5e; } +.tp-nic-alert-warning .tp-nic-name { fill: #ffb300; } + +/* Cables: colours are the real jackets, the same in both themes */ +.tp-link { cursor: pointer; outline: none; } +.tp-link path { fill: none; stroke-linecap: round; } +.tp-casing { stroke: #050607; } +.tp-core { stroke: #2f343b; } +.tp-hit { stroke: transparent; stroke-width: 40; } +.tp-s-10g .tp-casing { stroke-width: 17; } .tp-s-10g .tp-core { stroke-width: 11; } +.tp-s-1g .tp-casing { stroke-width: 12; } .tp-s-1g .tp-core { stroke-width: 7; } +.tp-s-100m .tp-casing { stroke-width: 8; } .tp-s-100m .tp-core { stroke-width: 4.5; } +.tp-m-dac .tp-casing { stroke: #8a929c; } .tp-m-dac .tp-core { stroke: #16181c; } +.tp-m-fibre .tp-casing { stroke: #13757c; } .tp-m-fibre .tp-core { stroke: #38c9d3; } +.tp-m-wanfibre .tp-casing { stroke: #8a6a00; } .tp-m-wanfibre .tp-core { stroke: #f2c230; } +.tp-m-sfp .tp-casing { stroke: #23272c; } .tp-m-sfp .tp-core { stroke: #69717c; } +.tp-m-copper .tp-casing { stroke: #173f80; } .tp-m-copper .tp-core { stroke: #3b82f6; } +.tp-down .tp-casing { stroke: transparent; } +.tp-down .tp-core { stroke: #e0312b; stroke-dasharray: 28 18; } +.tp-ghost { opacity: .8; } +.tp-ghost .tp-casing { stroke: transparent; } +.tp-ghost .tp-core { stroke: #e0312b; stroke-dasharray: 2 18; stroke-width: 10; } +.tp-plug { fill: #c9ccd1; stroke: #5d636b; stroke-width: 2; } +.tp-boot { fill: #1e5bbf; stroke: #0d2f66; stroke-width: 2; } +.tp-links-over { pointer-events: none; } +.tp-links-over .tp-warn { pointer-events: auto; } +.tp-flow { stroke: rgba(255,255,255,.4); stroke-width: 3; stroke-dasharray: 3 60; animation: tp-flow linear infinite; pointer-events: none; } +.tp-s-100m .tp-flow { stroke-width: 2; } +@keyframes tp-flow { to { stroke-dashoffset: -63; } } +@media (prefers-reduced-motion: reduce) { .tp-flow { animation: none; display: none; } } +.tp-link:hover .tp-casing, .tp-link:focus-visible .tp-casing, .tp-selected .tp-casing { stroke: var(--amber); } +.tp-tag rect { fill: var(--bg-primary); stroke: var(--border-color); stroke-width: 2; opacity: .92; } +.tp-tag text { font-family: var(--font); font-size: 24px; fill: var(--text); } +.tp-tag-ghost rect { stroke: #e0312b; } +.tp-tag-ghost text { fill: #ff6b5e; } +.tp-rate { display: none; pointer-events: none; } +.tp-near .tp-rate, .tp-hot .tp-rate, .tp-selected .tp-rate { display: inline; } +.tp-warn path { fill: #ffb300; stroke: #5c4100; stroke-width: 3; } +.tp-warn text { font-family: var(--font); font-size: 30px; font-weight: 700; fill: #2b1f00; } + +/* Filters and the traced path */ +.tp-no-traffic .tp-rate, .tp-no-traffic .tp-flow { display: none !important; } +.tp-only-10g .tp-slow { display: none; } +.tp-alerts-only .tp-node:not(.tp-has-alert) { opacity: .25; } +.tp-alerts-only .tp-link:not(.tp-touches-alert) { opacity: .2; } +.tp-tracing .tp-node:not(.tp-hot), .tp-tracing .tp-link:not(.tp-hot) { opacity: .18; transition: opacity .15s; } +.tp-tracing .tp-link.tp-hot .tp-casing { stroke: var(--amber); } +.tp-far .tp-sub, .tp-far .tp-nic-name { display: none; } + +/* Cable panel: a side panel, a bottom sheet on phones */ +.tp-panel { + position: absolute; top: 12px; right: 12px; width: min(360px, calc(100% - 24px)); + max-height: calc(100% - 24px); overflow: auto; z-index: 2; + background: var(--bg-primary); border: 1px solid var(--border-color); box-shadow: 0 8px 24px rgba(0,0,0,.35); + padding: 10px 14px 14px; cursor: auto; font-size: .8em; +} +.tp-panel-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; } +.tp-panel-title { font-size: 1em; margin: 0; letter-spacing: .06em; text-transform: uppercase; color: var(--amber); } +.tp-panel-table { width: 100%; border-collapse: collapse; } +.tp-panel-table th { text-align: left; font-weight: 400; color: var(--text-muted); padding: 4px 10px 4px 0; vertical-align: top; width: 42%; } +.tp-panel-table td { padding: 4px 0; overflow-wrap: anywhere; } +.tp-panel-warn { border: 1px solid var(--amber); background: var(--amber-dim); color: var(--text); padding: 6px 8px; margin: 0 0 8px; } +.tp-bad { color: var(--red); } +.tp-warn-text { color: var(--amber); } +.tp-dim-text { color: var(--text-muted); } +@media (max-width: 640px) { + .tp-panel { top: auto; left: 0; right: 0; bottom: 0; width: auto; max-height: 55%; border-width: 1px 0 0; } + .tp-updated { margin-left: 0; width: 100%; } + .tp-canvas { height: clamp(380px, calc(100vh - 260px), 900px); } +} + +.tp-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 10px 0 4px; font-size: .74em; color: var(--text-dim); } +.tp-key { display: inline-flex; align-items: center; gap: 6px; } +.tp-key svg { width: 34px; height: 12px; } +.tp-key-line { fill: none; stroke-width: 5; stroke-linecap: round; } +.tp-key-line.tp-m-dac { stroke: #2b2f35; } +.tp-key-line.tp-m-fibre { stroke: #38c9d3; } +.tp-key-line.tp-m-wanfibre { stroke: #f2c230; } +.tp-key-line.tp-m-sfp { stroke: #69717c; } +.tp-key-line.tp-m-copper { stroke: #3b82f6; } +.tp-key-down { stroke: #e0312b; stroke-dasharray: 6 4; } +.tp-key-ghost { stroke: #e0312b; stroke-dasharray: 1 5; } +.tp-key-warn { color: #ffb300; font-weight: 700; } diff --git a/static/topology.js b/static/topology.js new file mode 100644 index 0000000..b03857c --- /dev/null +++ b/static/topology.js @@ -0,0 +1,842 @@ +'use strict'; +/* global FACEPLATES, faceplateSvg, faceplatePortAnchor, RACK_FRONTS, SHELF_GEAR, DESK_FACEPLATES, CHASSIS_FACEPLATES, rackFrontSvg */ +// Topology page: every device drawn as its real faceplate or chassis, with each cable leaving +// the exact port it is plugged into. Data comes from /api/topology (topology.build_graph). +// +// World units: a 19" panel is 1100 wide (as on the rack page), so everything is to scale. + +const esc = s => lt.escHtml(s == null ? '' : String(s)); +const PER_MM = 1100 / 482.6; +const ROW_GAP = 330; +const NODE_GAP = 120; +const LABEL_H = 104; +const RAIL_GAP = 520; +const STRIP_H = 104; +const SOCKET_W = 118; +const REFRESH_MS = 30000; +const FILTER_KEY = 'gandalf.topology.filters'; +const DEFAULT_FILTERS = { stubs: true, power: true, traffic: true, tenG: false, alerts: false }; + +const state = { + data: null, + layout: null, + view: { k: 1, tx: 0, ty: 0 }, + fitted: false, + filters: loadFilters(), + selected: null, +}; + +function loadFilters() { + try { + return Object.assign({}, DEFAULT_FILTERS, JSON.parse(localStorage.getItem(FILTER_KEY) || '{}')); + } catch (_) { + return Object.assign({}, DEFAULT_FILTERS); + } +} + +function saveFilters() { + try { localStorage.setItem(FILTER_KEY, JSON.stringify(state.filters)); } catch (_) { /* private mode */ } +} + +// ── Formatting ────────────────────────────────────────────────────────── +function speedText(mbps) { + if (!mbps) return ''; + return mbps >= 1000 ? `${+(mbps / 1000).toFixed(1)}G` : `${mbps}M`; +} + +function rateText(bytesPerSec) { + const bits = (bytesPerSec || 0) * 8; + if (bits >= 1e9) return `${(bits / 1e9).toFixed(2)} Gb/s`; + if (bits >= 1e6) return `${(bits / 1e6).toFixed(1)} Mb/s`; + if (bits >= 1e3) return `${(bits / 1e3).toFixed(0)} kb/s`; + return `${bits.toFixed(0)} b/s`; +} + +const MEDIUM_TEXT = { dac: 'DAC (twinax)', fibre: 'Fibre', sfp: 'SFP+ module', copper: 'Copper' }; + +function deviceHref(name) { + return `/device/${encodeURIComponent(name)}`; +} + +function nodeHref(node) { + if (node.kind === 'stub') return `${deviceHref(node.switch)}#port-${encodeURIComponent(node.port_idx)}`; + if (node.kind === 'internet') return ''; + return deviceHref(node.name); +} + +function speedClass(mbps) { + if (mbps >= 10000) return 'tp-s-10g'; + if (mbps >= 1000) return 'tp-s-1g'; + return 'tp-s-100m'; +} + +function mediumClass(link) { + if (link.wan && link.medium === 'fibre') return 'tp-m-wanfibre'; + return `tp-m-${link.medium || 'copper'}`; +} + +// ── Device drawings ───────────────────────────────────────────────────── +// The shared drawings size themselves to their page with CSS (width: 100%), which would override +// the width and height given here, so they are drawn under a class of our own. +function nested(svg) { + return svg.replace(/^(\s* {x, y, face} | null } in local units. + +function portMapOf(node) { + const map = {}; + Object.entries(node.ports || {}).forEach(([idx, p]) => { + map[idx] = Object.assign({ port_idx: Number(idx), lldp: { system_name: p.neighbour } }, p); + }); + return map; +} + +function portTitle(port, idx, role) { + const parts = [port && port.name && port.name !== `Port ${idx}` ? `Port ${idx} "${port.name}"` : `Port ${idx}`]; + if (role) parts.push(role); + if (port) { + parts.push(port.up ? (speedText(port.speed_mbps) || 'up') : 'down'); + if (port.neighbour) parts.push(`to ${port.neighbour}`); + } + return esc(parts.join(' · ')); +} + +function faceplateDrawing(node, model, width, opts = {}) { + const spec = FACEPLATES[model]; + const box = (opts.rack && spec.rackView) || [0, 0, spec.width, spec.height]; + const k = width / box[2]; + const h = box[3] * k; + // A rack view (the UPS's front without its rear) is a viewBox onto part of the drawing + const svg = faceplateSvg(model, { + swName: node.name, portMap: portMapOf(node), outlets: node.outlets || [], online: node.status === 'up', + rack: !!opts.rack, titleFor: portTitle, + }, `x="${opts.offsetX || 0}" y="0" width="${width}" height="${h}"`).svg; + const drawn = nested(svg); + return { + w: width, h, svg: drawn, + anchor(end) { + if (end.port_idx == null) return null; + const a = faceplatePortAnchor(spec, end.port_idx); + return a && { x: (opts.offsetX || 0) + (a.x - box[0]) * k, y: (a.y - box[1]) * k, face: a.face }; + }, + }; +} + +function deskFaceplate(node) { + const desk = DESK_FACEPLATES[node.model]; + const spec = FACEPLATES[node.model]; + const k = (desk.mm * PER_MM) / (desk.body[1] - desk.body[0]); + return faceplateDrawing(node, node.model, spec.width * k); +} + +function genericSwitch(node) { + const ports = Object.keys(node.ports || {}).map(Number).sort((a, b) => a - b); + const w = 1100, h = 110; + const pitch = Math.min(60, 900 / Math.max(ports.length, 1)); + const x0 = w - 60 - pitch * ports.length; + const pos = {}; + const jacks = ports.map((idx, i) => { + const p = node.ports[idx]; + const x = x0 + i * pitch; + pos[idx] = x + pitch / 2; + return `${portTitle(p, idx)} + ${idx}`; + }).join(''); + return { + w, h, + svg: ` + ${esc(node.model || 'switch')}${jacks}`, + anchor: end => (end.port_idx != null && pos[end.port_idx] != null ? { x: pos[end.port_idx], y: 55, face: 'top' } : null), + }; +} + +function internetDrawing() { + const w = 560, h = 250; + return { + w, h, + svg: ` + INTERNET`, + anchor: () => ({ x: w / 2, y: h - 22, face: 'bottom' }), + }; +} + +function modemDrawing(node) { + // An upright fibre gateway seen from the front, its status lights down the face + const w = 170, h = 520; + const leds = ['Power', 'Broadband', 'Service', 'Ethernet', 'Wi-Fi'].map((name, i) => { + const cls = node.status === 'up' ? 'tp-led-on' : (i === 0 ? 'tp-led-on' : (node.status === 'down' ? 'tp-led-bad' : 'tp-led-off')); + return `${name}`; + }).join(''); + return { + w, h, + svg: ` + + + + ${leds} + ${esc((node.model || '').split('-')[0])}`, + // Fibre comes in at the top, the LAN cable leaves at the bottom + anchor: end => (end.port_name === 'WAN' ? { x: w / 2, y: h - 8, face: 'bottom' } : { x: w / 2, y: 10, face: 'top' }), + }; +} + +function apDrawing(node) { + const d = 160 * PER_MM; + const r = d / 2; + return { + w: d, h: d, + svg: ` + + `, + anchor: () => ({ x: r, y: 6, face: 'top' }), + }; +} + +function stripDrawing(node) { + const w = 700, h = 140; + const outlets = node.outlets || []; + const n = Math.max(outlets.length, 6); + const sockets = Array.from({ length: n }, (_, i) => { + const o = outlets[i]; + const off = o && o.on === false; + const title = o ? `${o.name || `Outlet ${i + 1}`} · ${off ? 'off' : 'on'}${o.power_w != null ? ` · ${o.power_w.toFixed(1)} W` : ''}` : `Outlet ${i + 1}`; + return `${esc(title)} + + + `; + }).join(''); + return { + w: Math.max(w, 90 + n * 95), h, + svg: `${sockets}`, + anchor: () => null, + }; +} + +function boxDrawing(node, text) { + const w = 460, h = 150; + return { + w, h, + svg: ` + ${esc(text)}`, + anchor: () => null, + }; +} + +function stubDrawing() { + const w = 160, h = 100; + return { + w, h, + svg: ` + + ?`, + anchor: () => ({ x: w / 2, y: 10, face: 'top' }), + }; +} + +// A host: its drawn front (from the cutsheet's Front drawing) under a strip of its NIC sockets, +// one per physical interface, so each cable lands on the NIC it is plugged into. +function hostDrawing(node, linksByIface) { + let front; + const ctx = { name: node.name, status: node.status, interfaces: node.interfaces || [] }; + if (RACK_FRONTS[node.chassis]) { + const spec = RACK_FRONTS[node.chassis]; + front = { + w: spec.width, h: spec.height, + svg: nested(rackFrontSvg(node.chassis, ctx)).replace('${esc(`${node.name} · ${gear.label}`)}${gear.draw(ctx)}`, + }; + } else if (CHASSIS_FACEPLATES[node.chassis]) { + front = faceplateDrawing(node, CHASSIS_FACEPLATES[node.chassis], 1100); + } else { + front = { + w: 560, h: 150, + svg: ` + + server + ${esc(node.name)}: no front drawing on the cutsheet`, + }; + } + + const nics = (node.interfaces || []).slice(); + Object.keys(linksByIface).forEach(iface => { + if (iface && !nics.some(n => n.name === iface)) nics.push({ name: iface, up: true, unused: false, alert: '' }); + }); + const stripW = Math.max(nics.length * SOCKET_W + 24, 200); + const w = Math.max(front.w, stripW); + const sx = (w - stripW) / 2; + const fx = (w - front.w) / 2; + const pos = {}; + const sockets = nics.map((nic, i) => { + const link = linksByIface[nic.name]; + const cx = sx + 12 + i * SOCKET_W + SOCKET_W / 2; + pos[nic.name] = cx; + const sfp = link && ['dac', 'fibre', 'sfp'].includes(link.medium); + let st = nic.unused ? 'unused' : (nic.up ? 'up' : 'down'); + if (link && !link.up) st = 'down'; + const title = `${nic.name} · ${nic.unused ? 'marked unused' : (nic.up ? 'up' : 'down')}${link ? ` · ${speedText(link.speed_mbps)} ${MEDIUM_TEXT[link.medium] || ''}` : ' · no cable seen'}`; + const shape = sfp + ? `` + : ``; + return `${esc(title)} + ${shape} + ${esc(nic.name.length > 11 ? `${nic.name.slice(0, 10)}…` : nic.name)}`; + }).join(''); + return { + w, h: STRIP_H + 14 + front.h, + svg: `${sockets}${front.svg}`, + anchor: end => (end.iface && pos[end.iface] != null ? { x: pos[end.iface], y: 14, face: 'top' } : null), + }; +} + +function drawingFor(node, linksByIface) { + const spec = FACEPLATES[node.model]; + switch (node.kind) { + case 'internet': return internetDrawing(); + case 'modem': return modemDrawing(node); + case 'host': return hostDrawing(node, linksByIface); + case 'stub': return stubDrawing(); + case 'ap': return apDrawing(node); + case 'strip': return stripDrawing(node); + default: + if (spec && DESK_FACEPLATES[node.model]) return deskFaceplate(node); + if (spec) return faceplateDrawing(node, node.model, 1100, { rack: node.kind === 'ups' }); + if (node.kind === 'switch' || node.kind === 'router') return genericSwitch(node); + return boxDrawing(node, node.model || node.kind); + } +} + +// ── Layout ────────────────────────────────────────────────────────────── +function visibleGraph(data, filters) { + const nodes = data.nodes.filter(n => (filters.stubs || n.kind !== 'stub') && (filters.power || !n.power)); + const ids = new Set(nodes.map(n => n.id)); + const links = data.links.filter(l => ids.has(l.a.node) && ids.has(l.b.node)); + return { nodes, links }; +} + +function rowKey(node) { + if (node.kind === 'host') return 1e6; + if (node.depth == null) return 1e5; + return node.kind === 'stub' ? node.depth + 0.5 : node.depth; +} + +function anchorOf(lay, end, asParent) { + const p = lay.pos[end.node]; + const d = lay.drawings[end.node]; + // Power gear sits in a rail on the right: its cable comes in from the left + if (p.rail) return { x: p.x + p.dx, y: p.y + d.h / 2, face: 'left' }; + const a = d.anchor(end) || { x: d.w / 2, y: asParent ? d.h : 0, face: asParent ? 'bottom' : 'top' }; + return { x: p.x + p.dx + a.x, y: p.y + a.y, face: a.face }; +} + +function layout(data, filters) { + const { nodes, links } = visibleGraph(data, filters); + const byId = Object.fromEntries(nodes.map(n => [n.id, n])); + const drawings = {}; + const sizes = {}; + nodes.forEach(n => { + const byIface = {}; + links.forEach(l => [l.a, l.b].forEach(e => { if (e.node === n.id && e.iface) byIface[e.iface] = l; })); + const d = drawingFor(n, byIface); + drawings[n.id] = d; + const labelW = Math.min(Math.max(n.name.length * 25, 120), 900); + sizes[n.id] = { w: Math.max(d.w, labelW), h: d.h + LABEL_H }; + }); + + const lay = { pos: {}, drawings, nodes, links, byId }; + const rowsMap = new Map(); + nodes.filter(n => !n.power).forEach(n => { + const key = rowKey(n); + if (!rowsMap.has(key)) rowsMap.set(key, []); + rowsMap.get(key).push(n); + }); + const rows = [...rowsMap.keys()].sort((a, b) => a - b).map(k => rowsMap.get(k)); + + let y = 0; + rows.forEach(row => { + const items = row.map(n => { + const xs = links.filter(l => (l.b.node === n.id && lay.pos[l.a.node]) || (l.a.node === n.id && lay.pos[l.b.node])) + .map(l => anchorOf(lay, l.b.node === n.id ? l.a : l.b, true).x); + return { n, w: sizes[n.id].w, bary: xs.length ? xs.reduce((s, v) => s + v, 0) / xs.length : null }; + }); + let last = 0; + items.forEach(it => { if (it.bary == null) it.bary = last; else last = it.bary; }); + items.sort((a, b) => a.bary - b.bary || a.n.name.localeCompare(b.n.name)); + let right = -Infinity; + items.forEach(it => { + it.x = Math.max(it.bary - it.w / 2, right + NODE_GAP); + right = it.x + it.w; + }); + const shift = items.reduce((s, it) => s + (it.bary - (it.x + it.w / 2)), 0) / items.length; + const rowH = Math.max(...items.map(it => sizes[it.n.id].h)); + items.forEach(it => { + lay.pos[it.n.id] = { x: it.x + shift, y, w: it.w, dx: (it.w - drawings[it.n.id].w) / 2 }; + }); + y += rowH + ROW_GAP; + }); + + // Power gear: a rail down the right, each unit level with the port that feeds it + const placed = Object.values(lay.pos); + const maxX = placed.length ? Math.max(...placed.map(p => p.x + p.w)) : 0; + const top = placed.length ? Math.min(...placed.map(p => p.y)) : 0; + const feederY = n => { + const l = links.find(k => k.b.node === n.id && lay.pos[k.a.node]); + return l ? anchorOf(lay, l.a, true).y : Infinity; + }; + let railY = top; + nodes.filter(n => n.power).map(n => ({ n, f: feederY(n) })) + .sort((a, b) => a.f - b.f || a.n.name.localeCompare(b.n.name)).forEach(({ n, f }) => { + const want = Number.isFinite(f) ? f - drawings[n.id].h / 2 : railY; + const y = Math.max(want, railY); + lay.pos[n.id] = { x: maxX + RAIL_GAP, y, w: sizes[n.id].w, dx: 0, rail: true }; + railY = y + sizes[n.id].h + 120; + }); + + const all = Object.entries(lay.pos); + lay.bounds = { + x0: Math.min(...all.map(([, p]) => p.x)) - 80, + y0: Math.min(...all.map(([, p]) => p.y)) - 80, + x1: Math.max(...all.map(([, p]) => p.x + p.w)) + 80, + y1: Math.max(...all.map(([id, p]) => p.y + sizes[id].h)) + 80, + }; + return lay; +} + +// ── Rendering ─────────────────────────────────────────────────────────── +// A cable leaves each end square to the face it plugs into: up or down from a faceplate, or +// sideways into the power rail +function cablePath(A, B) { + const dir = (P, Q) => { + if (P.face === 'left') return [-1, 0]; + if (P.face === 'right') return [1, 0]; + return [0, Q.y >= P.y ? 1 : -1]; + }; + const c = Math.min(900, Math.max(90, Math.hypot(B.x - A.x, B.y - A.y) * 0.4)); + const [ax, ay] = dir(A, B); + const [bx, by] = dir(B, A); + const c1 = { x: A.x + ax * c, y: A.y + ay * c }; + const c2 = { x: B.x + bx * c, y: B.y + by * c }; + const mid = { x: (A.x + 3 * c1.x + 3 * c2.x + B.x) / 8, y: (A.y + 3 * c1.y + 3 * c2.y + B.y) / 8 }; + return { d: `M${A.x} ${A.y} C${c1.x} ${c1.y} ${c2.x} ${c2.y} ${B.x} ${B.y}`, mid }; +} + +function linkTitle(link, byId) { + const end = e => { + const n = byId[e.node]; + const name = n ? n.name : e.node; + if (e.port_idx != null) return `${name} port ${e.port_idx}${e.port_name && e.port_name !== `Port ${e.port_idx}` ? ` "${e.port_name}"` : ''}`; + return e.iface ? `${name} ${e.iface}` : name; + }; + const bits = [`${end(link.a)} to ${end(link.b)}`, speedText(link.speed_mbps), MEDIUM_TEXT[link.medium] || '']; + if (link.ghost) bits.push(`last seen ${link.seen || ''}`); + else if (!link.up) bits.push('down'); + return bits.filter(Boolean).join(' · '); +} + +function renderLink(link, lay) { + const A = anchorOf(lay, link.a, true); + const B = anchorOf(lay, link.b, false); + const { d, mid } = cablePath(A, B); + const cls = ['tp-link', mediumClass(link), speedClass(link.speed_mbps)]; + if (link.ghost) cls.push('tp-ghost'); + else if (!link.up) cls.push('tp-down'); + if (link.wan) cls.push('tp-wan'); + if (!link.wan && link.speed_mbps < 10000) cls.push('tp-slow'); + const busy = (link.a_to_b_bps || 0) + (link.b_to_a_bps || 0); + const alerting = [link.a.node, link.b.node].some(id => (lay.byId[id] || {}).alert_count); + if (alerting) cls.push('tp-touches-alert'); + const flowDur = Math.max(0.6, 6 - Math.log10(Math.max(busy, 1)) * 0.8).toFixed(2); + const flow = link.up && !link.ghost && busy > 1000 + ? `` : ''; + const label = link.ghost + ? `last seen` + : (link.up ? ` + ↓ ${esc(rateText(link.a_to_b_bps))} ↑ ${esc(rateText(link.b_to_a_bps))}` : ''); + let warn = ''; + if (link.name_mismatch) { + const at = link.name_mismatch.end === 'b' ? B : A; + const m = link.name_mismatch; + const text = `Port name says ${m.named}, but ${m.actual} is plugged in`; + warn = `${esc(text)} + !`; + } + const plugs = ['dac', 'fibre', 'sfp'].includes(link.medium) + ? `` + : ``; + const attrs = `class="${cls.join(' ')}" data-link="${esc(link.id)}"`; + return { + // The cable runs behind the devices; its plugs, traffic and warning sit on top + under: ` + ${esc(linkTitle(link, lay.byId))} + ${flow} + `, + over: ``, + }; +} + +function renderNode(node, lay) { + const p = lay.pos[node.id]; + const d = lay.drawings[node.id]; + const href = nodeHref(node); + const sub = node.kind === 'stub' + ? [node.ip ? '' : (node.mac || ''), `${node.switch} port ${node.port_idx}`].filter(Boolean).join(' · ') + : [node.kind === 'host' ? node.status : (node.model || node.kind), node.kind !== 'host' && node.status !== 'up' ? node.status : ''].filter(Boolean).join(' · '); + const ring = node.severity + ? ` + ${node.alert_count}` + : ''; + const alertText = (node.alerts || []).map(a => `${a.severity}: ${a.type.replace(/_/g, ' ')}${a.detail ? ` ${a.detail}` : ''}`).join('; '); + const label = `${node.name}${node.kind === 'stub' ? ' (not identified)' : ''} · ${node.status}${alertText ? ` · ${alertText}` : ''}`; + const open = href ? `` : ``; + const close = href ? '' : ''; + return ` + ${open}${esc(label)} + + ${ring} + ${d.svg} + ${node.kind === 'internet' ? '' : ``} + ${node.kind === 'internet' ? '' : `${esc(node.name)}`} + ${esc(sub)} + ${close} + `; +} + +function applyView() { + const { k, tx, ty } = state.view; + document.getElementById('tp-world').setAttribute('transform', `translate(${tx} ${ty}) scale(${k})`); + const canvas = document.getElementById('tp-canvas'); + canvas.classList.toggle('tp-far', k < 0.16); + canvas.classList.toggle('tp-near', k >= 0.6); +} + +function applyFilterClasses() { + const canvas = document.getElementById('tp-canvas'); + canvas.classList.toggle('tp-no-traffic', !state.filters.traffic); + canvas.classList.toggle('tp-only-10g', state.filters.tenG); + canvas.classList.toggle('tp-alerts-only', state.filters.alerts); + document.querySelectorAll('[data-filter]').forEach(cb => { cb.checked = !!state.filters[cb.dataset.filter]; }); +} + +function render() { + const data = state.data; + if (!data) return; + state.layout = layout(data, state.filters); + const lay = state.layout; + const world = document.getElementById('tp-world'); + const cables = lay.links.map(l => renderLink(l, lay)); + world.innerHTML = `${cables.map(c => c.under).join('')} + ${lay.nodes.map(n => renderNode(n, lay)).join('')} + ${cables.map(c => c.over).join('')}`; + document.getElementById('tp-loading').hidden = true; + applyFilterClasses(); + if (!state.fitted) { + fit(); + state.fitted = true; + } else { + applyView(); + } + if (state.selected) { + const link = data.links.find(l => l.id === state.selected); + if (link) showPanel(link); + else hidePanel(); + } +} + +// ── Cable panel ───────────────────────────────────────────────────────── +function endHtml(end, byId) { + const n = byId[end.node] || { name: end.node, kind: '' }; + const href = n.kind && n.kind !== 'internet' ? nodeHref(n) : ''; + const name = href ? `${esc(n.name)}` : esc(n.name); + let where = ''; + if (end.port_idx != null) { + where = `port ${esc(end.port_idx)}`; + if (end.port_name && end.port_name !== `Port ${end.port_idx}`) where += ` "${esc(end.port_name)}"`; + } else if (end.iface) { + where = esc(end.iface); + } else if (end.port_name) { + where = esc(end.port_name); + } + return `${name}${where ? ` · ${where}` : ''}`; +} + +function showPanel(link) { + const byId = Object.fromEntries(state.data.nodes.map(n => [n.id, n])); + const panel = document.getElementById('tp-panel'); + const rows = []; + const row = (k, v) => rows.push(`
${k}${v}
`); + row('From', endHtml(link.a, byId)); + row('To', endHtml(link.b, byId)); + row('State', link.ghost ? `
not seen now · last seen ${esc(link.seen || 'unknown')}` : (link.up ? 'up' : 'down')); + if (link.speed_mbps) row('Speed', esc(speedText(link.speed_mbps))); + row('Cable', esc(MEDIUM_TEXT[link.medium] || link.medium)); + if (link.sfp_part || link.sfp_vendor) { + row('Module', esc([link.sfp_vendor, link.sfp_part].filter(Boolean).join(' ')) + (link.sfp_serial ? `
S/N ${esc(link.sfp_serial)}` : '')); + } + if (!link.ghost && link.up) { + row('Down (from the internet side)', esc(rateText(link.a_to_b_bps))); + row('Up', esc(rateText(link.b_to_a_bps))); + if (link.utilisation != null) row('Busiest direction', `${(link.utilisation * 100).toFixed(link.utilisation < 0.01 ? 2 : 1)}% of ${esc(speedText(link.speed_mbps))}`); + row('Errors', link.errors ? `${esc(link.errors)}/s` : 'none'); + row('Drops', link.drops ? `${esc(link.drops)}/s` : 'none'); + } + if (link.cable) { + const label = link.cable.label || `cable #${link.cable.id}`; + row('Cutsheet', `
${esc(label)}${link.cable.type ? ` · ${esc(link.cable.type)}` : ''}${link.cable.color ? ` · ${esc(link.cable.color)}` : ''}`); + } else if (!link.wan) { + row('Cutsheet', 'not documented'); + } + const warn = link.name_mismatch + ? `

⚠ The port is named after ${esc(link.name_mismatch.named)}, but ${esc(link.name_mismatch.actual)} is plugged into it. Rename the port in UniFi, or check the cable.

` + : ''; + panel.innerHTML = `
+

Cable

+ +
${warn}${rows.join('')}
`; + panel.hidden = false; + state.selected = link.id; + document.querySelectorAll('.tp-link.tp-selected').forEach(el => el.classList.remove('tp-selected')); + document.querySelectorAll(`.tp-link[data-link="${CSS.escape(link.id)}"]`).forEach(el => el.classList.add('tp-selected')); +} + +function hidePanel() { + document.getElementById('tp-panel').hidden = true; + state.selected = null; + document.querySelectorAll('.tp-link.tp-selected').forEach(el => el.classList.remove('tp-selected')); +} + +// ── Path to the internet ──────────────────────────────────────────────── +function upstream(id) { + const links = state.layout.links; + const nodes = new Set([id]); + const hot = new Set(); + const queue = [id]; + while (queue.length) { + const cur = queue.shift(); + links.forEach(l => { + if (l.b.node === cur && !l.ghost) { + hot.add(l.id); + if (!nodes.has(l.a.node)) { + nodes.add(l.a.node); + queue.push(l.a.node); + } + } + }); + } + return { nodes, hot }; +} + +function highlight(id) { + const canvas = document.getElementById('tp-canvas'); + document.querySelectorAll('.tp-hot').forEach(el => el.classList.remove('tp-hot')); + if (!id || !state.layout) { + canvas.classList.remove('tp-tracing'); + return; + } + const { nodes, hot } = upstream(id); + nodes.forEach(n => document.querySelector(`.tp-node[data-node="${CSS.escape(n)}"]`)?.classList.add('tp-hot')); + hot.forEach(l => document.querySelectorAll(`.tp-link[data-link="${CSS.escape(l)}"]`).forEach(el => el.classList.add('tp-hot'))); + canvas.classList.add('tp-tracing'); +} + +// ── Pan and zoom ──────────────────────────────────────────────────────── +const K_MIN = 0.03; +const K_MAX = 3; + +function fit() { + if (!state.layout) return; + const canvas = document.getElementById('tp-canvas'); + const { x0, y0, x1, y1 } = state.layout.bounds; + const cw = canvas.clientWidth, ch = canvas.clientHeight; + const k = Math.max(K_MIN, Math.min(K_MAX, Math.min(cw / (x1 - x0), ch / (y1 - y0)))); + state.view = { k, tx: (cw - (x1 - x0) * k) / 2 - x0 * k, ty: (ch - (y1 - y0) * k) / 2 - y0 * k }; + applyView(); +} + +function zoomAt(factor, px, py) { + const v = state.view; + const k = Math.max(K_MIN, Math.min(K_MAX, v.k * factor)); + const wx = (px - v.tx) / v.k, wy = (py - v.ty) / v.k; + state.view = { k, tx: px - wx * k, ty: py - wy * k }; + applyView(); +} + +function zoomCentre(factor) { + const canvas = document.getElementById('tp-canvas'); + zoomAt(factor, canvas.clientWidth / 2, canvas.clientHeight / 2); +} + +function initPanZoom() { + const canvas = document.getElementById('tp-canvas'); + const svg = document.getElementById('tp-svg'); + const pointers = new Map(); + let drag = null; + let pinch = null; + let suppressClick = false; + + const local = e => { + const r = canvas.getBoundingClientRect(); + return { x: e.clientX - r.left, y: e.clientY - r.top }; + }; + + svg.addEventListener('pointerdown', e => { + if (e.button !== 0 && e.pointerType === 'mouse') return; + pointers.set(e.pointerId, local(e)); + if (pointers.size === 1) { + drag = { start: local(e), view: Object.assign({}, state.view), id: e.pointerId, moved: false }; + } else if (pointers.size === 2) { + const [p, q] = [...pointers.values()]; + pinch = { dist: Math.hypot(p.x - q.x, p.y - q.y), k: state.view.k }; + drag = null; + } + }); + + svg.addEventListener('pointermove', e => { + if (!pointers.has(e.pointerId)) return; + pointers.set(e.pointerId, local(e)); + if (pinch && pointers.size === 2) { + const [p, q] = [...pointers.values()]; + const dist = Math.hypot(p.x - q.x, p.y - q.y); + zoomAt((pinch.k * dist / pinch.dist) / state.view.k, (p.x + q.x) / 2, (p.y + q.y) / 2); + suppressClick = true; + return; + } + if (!drag || drag.id !== e.pointerId) return; + const pt = local(e); + const dx = pt.x - drag.start.x, dy = pt.y - drag.start.y; + if (!drag.moved && Math.hypot(dx, dy) < 5) return; + if (!drag.moved) { + drag.moved = true; + svg.setPointerCapture(e.pointerId); + canvas.classList.add('tp-dragging'); + } + state.view = { k: drag.view.k, tx: drag.view.tx + dx, ty: drag.view.ty + dy }; + applyView(); + }); + + const end = e => { + pointers.delete(e.pointerId); + if (drag && drag.id === e.pointerId && drag.moved) suppressClick = true; + if (pointers.size < 2) pinch = null; + if (!pointers.size) drag = null; + canvas.classList.remove('tp-dragging'); + }; + svg.addEventListener('pointerup', end); + svg.addEventListener('pointercancel', end); + + // A drag that ends over a device is not a click on it + svg.addEventListener('click', e => { + if (suppressClick) { + e.preventDefault(); + e.stopPropagation(); + suppressClick = false; + } + }, true); + + svg.addEventListener('wheel', e => { + e.preventDefault(); + const pt = local(e); + zoomAt(Math.exp(-e.deltaY * (e.ctrlKey ? 0.01 : 0.0015)), pt.x, pt.y); + }, { passive: false }); + + canvas.addEventListener('keydown', e => { + if (e.target.closest('input, select, textarea, .tp-panel')) return; + if (e.key === '+' || e.key === '=') { zoomCentre(1.25); e.preventDefault(); } + else if (e.key === '-' || e.key === '_') { zoomCentre(0.8); e.preventDefault(); } + else if (e.key === '0') { fit(); e.preventDefault(); } + else if (e.key === 'Escape') hidePanel(); + }); +} + +// ── Events ────────────────────────────────────────────────────────────── +function initEvents() { + const svg = document.getElementById('tp-svg'); + svg.addEventListener('click', e => { + const port = e.target.closest('[data-action="select-port"]'); + if (port) { + e.preventDefault(); + window.location.href = `${deviceHref(port.dataset.switch)}#port-${encodeURIComponent(port.dataset.portIdx)}`; + return; + } + const link = e.target.closest('.tp-link'); + if (link) { + const found = state.data.links.find(l => l.id === link.dataset.link); + if (found) showPanel(found); + return; + } + if (!e.target.closest('.tp-node')) hidePanel(); + }); + svg.addEventListener('keydown', e => { + if (e.key !== 'Enter' && e.key !== ' ') return; + const link = e.target.closest('.tp-link'); + if (link) { + e.preventDefault(); + const found = state.data.links.find(l => l.id === link.dataset.link); + if (found) showPanel(found); + } + }); + const trace = e => { + const node = e.target.closest('.tp-node'); + highlight(node ? node.dataset.node : null); + }; + svg.addEventListener('mouseover', trace); + svg.addEventListener('focusin', trace); + svg.addEventListener('mouseleave', () => highlight(null)); + svg.addEventListener('focusout', e => { if (!svg.contains(e.relatedTarget)) highlight(null); }); + + document.getElementById('tp-panel').addEventListener('click', e => { + if (e.target.closest('[data-action="close-panel"]')) hidePanel(); + }); + + document.querySelectorAll('[data-filter]').forEach(cb => { + cb.addEventListener('change', () => { + state.filters[cb.dataset.filter] = cb.checked; + saveFilters(); + if (cb.dataset.filter === 'stubs' || cb.dataset.filter === 'power') render(); + else applyFilterClasses(); + }); + }); + document.querySelectorAll('[data-zoom]').forEach(btn => { + btn.addEventListener('click', () => { + if (btn.dataset.zoom === 'fit') fit(); + else zoomCentre(btn.dataset.zoom === 'in' ? 1.25 : 0.8); + }); + }); + let resizeTimer = null; + window.addEventListener('resize', () => { + clearTimeout(resizeTimer); + resizeTimer = setTimeout(applyView, 150); + }); +} + +// ── Data ──────────────────────────────────────────────────────────────── +async function refresh() { + try { + const data = await lt.api.get('/api/topology'); + state.data = data; + // The layout follows from the devices and cables alone, so a redraw with the same ones keeps + // everything where it was; the view (pan and zoom) is kept either way + render(); + const warn = document.getElementById('tp-warnings'); + warn.hidden = !(data.warnings && data.warnings.length); + warn.innerHTML = (data.warnings || []).map(w => `
${esc(w)}
`).join(''); + document.getElementById('tp-updated').textContent = data.updated ? `Port data from ${data.updated}` : ''; + } catch (e) { + document.getElementById('tp-loading').textContent = `Topology unavailable: ${e.message || e}`; + document.getElementById('tp-loading').hidden = false; + } +} + +document.addEventListener('DOMContentLoaded', () => { + initPanZoom(); + initEvents(); + applyFilterClasses(); + refresh(); + setInterval(() => { if (!document.hidden) refresh(); }, REFRESH_MS); +}); diff --git a/templates/base.html b/templates/base.html index ac8a75f..a4617d2 100644 --- a/templates/base.html +++ b/templates/base.html @@ -46,6 +46,9 @@ Rack + Topology {% if user.groups and 'admin' in user.groups %} Rack + + Topology + {% if user.groups and 'admin' in user.groups %} {% endif %} - -
-
-

Network Topology

- -
-
- -
-
- - {%- set topo_h = snapshot.hosts if snapshot.hosts else {} -%} - - -
-
- ◈ - INTERNET - WAN uplink -
-
- - -
-
- AT&T Fiber -
- - -
-
- ◈ - BGW320 - AT&T Gateway - Rx - -
-
- - -
-
- WAN · Port 9 · 1G -
- - -
-
- ⬡ - UDM-Pro - Dream Machine Pro - RU24 -
-
- - -
-
- 10G SFP+ -
- - -
-
- ⬡ - USW-Agg - Aggregation · RU22 - 8 × 10G SFP+ - VLAN90 · 10.10.90.x/24 -
-
- - -
-
- 10G trunk -
- - -
-
- ⬡ - Pro 24 PoE - 24-Port · RU23 - 24 × 1G PoE - DHCP · mgmt -
-
- - -
-
-
- - -
- - -
- ← USW-Agg · 10G SFP+ · VLAN90 → -
-
- - -
- ← Pro 24 PoE · 1G · DHCP mgmt → -
-
- - -
- {%- set all_defs = [ - ('compute-storage-gpu-01', 'csg-01', 'RU4-12', 'Ceph · VLAN90', False), - ('compute-storage-01', 'cs-01', 'RU14-17', 'Ceph · VLAN90', False), - ('storage-01', 'sto-01', 'rack', 'Ceph · VLAN90', False), - ('monitor-01', 'mon-01', 'ZimaBoard', 'mgmt', False), - ('monitor-02', 'mon-02', 'ZimaBoard', 'mgmt', False), - ('large1', 'large1', 'off-rack', 'table', True), - ] -%} - {%- for hname, hlabel, hsub, hvlan, off_rack in all_defs -%} - {%- set st = topo_h[hname].status if hname in topo_h else 'unknown' -%} -
- -
-
-
-
- -
- ▣ - {{ hlabel }} - {{ hsub }} - {{ hvlan }} - {{ st if st != 'unknown' else '-' }} -
-
- {%- endfor -%} -
- -
- - -
-
WAN / uplink
-
10G SFP+ (Ceph / VLAN90)
-
1G DHCP (mgmt)
-
dashed border = off-rack
-
- -
-
- -
-
- - {% if recent_resolved %}
@@ -551,30 +381,6 @@ if (s.refreshInterval > 0) lt.autoRefresh.start(refreshAll, s.refreshInterval * 1000); }; - // ── Topology collapse toggle ─────────────────────────────────── - (function() { - const LS_KEY = 'gandalf_topo_collapsed'; - const btn = document.getElementById('topo-toggle-btn'); - const wrap = document.getElementById('topo-collapsible-wrap'); - if (!btn || !wrap) return; - - function setCollapsed(v) { - wrap.classList.toggle('is-collapsed', v); - wrap.setAttribute('aria-hidden', v ? 'true' : 'false'); - btn.setAttribute('aria-expanded', v ? 'false' : 'true'); - btn.textContent = v ? '▾ Expand' : '▴ Collapse'; - try { localStorage.setItem(LS_KEY, v ? '1' : '0'); } catch(_) {} - } - - let saved = false; - try { saved = localStorage.getItem(LS_KEY) === '1'; } catch(_) {} - setCollapsed(saved); - - btn.addEventListener('click', function() { - setCollapsed(!wrap.classList.contains('is-collapsed')); - }); - })(); - function updateEventAges() { document.querySelectorAll('.event-age[data-ts]').forEach(el => { el.textContent = lt.time.ago(_toIso(el.dataset.ts)); @@ -635,12 +441,6 @@ initDeviceSearch(); - // Topology hosts open their device page - document.getElementById('topology-diagram')?.addEventListener('click', e => { - const node = e.target.closest('.topo-host[data-host]'); - if (node) window.location.href = deviceUrl(node.dataset.host); - }); - // Stat card clicks: filter events table by severity document.querySelectorAll('.lt-stat-card[data-stat-filter]').forEach(card => { card.addEventListener('click', () => { diff --git a/templates/topology.html b/templates/topology.html new file mode 100644 index 0000000..9fa79c5 --- /dev/null +++ b/templates/topology.html @@ -0,0 +1,55 @@ +{% extends "base.html" %} +{% block title %}Topology{% endblock %} + +{% block content %} +
+
+

Topology

+

Every device and cable as the switches see them right now, drawn from the real faceplates. Drag to pan, scroll or pinch to zoom. Hover a device to trace its path to the internet; click a cable for its details.

+
+
+ + + + + +
+ + + + + +
+ +
+ DAC + Fibre (multimode) + Fibre (provider) + SFP+ module + Copper + Thicker = faster (10G, 1G, 100M) + Down + Last seen + Port name points at another device +
+{% endblock %} + +{% block scripts %} + + + +{% endblock %} diff --git a/tests/test_app.py b/tests/test_app.py index 355fab3..6e06352 100644 --- a/tests/test_app.py +++ b/tests/test_app.py @@ -96,10 +96,15 @@ class TestPagesAndNav: html = client.get('/', headers=AUTH).get_data(as_text=True) order = [html.index(m) for m in ( 'id="device-search"', 'Alert Queue', 'WAN / Fiber', 'g-section-title">Hosts<', - 'Device Inventory', 'Network Topology', + 'Device Inventory', )] assert order == sorted(order) + def test_dashboard_topology_moved_to_its_own_page(self, client): + html = client.get('/', headers=AUTH).get_data(as_text=True) + assert 'topology-diagram' not in html and 'Network Topology' not in html + assert 'href="/topology"' in html + def test_old_links_url_redirects_home(self, client): resp = client.get('/links', headers=AUTH) assert resp.status_code == 302 and resp.headers['Location'].endswith('/') @@ -385,7 +390,8 @@ class TestHealth: class TestPageTitles: @pytest.mark.parametrize('path,title', [('/', 'Dashboard | GANDALF'), ('/events', 'Alert History | GANDALF'), - ('/cutsheet', 'Cutsheet | GANDALF')]) + ('/cutsheet', 'Cutsheet | GANDALF'), + ('/topology', 'Topology | GANDALF')]) def test_name_appears_once(self, client, path, title): gandalf._cutsheet_schema_ready = True html = client.get(path, headers=AUTH).get_data(as_text=True) @@ -703,3 +709,37 @@ class TestFollowUp: html = client.get('/', headers=AUTH).get_data(as_text=True) assert '