fix(parser): parse Dell iDRAC10 TSR inventory from captured Redfish walk
iDRAC10-generation TSR bundles no longer ship sysinfo_dcim_view.xml / sysinfo_dcim_softwareidentity.xml, so the dell parser produced events but no hardware inventory for them. These bundles instead carry redfishidracwalk.tar.gz, a captured dump of the iDRAC's own Redfish tree. Add vendors/redfishtree, a shared helper that reconstructs a path->document map from a tar.gz/zip-packaged Redfish walk (vendor-independent detection: path hint + /redfish/v1 service-root/Systems/Chassis structural check) and replays it through the existing collector.ReplayRedfishFromRawPayloads. vendors/dell uses it to enrich DCIM-XML-derived data (append-only, existing dedupe passes resolve overlaps). Also register vendors/redfishwalk, a low-confidence fallback VendorParser using the same helpers, so any other vendor that starts shipping this kind of raw Redfish walk is picked up automatically without a dedicated parser. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
6e1a8232ec
commit
f599215760
+3
@@ -48,6 +48,8 @@ func (p *Parser) Detect(files []parser.ExtractedFile) int {
|
||||
confidence += 20
|
||||
case strings.HasSuffix(path, "curr_lclog.xml"):
|
||||
confidence += 10
|
||||
case strings.HasSuffix(path, "redfishidracwalk.tar.gz"):
|
||||
confidence += 20
|
||||
case path == "signature":
|
||||
confidence += 5
|
||||
}
|
||||
@@ -94,6 +96,7 @@ func (p *Parser) Parse(files []parser.ExtractedFile) (*models.AnalysisResult, er
|
||||
if f := findBySuffix(expanded, "curr_lclog.xml"); f != nil {
|
||||
result.Events = append(result.Events, parseLCEventsXML(f.Content)...)
|
||||
}
|
||||
parseRedfishWalk(findRedfishWalkArchive(expanded), result)
|
||||
|
||||
result.Hardware.Storage = dedupeStorage(result.Hardware.Storage)
|
||||
result.Hardware.Volumes = dedupeVolumes(result.Hardware.Volumes)
|
||||
|
||||
Reference in New Issue
Block a user