What is meant to populate the Serviceroot "Product" property?
The latest model specification shows:
The product associated with this Redfish service. • This property shall include the name of the product represented by this Redfish service.
We were hoping to use this property to identify the type of machine under consideration, and to determine which code path to take to log in and perform actions, but it does not seem to be used in the same way by any hardware supplier:
Dells return "Integrated Dell Remote Access Controller", no matter the iDRAC version; HPEs return the server model (e.g., "ProLiant DL380 Gen10"); ODM hardware suppliers utilizing the AMI MegaRAC codebase all return "AMI Redfish Server"; Others (e.g., OpenBMC) don't implement this property (which I will grant is technically acceptable if not particularly helpful).
Well, the intent was just that - the actual product that you're talking to, so in your list, I think the HPE unit is correct. But I can see that "the product represented by this Redfish service" could be interpreted as the firmware or management "product" that is providing the HTTP service! So the Dell and AMI aren't totally wrong, either.
I'll bring this up with the group to see if some clarification is needed - but I suspect that even if we make a clarification, the vendors may be hesitant to change those values as customers are likely already coding for those values, just as you're trying to do. But if we can get OpenBMC to provide a useful value, then that may be sufficient, as I would expect your code would be able to determine what to do for any "Integrated Dell Remote Access Controller" instance you find??
Note that there is also the "Vendor" property which may help your selection logic - especially if it is supported on the ODM units (and returns something other than "AMI" in all cases).
And that's certainly not helpful or the intent of the property. We want you to be able to determine which credentials to use on a "discovered" Redfish service. So the combination of 'Vendor', `Product`, and the recently-added `ServiceIdentification` property should tell you #1 what category/product am I talking to, and #2 which instance (in the likely case where there are multiple, otherwise identical devices) you've found.
That information can then be used to match up pre-shared credentials, via whatever process exists from the vendor to deliver those credentials.
But if those properties don't provide enough differentiation, that process breaks down...