|
Post by pjonason on Aug 27, 2021 21:08:54 GMT
What parts of the Redfish schema must be implemented and which are optional, so that one could say the implementation conforms to a given release (2020.4, say)? Or is there such a concept?
My team and I write and use Redfish code to configure BMCs from a number of vendors, and would understandably like to write as little code as possible. We often find that vendors claim to conform to a release (or a specification), but don't fully implement it, meaning we have to write alternative ways of performing actions. I'm not talking about the Oem stuff here. While 2 or 3 vendors may implement something simple like (as just one of many examples I could relate)
/redfish/v1/Systems/1/MemorySummary the 4th will not. The Redfish Resource and Schema Guide will describe MemorySummary, but does not say whether it is required for Schema conformance. If I run the RedfishService Validator against the implementation, there appears to be a concept of Optional and Required resources within, but the lack of MemorySummary above (again, just one example) will not cause a Validation failure.
In short, is there a way to know what I am getting from a given vendor, or a way to say "Thou Shalt conform to Release X or Specification Y"?
|
|
|
Post by jautor on Aug 29, 2021 18:12:29 GMT
Most of the properties (and actions) defined in the Redfish Schema are 'optional'. The required properties are annotated as such in the schema files, and are typically limited to 'type' properties used to differentiate product categories that share a common schema definition. The most important goal of the schema is provide a common definition for as much of the data as possible. But since many properties will not apply to many implementations - because the underlying "feature" isn't part of the product or technology - marking those as 'required' would mean very few implementations could conform to the specification. But obviously, to be a practical implementation, and not just attempting to "meet the specification", there will be many 'optional' properties implemented. And developers on both sides of the conversation want to know what to expect. So we provide another concept called the "Redfish Interoperability Profile" that sets out a list of schema and properties to "meet the profile requirements". Organizations such as the Open Compute Project have defined profiles to describe a baseline for products that want to align with OCP's product requirements. Their profiles are available here: github.com/opencomputeproject/OCP-ProfilesI encourage organizations (especially those that produce client software that consume Redfish data) to create and publish Redfish Interoperability Profiles. And any feedback we can get on what types of profiles the DMTF should create (or at least help define) would be very helpful... Jeff
|
|
|
Post by jleung on Aug 31, 2021 20:21:32 GMT
The Open Control Project extended the OCP Baseline HW Mgmt Profile to create the OCP Server HW Mgmt Profile. The server profile has the following fragment which specifies that a conformant implementation shall implement the MemorySummary.TotalSystemMemoryGiB property within the ComputerSystem resource.
"MemorySummary": { "PropertyRequirements": { "TotalSystemMemoryGiB": {} } }
The profile includes no requirements on the resource - ./System/{id}/MemorySummary/MemoryMetrics. To prescribe additional properties or resources, you can work with the OCP Server Project community to add that the Server Profile.
John
|
|
slotain
Minnow
It's bigger than a regular hat. It's funny.
Posts: 15
|
Post by slotain on Oct 28, 2021 19:00:22 GMT
Are there any organizations that you know of that have created and published Redfish Interoperability Profiles profiles, besides those from OCP?
|
|
|
Post by mraineri on Oct 29, 2021 14:24:59 GMT
SNIA has been drafting profiles with regards to Swordfish, but I suspect this won't you with a server definition.
OpenStack Ironic does have a desire to create a profile like OCP has, but this has not been published yet (https://storyboard.openstack.org/#!/story/2007345).
To date, I'm only aware of published profiles from OCP.
|
|