Thanks Adriana for the clarification.
For host bios update, the images will be copied to BMC(/tmp/images) and will start flashing by making RequestedActivation field "xyz.openbmc_project.Software.Activation.RequestedActivations.Active". In our case, the device location will be same for all
the bios images (BMC /tmp/images).So I think the above design you proposed[id = version+volume ID] may not work effectively for multi host as the id is still going to be same for all the hosts.
We would like to propose the following approach for your review.Kindly go through the below steps and share your valuable suggestions.
1.Number of host will be identified from machine layer [OBMC_HOST_INSTANCES]
2.Code will be modified to create n number of objects based on number of hosts
Ex: Log taken in YosemiteV2 [4 host]
root@yosemitev2:~# busctl tree xyz.openbmc_project.Software.BMC.Updater
`-/xyz
`-/xyz/openbmc_project
`-/xyz/openbmc_project/software
|-/xyz/openbmc_project/software/1929c585
|-/xyz/openbmc_project/software/host1
| `-/xyz/openbmc_project/software/host1/28bd62d9
|-/xyz/openbmc_project/software/host2
| `-/xyz/openbmc_project/software/host2/28bd62d9
|-/xyz/openbmc_project/software/host3
| `-/xyz/openbmc_project/software/host3/28bd62d9
`-/xyz/openbmc_project/software/host4
`-/xyz/openbmc_project/software/host4/28bd62d9
root@yosemitev2:~# busctl tree xyz.openbmc_project.Software.Version
`-/xyz
`-/xyz/openbmc_project
`-/xyz/openbmc_project/software
|-/xyz/openbmc_project/software/host1
| `-/xyz/openbmc_project/software/host1/28bd62d9
|-/xyz/openbmc_project/software/host2
| `-/xyz/openbmc_project/software/host2/28bd62d9
|-/xyz/openbmc_project/software/host3
| `-/xyz/openbmc_project/software/host3/28bd62d9
`-/xyz/openbmc_project/software/host4
`-/xyz/openbmc_project/software/host4/28bd62d9
3.This will create activation interface for each host. For a multi-host system if the RequestedActivation is set to "xyz.openbmc_project.Software.Activation.RequestedActivations.Active", then different bios service file will be called based the host.
For single host : biosServiceFile = "obmc-flash-host-bios@" + versionId + ".service";
For multi host : biosServiceFile = "obmc-flash-host" + host + "-bios@" + versionId + ".service";
Then it can be used for multi host even if the firmware image we want to install is the same for multiple host targets.
I have created a WIP patch for the design proposed above.Kindly have a glance and share your comments.
Thanks,
Priyatharshan P