|
Post by okashany on Jul 19, 2023 9:14:50 GMT
Hi,
I'm unsure about the usage of the Targets field in UpdateService/SimpleUpdate. The field contains "an array of strings that are URIs to resources that indicate where to apply the image".
I have a few questions to better understand it: 1. Why is it an array? Is it intended to facilitate the simultaneous transfer of the same image to different locations? 2. Where can a user find the allowable URIs for the Targets field? I've noticed the UpdateService/FirmwareInventory but it doesn't seem suitable for our system, as we deal with packages containing multiple images. 3. Does each URI need to be relayed to a local path?
Any suggestions or insights would be appreciated.
Thank you,
Okashany
|
|
|
Post by mraineri on Jul 19, 2023 12:46:44 GMT
The parameter is an array because you might want to apply the image to multiple targets, or constrain it to an exact target. One example would be you have a power supply firmware image and you might want to apply it to the power supplies represented at /redfish/v1/Chassis/1/PowerSubsystem/PowerSupplies/1 and /redfish/v1/Chassis/1/PowerSubsystem/PowerSupplies/2, but not change /redfish/v1/Chassis/1/PowerSubsystem/PowerSupplies/3 or /redfish/v1/Chassis/1/PowerSubsystem/PowerSupplies/4.
We have not gone so far as to show clients the allowable list. This can be quite a large list, so using "Targets@Redfish.AllowableValues" may not be very helpful here since an aggregator may support thousands of different targets for the systems they're managing.
The URIs could be any resource in the model, such as PowerSupply resources, Manager resources, ComputerSystem resources, and SoftwareInventory resources. I would expect them to all be relative URIs starting with "/redfish/v1/".
|
|
|
Post by okashany on Jul 19, 2023 13:36:49 GMT
Thanks for the quick reply. If I understand correctly, users can input any existing URI in the model, but not all of them can be updated.
How do I make the connection between a URI and a local path? Taking your example, the update procedures for /redfish/v1/../PowerSupplies/1 and /redfish/v1/../PowerSupplies/2 are triggered when files are copied to /tmp/powerSupply1 or /tmp/powerSupply2 respectively. However, there are no options (nor paths) to update /redfish/v1/../PowerSupplies/3 and /redfish/v1/../PowerSupplies/4.
My objective is to copy the file to the relevant local path, if applicable. Could you please guide me how to achieve this? What should happen when a user provides a URI without update ability, like /redfish/v1/../PowerSupplies/3 and /redfish/v1/../PowerSupplies/4?
Your assistance in clarifying this matter is greatly appreciated.
Thanks, Okashany
|
|
|
Post by mraineri on Jul 19, 2023 15:50:49 GMT
How you map that internally is entirely up to you. To a Redfish user, they know nothing about internal directories of the service, or if the service will even save the file to a local path. That sort of detail is going to vary greatly between different implementations based on their architecture, and is not within the scope of Redfish to define.
If a user provides a URI that you do not support for the update operation, then I would expect the request to be rejected with a 400 Bad Request response.
|
|