commit | 0b6ca10033b4656661778742b48d06d7c2d7c990 | [log] [tgz] |
---|---|---|
author | Deepak Kodihalli <dkodihal@in.ibm.com> | Wed Aug 09 04:39:43 2017 -0500 |
committer | Deepak Kodihalli <dkodihal@in.ibm.com> | Wed Aug 23 22:35:31 2017 -0500 |
tree | 6729ab22aa666186bb48c7e2f2e98defd9b7c6ad | |
parent | b28990f35e1b9d932a1df83b1606f411ba70c637 [diff] |
pimgen: ignore sdbusplus::object_path pimgen.py processes all d-bus interfaces defined by phosphor-dbus-interfaces, not just the ones under the Inventory/ namespace, because the inventory objects can implement any d-bus interface. The interface xyz.openbmc_project.Association has a property of type sdbusplus::object_path (a wrapper around std::string), which Cereal can't understand (and asserts at compile time). As a temporary solution, ignore this property type. It's safe to do that because xyz.openbmc_project.Association is un-implemented interface. Resolves openbmc/openbmc#957. Change-Id: I85dcd7a5d0885b29718c60b5062c8b5c7770a1ec Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
Phosphor Inventory Manager (PIM) is an implementation of the xyz.openbmc_project.Inventory.Manager DBus interface, and supporting tools. PIM uses a combination of build-time YAML files and run-time calls to the Notify method of the Manager interface to provide a generalized inventory state management solution.
PIM includes a YAML parser (pimgen.py). For PIM to do anything useful, a set of YAML files must be provided externally that tell it what to do. Examples can be found in the examples directory.
The following top level YAML tags are supported:
events
Supported event tags are:
Subsequent tags are defined by the event type.
match
Supported match tags are:
startup
Supported startup tags are:
filters
Supported filter tags are:
Subsequent tags are defined by the filter type.
The available filters provided by PIM are:
propertyChangedTo
The property under test is obtained from an sdbus message generated from an org.freedesktop.DBus.Properties.PropertiesChanged signal payload.
Supported arguments for the propertyChangedTo filter are:
propertyIs
The property under test is obtained by invoking org.freedesktop.Properties.Get on the specified interface.
Supported arguments for the propertyIs filter are:
The service argument is optional. If provided that service will be called explicitly. If omitted, the service will be obtained with an xyz.openbmc_project.ObjectMapper lookup.
propertyIs can be used in an action condition context when the action operates on a dbus object path.
actions
Supported action tags are:
Subsequent tags are defined by the action type.
The available actions provided by PIM are:
destroyObject
Supported arguments for the destroyObject action are:
Conditions are tested and logically ANDed. If the conditions do not pass, the object is not destroyed. Any condition that accepts a path parameter is supported.
setProperty
Supported arguments for the setProperty action are:
Conditions are tested and logically ANDed. If the conditions do not pass, the property is not set. Any condition that accepts a path parameter is supported.
createObjects
Supported arguments for the createObjects action are:
After running pimgen.py, build PIM using the following steps:
./bootstrap.sh ./configure ${CONFIGURE_FLAGS} make
To clean the repository run:
./bootstrap.sh clean