#!/usr/bin/env python3 """ Accedian NID SNMP Data Visualizer Reads a *_monitoring.json file produced by snmp-parse.py and generates a self-contained HTML page showing the device model, ports, SFPs, alarms, config, and SNMP data coverage. Usage: python3 build_nid_viewer.py [monitoring_json] """ import json import sys from pathlib import Path SCRIPT_DIR = Path(__file__).resolve().parent WALKS_DIR = SCRIPT_DIR / "walks" DEFAULT_INPUT = WALKS_DIR / "10-13-60-102_2026-02-27_11-23-07_walk_monitoring.json" def safe_json(obj, **kwargs): """JSON-encode and escape sequences unsafe inside
''' def main(): input_file = Path(sys.argv[1]).expanduser() if len(sys.argv) > 1 else DEFAULT_INPUT if not input_file.is_file(): print(f"Error: {input_file} not found", file=sys.stderr) sys.exit(1) output_file = input_file.parent / "nid-viewer.html" print(f"Reading: {input_file}") with input_file.open(encoding="utf-8") as f: data = json.load(f) html = build_html(data) with output_file.open("w", encoding="utf-8") as f: f.write(html) print(f"Written: {output_file}") print(f"Size: {len(html):,} bytes") print(f"Open in browser to view.") if __name__ == "__main__": main()