misc: sds format support, convert limits, dell dedup, supermicro removal, bible updates
Parser / archive: - Add .sds extension as tar-format alias (archive.go) - Add tests for multipart upload size limits (multipart_limits_test.go) - Remove supermicro crashdump parser (ADL-015) Dell parser: - Remove GPU duplicates from PCIeDevices (DCIM_VideoView vs DCIM_PCIDeviceView both list the same GPU; VideoView record is authoritative) Server: - Add LOGPILE_CONVERT_MAX_MB env var for independent convert batch size limit - Improve "file too large" error message with current limit value Web: - Add CONVERT_MAX_FILES_PER_BATCH = 1000 cap - Minor UI copy and CSS fixes Bible: - bible-local/06-parsers.md: add pci.ids enrichment rule (enrich model from pciids when name is empty but vendor_id+device_id are present) - Sync bible submodule and local overview/architecture docs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
35
internal/parser/vendors/dell/parser.go
vendored
35
internal/parser/vendors/dell/parser.go
vendored
@@ -99,8 +99,8 @@ func (p *Parser) Parse(files []parser.ExtractedFile) (*models.AnalysisResult, er
|
||||
result.Hardware.PowerSupply = dedupePSU(result.Hardware.PowerSupply)
|
||||
result.Hardware.NetworkAdapters = dedupeNetworkAdapters(result.Hardware.NetworkAdapters)
|
||||
result.Hardware.NetworkCards = nicCardsFromAdapters(result.Hardware.NetworkAdapters)
|
||||
result.Hardware.PCIeDevices = dedupePCIe(result.Hardware.PCIeDevices)
|
||||
result.Hardware.GPUs = dedupeGPU(result.Hardware.GPUs)
|
||||
result.Hardware.PCIeDevices = removePCIeOverlappingWithGPUs(dedupePCIe(result.Hardware.PCIeDevices), result.Hardware.GPUs)
|
||||
result.Hardware.CPUs = dedupeCPU(result.Hardware.CPUs)
|
||||
result.Hardware.Memory = dedupeDIMM(result.Hardware.Memory)
|
||||
result.Hardware.Firmware = dedupeFirmware(result.Hardware.Firmware)
|
||||
@@ -1248,6 +1248,39 @@ func nicCardsFromAdapters(items []models.NetworkAdapter) []models.NIC {
|
||||
return out
|
||||
}
|
||||
|
||||
// removePCIeOverlappingWithGPUs drops PCIe entries that duplicate a GPU already
|
||||
// captured from DCIM_VideoView. Dell TSR lists GPUs in both DCIM_VideoView and
|
||||
// DCIM_PCIDeviceView; the VideoView record is authoritative (has serial, firmware,
|
||||
// temperature) so the PCIe duplicate must be removed.
|
||||
func removePCIeOverlappingWithGPUs(pcie []models.PCIeDevice, gpus []models.GPU) []models.PCIeDevice {
|
||||
if len(gpus) == 0 {
|
||||
return pcie
|
||||
}
|
||||
gpuSlots := make(map[string]struct{}, len(gpus))
|
||||
gpuBDFs := make(map[string]struct{}, len(gpus))
|
||||
for _, g := range gpus {
|
||||
if s := strings.ToLower(strings.TrimSpace(g.Slot)); s != "" {
|
||||
gpuSlots[s] = struct{}{}
|
||||
}
|
||||
if b := strings.ToLower(strings.TrimSpace(g.BDF)); b != "" {
|
||||
gpuBDFs[b] = struct{}{}
|
||||
}
|
||||
}
|
||||
out := make([]models.PCIeDevice, 0, len(pcie))
|
||||
for _, p := range pcie {
|
||||
slot := strings.ToLower(strings.TrimSpace(p.Slot))
|
||||
bdf := strings.ToLower(strings.TrimSpace(p.BDF))
|
||||
if _, ok := gpuSlots[slot]; ok && slot != "" {
|
||||
continue
|
||||
}
|
||||
if _, ok := gpuBDFs[bdf]; ok && bdf != "" {
|
||||
continue
|
||||
}
|
||||
out = append(out, p)
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func dedupePCIe(items []models.PCIeDevice) []models.PCIeDevice {
|
||||
out := make([]models.PCIeDevice, 0, len(items))
|
||||
seen := make(map[string]int)
|
||||
|
||||
Reference in New Issue
Block a user