1e4ec513e1e1838c789d4cfc5f89a5321aa71496
A re-run against the G5500 V7 (previous fix commit a3567dd) surfaced two
follow-on bugs once the GPUs started being classified correctly:
- gpuDocDedupKey fell straight through to the full @odata.id path when a
GPU had neither SerialNumber nor BDF, so the same physical H100 exposed
under both Systems/1/PCIeDevices and Chassis/1/PCIeDevices (identical
resource Id, different collection root) was kept twice, doubling the
reported GPU count. Added an Id + resolved VendorID/DeviceID fallback
tier that collapses same-Id duplicates without collapsing genuinely
distinct GPUs that happen to share a vendor/device pair.
- isMissingOrRawPCIModel/isGenericRedfishInventoryName didn't recognize
xFusion's generic "PCIeCardN"/"OCPCardN" slot labels, so when the doc's
actual Model field was empty and GPU.Model fell back to the slot-like
Name field, the pci.ids VendorId/DeviceId resolution never fired and the
GPU surfaced with a meaningless model like "PCIeCard1" instead of the
real chip name.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
LOGPile
Standalone Go application for BMC diagnostics analysis with an embedded web UI.
What it does
- Parses vendor diagnostic archives into a normalized hardware inventory
- Collects live BMC data via Redfish
- Exports normalized data as CSV, raw re-analysis bundles, and Reanimator JSON
- Runs as a single Go binary with embedded UI assets
Documentation
- Shared engineering rules:
bible/README.md - Project architecture and API contracts:
bible-local/README.md - Agent entrypoints:
AGENTS.md,CLAUDE.md
Run
make build
./bin/logpile
Default port: 8082
License
MIT (see LICENSE)
Releases
24
logpile v1.31
Latest
Languages
Go
92.3%
JavaScript
4.6%
CSS
1.5%
HTML
1%
Shell
0.5%
Other
0.1%