|
Post by jyundt on Jan 31, 2023 18:05:21 GMT
Should the current Interop Validator successfully test for ReadWrite properties? I have a server that is "PASS-ing" for a property (AssetTag) that should be ReadWrite but is Read(Only) and reporting as such:  { "SchemaDefinition": "RedfishInteroperabilityProfile.v1_6_0", "ProfileName": "assettag", "Resources": { "Chassis": { "ReadRequirement": "Mandatory", "PropertyRequirements": { "AssetTag": { "ReadRequirement": "Mandatory", "WriteRequirement": "Mandatory" } } } } }
[/code]
|
|
|
Post by jautor on Jan 31, 2023 22:29:31 GMT
We don't have the tool perform any "destructive" operations, so there is no direct validation of writeable properties.
That said, it has been suggested that the tool could at least check the ALLOW header to ensure that "PATCH" is supported for the resource, which will certainly catch some cases of failure. With the new @redfish.WriteableProperties annotation, we'll be able to check this as well (but that will take time to get into implementations).
It's worth a discussion about adding capabilities to the tool that would allow it (as an option) to test that support. Maybe we can add "AllowableValues" to be specified in the profile itself to help specify a set of values you could use during testing? There's going to be limits, however, as changing things like the IP address configuration would be problematic...
Jeff
(PS - I hope that implementation at least allows setting of the Asset Tag through other means, otherwise they've really misunderstood the purpose of that feature!)
|
|
|
Post by jyundt on Feb 1, 2023 15:01:35 GMT
Ah got it, thanks for the clarification.
Checking the ALLOW headers makes sense to me.
Just to clarify, were you thinking of adding this "AllowedValues" to the Interop Profile spec and then having the validator set/un-set them during a validation run? If so, that would also work for me.
For some more context, we recently discovered that one of our vendors-who-shall-remain-nameless documents their Chassis AssetTag property as ReadWrite. We assumed that their documentation was correct but only discovered that it wasn't / their Redfish implementation didn't allow modification of this property when we actually tried setting it. Because of that, I'm trying to harden our Interop Profiles to avoid faux ReadWrite properties like this in the future.
In general, I don't think I have a strong preference on a specific implementation, just as long as there is some way to test this.
|
|
|
Post by jautor on Feb 1, 2023 16:08:26 GMT
Just to clarify, were you thinking of adding this "AllowedValues" to the Interop Profile spec and then having the validator set/un-set them during a validation run? If so, that would also work for me. Yes, that's what I was thinking. Annotate the profile document to give values (need two values to ensure you can change to something different) that you could PATCH and then, yes, PATCH back so it's left in a good state. And then make that part of the testing optional (default off) in the tool... Jeff
|
|