mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-11 14:00:29 +00:00
95171ff7bc
The /proxmox/ceph tab was mounting <StorageSurface forcedView="pools" forcedSourceFilter="proxmox-pve">. That surface ships its own internal Pools/Physical-disks tab switcher (StoragePageControls always renders StorageViewSwitcher), and the forcedView createEffect immediately reverted any click on those tabs — so the buttons looked interactive but did nothing, and neither view was Ceph-aware in the first place. Build a real ProxmoxCephTable backed by the canonical CephCluster resource (type='ceph') that already flows through /api/resources. Add ResourceCephMeta/ResourceCephPoolMeta/ResourceCephServiceMeta types on the frontend Resource (the backend already projects these on unifiedresources.Resource.Ceph; the frontend type was missing). Render one row per cluster with health, FSID, MON/MGR quorum, OSD up/in counts, PGs, pool count + stored bytes, capacity utilisation, daemon service summary, and the Ceph health message. Also fix the mock generator: generateCephClusters returns nil unless some Storage entry has type cephfs/rbd/ceph, and no mock storage was ever generated with those types — so the Ceph tab has always been empty under mock mode. Seed a cluster-wide RBD pool (48TB) and CephFS data pool (24TB) on the mock-cluster instance so the canonical adapter has real cluster topology to synthesize.