feat(audit): capture IPMI FRU/Elabel, mc info and LAN on every audit
The techdump — the only place the IPMI FRU / Elabel identity (Product Name = server model, serials, part numbers) is recorded — only ran under LiveCD. Run it on every audit so `bee audit` on an installed host captures it too. Also add `ipmitool mc info` and `ipmitool lan print` to the techdump, and pin `ipmitool fru print 0` to FRU device 0 to match the Export Tools "FRU / Elabel" editor exactly. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
319f08ac4b
commit
76db45ee95
@@ -237,10 +237,12 @@ func readAuditSnapshot(auditJSON []byte) (schema.HardwareIngestRequest, error) {
|
||||
}
|
||||
|
||||
func (a *App) RunAudit(runtimeMode runtimeenv.Mode, output string) (string, error) {
|
||||
if runtimeMode == runtimeenv.ModeLiveCD {
|
||||
if err := a.runtime.CaptureTechnicalDump(DefaultTechDumpDir); err != nil {
|
||||
slog.Warn("capture technical dump", "err", err)
|
||||
}
|
||||
// Capture the raw techdump on every audit, not just LiveCD: it's the only
|
||||
// place IPMI FRU / Elabel (server model), mc info and LAN config land, and
|
||||
// downstream views (webui /topo, support bundle) expect it fresh per audit
|
||||
// cycle. Best-effort — a missing tool or read-only path only warns.
|
||||
if err := a.runtime.CaptureTechnicalDump(DefaultTechDumpDir); err != nil {
|
||||
slog.Warn("capture technical dump", "err", err)
|
||||
}
|
||||
result := collector.Run(runtimeMode)
|
||||
applyLatestSATStatuses(&result.Hardware, DefaultSATBaseDir, a.StatusDB)
|
||||
|
||||
Reference in New Issue
Block a user