component_integrity: Handle Configuration.MCTPUSBDevice
When resolving protected component links for ComponentIntegrity and
TrustedComponent resources, bmcweb failed to match D-Bus objects
implementing xyz.openbmc_project.Configuration.MCTPUSBDevice. This caused
bmcweb to treat them as unsupported resource types and return
Base.1.13.0.InternalError (HTTP 500).
On platforms like Velorum, ConnectX-9 SMAs (and other onboard MCUs) are
modeled in Entity-Manager as exposed MCTPUSBDevice entities under their
parent board (e.g. NvidiaMcuSwitch), advertising Configuration.MCTPUSBDevice
rather than Inventory.Item.Component.
This change adds Configuration.MCTPUSBDevice to componentItemInterfaces so
that bmcweb resolves their parent chassis URI dynamically through either
their contained_by association or the parent path fallback (e.g.
/redfish/v1/Chassis/NvidiaMcuSwitch).
Unit tests are added for both ComponentIntegrity and TrustedComponent
handlers covering both the contained_by association path and the parent-path
fallback path.
Tested: https://paste.googleplex.com/5359464295825408
Tested attestation: https://paste.googleplex.com/4800424876572672
PiperOrigin-RevId: 988488575
Change-Id: Id44148c822c95f2eb7e617c7ee7c7cfdf2f502be
1 file changed