common: fetch nested configuration
Config for a code updater is provided via dbus, the common
'FirmwareInfoDef' becomes a nested dbus interface.
For BIOS code updater, it looks like this:
```
xyz.openbmc_project.Configuration.BIOS.FirmwareInfo
```
Update the common code to query this configuration from the nested dbus
interface.
Tested: BIOS code updater can query its configuration with following
EM config json fragment:
```
{
"Name": "HostSPIFlash",
"SPIControllerIndex": 1,
"SPIDeviceIndex": 0,
"HasME": false,
"Layout": "Flat",
"Tool": "None",
"MuxOutputs": ["BMC_SPI_SEL"],
"MuxGPIOValues": [1],
"FirmwareInfo": {
"VendorIANA": "6653",
"CompatibleHardware": "com.tyan.Hardware.S8030.SPI.Host"
},
"Type": "BIOS"
},
```
Change-Id: I1d7241537b759ee74ce4a1f932b5597ac7d95e52
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
diff --git a/common/src/software_manager.cpp b/common/src/software_manager.cpp
index 351533f..b95fcab 100644
--- a/common/src/software_manager.cpp
+++ b/common/src/software_manager.cpp
@@ -86,19 +86,21 @@
std::string emConfigType{};
std::string emConfigName{};
+ const std::string ifaceFwInfoDef = interfaceFound + ".FirmwareInfo";
+
try
{
{
auto propVendorIANA =
co_await client.call<std::variant<uint64_t>>(
- ctx, "Get", interfaceFound, "VendorIANA");
+ ctx, "Get", ifaceFwInfoDef, "VendorIANA");
vendorIANA = std::get<uint64_t>(propVendorIANA);
}
{
auto propCompatible =
co_await client.call<std::variant<std::string>>(
- ctx, "Get", interfaceFound, "Compatible");
+ ctx, "Get", ifaceFwInfoDef, "CompatibleHardware");
compatible = std::get<std::string>(propCompatible);
}