| commit | 8e56f4cde158d64cece38e9b45f9b76e55128213 | [log] [tgz] | 
|---|---|---|
| author | Willy Tu <wltu@google.com> | Tue Oct 11 20:52:59 2022 +0000 | 
| committer | Patrick Williams <patrick@stwcx.xyz> | Mon Oct 24 17:23:35 2022 +0000 | 
| tree | 8dffe6274af63a7a9846cac8a6bbaad4f1eb7f78 | |
| parent | f3e6ff19da471f8dbdd31e17e2636819dfdfec9a [diff] | 
mapper: Add Associated subtree method definition
Create new mapper function to make subtree call and association call at
the same time. With the association definitition, we will have more
endpoints to fetch and verify that it is actually the resource that we
are looking for. We need to verify that it has the expected interface to
confirm that it is right device. In the current workflow this will take
two dbus calls to the mapper to get the assocation and the subtree.
This change aims to reduce that down to one by combination the two
operations. It will not sigificant performance increase for the daemons,
but it can help reduce the load on the dbus-broker.service.
Tested:
```
Normal Call:
busctl call   "xyz.openbmc_project.ObjectMapper" \
    "/xyz/openbmc_project/object_mapper" \
    "xyz.openbmc_project.ObjectMapper" "GetSubTreePaths" sias \
     "/xyz/openbmc_project/inventory" 0 1 \
     "xyz.openbmc_project.Inventory.Item.Storage"
as 4 "/xyz/openbmc_project/inventory/storage_0" "/xyz/openbmc_project/inventory/storage_1"
     "/xyz/openbmc_project/inventory/storage_4" "/xyz/openbmc_project/inventory/storage_3"
Associated Call: (Only 0 and 1 is associated to the chassis)
busctl call   "xyz.openbmc_project.ObjectMapper" \
    "/xyz/openbmc_project/object_mapper" \
    "xyz.openbmc_project.ObjectMapper" "GetAssociatedSubTreePaths" ssias \
    "/xyz/openbmc_project/inventory/chassis_0/storage" \
     "/xyz/openbmc_project/inventory" 0 1 "xyz.openbmc_project.Inventory.Item.Storage"
as 2 "/xyz/openbmc_project/inventory/storage_0" "/xyz/openbmc_project/inventory/storage_1"
```
Signed-off-by: Willy Tu <wltu@google.com>
Change-Id: I079adf41a5775f80b9c773e8e9e319d46be924ea
YAML descriptors of standard D-Bus interfaces. The format is described by the sdbusplus binding generation tool sdbus++.
Before defining a new D-Bus interface or modifying an existing one, please read through the documented set of the common requirements and expectations.
This project can be built with meson. The typical meson workflow is: meson builddir && ninja -C builddir.
The meson files used to handle the YAML files are automatically generated and found under the gen subdirectory. When adding or removing YAML files, this must be regenerated. This can be done with the helper script found in the gen subdirectory: cd gen && ./regenerate-meson.
Only the xyz/openbmc_project and org/freedesktop interfaces are built by default. Other interfaces can be enabled by meson options:
-Ddata_com_ibm=true-Ddata_org_open_power=trueExample: meson builddir -Ddata_com_ibm=true && ninja -C builddir