Open StackKorora opened 2 years ago
There's an optimization done by Tacklebox to construct URIs based off the found members so it doesn't need to get each member for searching the collection. The URIs presented by the service are non-conformant and violate the spec (as of version 1.6.0). This needs to be corrected by the vendor.
Hrm. That stinks. One, it's Intel... one would hope they'd have the spec right. And two, the Redfish version is 1.7.0. :-/ I suppose then this is just a "can't fix" issue? If so, feel free to close it. Thanks!
There might be a new option we can add to the tools. We've added a "workaround" flag on some the scripts that sets a variable in the module; we might be able to add something like "don't assume URIs" when traversing collections.
Thanks. I am still learning about Redfish. Can you help point me to where this is a non-conformant spec? I'm looking here: https://redfish.dmtf.org/schemas/DSP0266_1.7.0.html
I see that 6.1 defines the URI but what I don't see is the specification for a hierarchy of where things are supposed to be. Maybe under 9.4.7. Structured properties ?
I'm looking to see how these are breaking the spec so I can send an informed bug report to Intel. Thanks!
Also, do you know if there are plans to update your URI validator? https://github.com/DMTF/Redfish-URI-Validator
The spec language (in version 1.7.0) of the spec is found in "9.12.4. Resource URI Patterns annotation". The only legal pattern we have for Chassis resources is "/redfish/v1/Chassis/{ChassisId}", so the system you're using has an extra URI segment in all but the first member.
The URI validation portion has actually been integrated in the Redfish-Service-Validator (which also does all of the payload checking). The URI validator should still work as-is as far as I know though, so you should be able to see errors flagged when using it against that service.
Thanks for the information. Still wrapping my head around it all. :sweat_smile: Having some issues with the Validator throwing errors in Python after using the setup.py install, but I can poke at it later when I get time.
Not sure if this is a bad spec or what, but Intel has a sub-folder for Baseboard. A nicer error handling would be nice here at least but perhaps recognizing the Intel Baseboard is under RackMount would be better.
/redfish/v1/Chassis/ has this:
This is with new Intel systems. https://www.intel.com/content/www/us/en/products/sku/214845/intel-server-system-m50cyp1ur204/specifications.html
Thanks!