Revision Date Author Comments
# 2fa32228 12-Mar-2024 Lakshmi Yadlapati <lakshmiy@us.ibm.com>

mapper: Add GetAssociatedSubTreeById and GetAssociatedSubTreePathsById

These methods are similar to the existing GetSubTree and GetSubTreePaths
methods, but they retrieve the paths of the associated

mapper: Add GetAssociatedSubTreeById and GetAssociatedSubTreePathsById

These methods are similar to the existing GetSubTree and GetSubTreePaths
methods, but they retrieve the paths of the associated endpoints
corresponding to the provided identifier. Here, the "Id" refers to the
leaf name of the D-Bus path, which uniquely identifies a specific
component or entity within the system. For example, in the path
/xyz/openbmc_project/inventory/system/ChassisId/motherboard/FanId, the
identifiers could be ChassisId and FanId, where each Id uniquely
identifies a chassis or a fan.

These methods use two arrays of interfaces: one to filter paths with the
specified identifier and another to filter the endpoint paths of the
identifier.

These methods simplify the process by combining subtree retrieval and
association lookup into a single call, reducing the number of D-Bus
calls needed.

ex:
'''
busctl call -j "xyz.openbmc_project.ObjectMapper" "/xyz/openbmc_project/object_mapper" \
"xyz.openbmc_project.ObjectMapper" "GetAssociatedSubTreePathsById" ssiassas "chassis" \
"/xyz/openbmc_project/inventory" 0 1 "xyz.openbmc_project.Inventory.Item.Chassis" "powered_by" \
1 "xyz.openbmc_project.Inventory.Item.PowerSupply"
{
"type" : "as",
"data" : [
[
"/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0",
"/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1",
"/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply2",
"/xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply3"
]
]
}
'''

Change-Id: I7f23ad585a46064aaccb0a3c789ca4a69c923291
Signed-off-by: Lakshmi Yadlapati <lakshmiy@us.ibm.com>

show more ...


# 037a43e5 15-Jan-2024 Patrick Williams <patrick@stwcx.xyz>

ObjectMapper: Add default paths

The ObjectMapper service is expected to be at a specific location per
the description. Document this with code constants as well.

Signed-off-by: Patrick Williams <p

ObjectMapper: Add default paths

The ObjectMapper service is expected to be at a specific location per
the description. Document this with code constants as well.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I6623d56ae5cfd01a55ffe628bd68c5fcfd3da1dc

show more ...


# 6f96e056 15-Jan-2024 Patrick Williams <patrick@stwcx.xyz>

ObjectMapper: match interfaces with reality

The documented ObjectMapper interfaces do not match the reference
implementation in phosphor-objmgr. Lots of code currently uses
hand-written dbus calls

ObjectMapper: match interfaces with reality

The documented ObjectMapper interfaces do not match the reference
implementation in phosphor-objmgr. Lots of code currently uses
hand-written dbus calls to the ObjectMapper, using the real interfaces
and not the documented ones. Refactoring all of these implementations
is quite a bit of effort, which could be staged at a later time (or
leverage a versioned interface). Update the interface to match reality
so that generated bindings could be leveraged.

Tested:

Ran the reference implementation and compared the signatures with the
YAML and updated as necessary.
```
$ busctl --user introspect xyz.openbmc_project.ObjectMapper /xyz/openbmc_project/object_mapper xyz.openbmc_project.ObjectMapper
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
.GetAncestors method sas a{sa{sas}} -
.GetAssociatedSubTree method ooias a{sa{sas}} -
.GetAssociatedSubTreePaths method ooias as -
.GetObject method sas a{sas} -
.GetSubTree method sias a{sa{sas}} -
.GetSubTreePaths method sias as -
```

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: If6fc6a403d602d6c18c6e30dc1a216a47d059860

show more ...


# a1347418 06-Dec-2022 Patrick Williams <patrick@stwcx.xyz>

reformat with latest settings

Reformat with the latest settings from openbmc-build-scripts (and
copy latest config files where appropriate). Fix a few minor
markdownlint issues.

Signed-off-by: Pat

reformat with latest settings

Reformat with the latest settings from openbmc-build-scripts (and
copy latest config files where appropriate). Fix a few minor
markdownlint issues.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I55205817c29dc3f182a165ddf9cd5d4e07b90063

show more ...


# b78a0704 24-Oct-2022 Patrick Williams <patrick@stwcx.xyz>

treewide: use more specific object_path type

The sdbus++ tool allows the YAML to specify either "path" or
"object_path". Switch to "object_path" everywhere for consistency
and clarity.

Signed-off-

treewide: use more specific object_path type

The sdbus++ tool allows the YAML to specify either "path" or
"object_path". Switch to "object_path" everywhere for consistency
and clarity.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I60c51b2ece5fc4cb23d05ce5151301db3dcddf3a

show more ...


# 8e56f4cd 11-Oct-2022 Willy Tu <wltu@google.com>

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

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

show more ...


# 8da396ca 14-Mar-2022 Patrick Williams <patrick@stwcx.xyz>

yaml: format with prettier

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I193f690f3612fe72ec69030f81f4d5096a761601


# b1b4d261 05-Jun-2021 William A. Kennington III <wak@google.com>

treewide: Create yaml directory

This allows the propagated yamldir paramter to work correctly in
subproject style builds. We don't want other files in the project
conflicting with tools that scan th

treewide: Create yaml directory

This allows the propagated yamldir paramter to work correctly in
subproject style builds. We don't want other files in the project
conflicting with tools that scan the yamldir.

Change-Id: Ie2759c7f3baf399392cdda0e507055ceb262d2e1
Signed-off-by: William A. Kennington III <wak@google.com>

show more ...