| description: > |
| Implement to provide DBus service lookup features. |
| |
| Any OpenBMC implementation must provide exactly one implementation of |
| xyz.openbmc_project.ObjectMapper on /xyz/openbmc_project/ObjectMapper. |
| |
| methods: |
| - name: GetObject |
| description: > |
| Obtain a dictionary of service -> implemented interface(s) for the |
| given path. |
| parameters: |
| - name: path |
| type: string |
| description: > |
| The object path for which the result should be fetched. |
| - name: interfaces |
| type: array[string] |
| description: > |
| An array of result set constraining interfaces. |
| returns: |
| - name: services |
| type: dict[string,array[string]] |
| description: > |
| A dictionary of service -> implemented interface(s). |
| errors: |
| - xyz.openbmc_project.Common.Error.ResourceNotFound |
| - name: GetAncestors |
| description: > |
| Obtain a dictionary of ancestor -> services where ancestor is an |
| ancestor of path and services is of the type returned by the GetObject |
| method. |
| parameters: |
| - name: path |
| type: string |
| description: > |
| The path for which the result should be fetched. |
| - name: interfaces |
| type: array[string] |
| description: > |
| An array of result set constraining interfaces. |
| returns: |
| - name: ancestors |
| type: dict[string,dict[string,array[string]]] |
| description: > |
| A dictionary of ancestor -> services. |
| errors: |
| - xyz.openbmc_project.Common.Error.ResourceNotFound |
| - name: GetSubTree |
| description: > |
| Obtain a dictionary of path -> services where path is in sutbtree and |
| services is of the type returned by the GetObject method. |
| parameters: |
| - name: subtree |
| type: string |
| description: > |
| The subtree path for which the result should be fetched. |
| - name: depth |
| type: int32 |
| description: > |
| The maximum subtree depth for which results should be fetched. |
| For unconstrained fetches use a depth of zero. |
| - name: interfaces |
| type: array[string] |
| description: > |
| An array of result set constraining interfaces. |
| returns: |
| - name: objects |
| type: dict[string,dict[string,array[string]]] |
| description: > |
| A dictionary of path -> services. |
| errors: |
| - xyz.openbmc_project.Common.Error.ResourceNotFound |
| - name: GetSubTreePaths |
| description: > |
| Obtain an array of paths where array elements are in subtree. |
| parameters: |
| - name: subtree |
| type: string |
| description: > |
| The subtree path for which the result should be fetched. |
| - name: depth |
| type: int32 |
| description: > |
| The maximum subtree depth for which results should be fetched. |
| For unconstrained fetches use a depth of zero. |
| - name: interfaces |
| type: array[string] |
| description: > |
| An array of result set constraining interfaces. |
| returns: |
| - name: paths |
| type: array[string] |
| description: > |
| An array of paths. |
| errors: |
| - xyz.openbmc_project.Common.Error.ResourceNotFound |
| - name: GetAssociatedSubTree |
| description: > |
| Same as GetSubTree, but only return the dbus paths that are an |
| association endpoint on associatedPath |
| parameters: |
| - name: associatedPath |
| type: object_path |
| description: > |
| The path where the associated endpoint is fetched from. |
| - name: subtree |
| type: object_path |
| description: > |
| The subtree path for which the result should be fetched. |
| - name: depth |
| type: int32 |
| description: > |
| The maximum subtree depth for which results should be fetched. |
| For unconstrained fetches use a depth of zero. |
| - name: interfaces |
| type: array[string] |
| description: > |
| An array of result set constraining interfaces. |
| returns: |
| - name: objects |
| type: dict[string,dict[string,array[string]]] |
| description: > |
| A dictionary of path -> services. |
| errors: |
| - xyz.openbmc_project.Common.Error.ResourceNotFound |
| - name: GetAssociatedSubTreePaths |
| description: > |
| Same as GetSubTreePaths, but only return the dbus paths that are an |
| association endpoint on associatedPath |
| parameters: |
| - name: associatedPath |
| type: string |
| description: > |
| The path where the associated endpoint is fetched from. |
| - name: subtree |
| type: string |
| description: > |
| The subtree path for which the result should be fetched. |
| - name: depth |
| type: int32 |
| description: > |
| The maximum subtree depth for which results should be fetched. |
| For unconstrained fetches use a depth of zero. |
| - name: interfaces |
| type: array[string] |
| description: > |
| An array of result set constraining interfaces. |
| returns: |
| - name: paths |
| type: array[string] |
| description: > |
| An array of paths. |
| errors: |
| - xyz.openbmc_project.Common.Error.ResourceNotFound |
| - name: GetAssociatedSubTreeById |
| description: > |
| Retrieves a dictionary of D-Bus paths -> services of associated |
| endpoints with the provided identifier, filtering based on their |
| association with specified endpoint interfaces. |
| |
| Implementation steps: |
| |
| 1. Retrieve the subtree D-Bus paths that implement the |
| "subtreeInterfaces" and have the path endpoint "id". |
| 2. Create an association path by concatenating the subtree path with |
| "/" and "association" |
| associationPath = subtreePath + "/" + "association" |
| 3. Call getAssociatedSubTree to get the endpoint path -> services of |
| the associationPath that implements the "endpointInterfaces". |
| parameters: |
| - name: id |
| type: string |
| description: > |
| The leaf name of the dbus path, uniquely identifying a specific |
| component or entity within the system. For example, in the path |
| `/xyz/openbmc_project/inventory/system/{ChassisId}/motherboard/{FanId}`, |
| the identifiers would be {FanId}. |
| - name: objectPath |
| type: string |
| description: > |
| The object path for which the result should be fetched. |
| - name: subtreeInterfaces |
| type: array[string] |
| description: > |
| An array of interfaces used to retrieve dbus paths with the |
| specified identifier. |
| - name: association |
| type: string |
| description: > |
| The endpoint association. |
| - name: endpointInterfaces |
| type: array[string] |
| description: > |
| An array of interfaces used to filter associated endpoint paths. |
| returns: |
| - name: objects |
| type: dict[string,dict[string,array[string]]] |
| description: > |
| A dictionary of path -> services. |
| errors: |
| - xyz.openbmc_project.Common.Error.ResourceNotFound |
| - name: GetAssociatedSubTreePathsById |
| description: > |
| Retrieves the D-Bus paths of associated endpoints with the provided |
| identifier, filtering based on their association with specified |
| endpoint interfaces. |
| |
| Implementation steps: |
| |
| 1. Retrieve the subtree D-Bus paths that implement the |
| "subtreeInterfaces" and have the path endpoint "id". |
| 2. Create an association path by concatenating the subtree path with |
| "/" and "association" |
| associationPath = subtreePath + "/" + "association" |
| 3. Call getAssociatedSubTreePaths to get the endpoint paths of the |
| associationPath that implements the "endpointInterfaces". |
| parameters: |
| - name: id |
| type: string |
| description: > |
| The leaf name of the dbus path, uniquely identifying a specific |
| component or entity within the system. For example, in the path |
| `/xyz/openbmc_project/inventory/system/{ChassisId}/motherboard/{FanId}`, |
| the identifiers would be {FanId}. |
| - name: objectPath |
| type: string |
| description: > |
| The object path for which the result should be fetched. |
| - name: subtreeInterfaces |
| type: array[string] |
| description: > |
| An array of interfaces used to retrieve dbus paths with the |
| specified identifier. |
| - name: association |
| type: string |
| description: > |
| The endpoint association. |
| - name: endpointInterfaces |
| type: array[string] |
| description: > |
| An array of interfaces used to filter associated endpoint paths. |
| returns: |
| - name: paths |
| type: array[string] |
| description: > |
| An array of paths. |
| errors: |
| - xyz.openbmc_project.Common.Error.ResourceNotFound |
| |
| service_names: |
| - default: xyz.openbmc_project.ObjectMapper |
| |
| paths: |
| - instance: /xyz/openbmc_project/object_mapper |