dfddd648 | 16-Aug-2024 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: re-format for clang-18
clang-format-18 isn't compatible with the clang-format-17 output, so we need to reformat the code with the latest version. The way clang-18 handles lambda forma
clang-format: re-format for clang-18
clang-format-18 isn't compatible with the clang-format-17 output, so we need to reformat the code with the latest version. The way clang-18 handles lambda formatting also changed, so we have made changes to the organization default style format to better handle lambda formatting.
See I5e08687e696dd240402a2780158664b7113def0e for updated style. See Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.
Change-Id: Ica590f8613f1fb89ab1ca676ac51c1cc7e38d67f Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
5e15c3ba | 20-Oct-2023 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: copy latest and re-format
clang-format-17 has some backwards incompatible changes that require additional settings for best compatibility and re-running the formatter. Copy the latest
clang-format: copy latest and re-format
clang-format-17 has some backwards incompatible changes that require additional settings for best compatibility and re-running the formatter. Copy the latest .clang-format from the docs repository and reformat the repository.
Change-Id: I3e9e6350864ac267819a4b8d670bef7d3746976e Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
fbf4703f | 17-Jul-2023 |
Patrick Williams <patrick@stwcx.xyz> |
use std::format instead of fmt::format
The std::format is sufficient for the uses in this repository except for in one file (override_fan_target.cpp, since P2286 isn't supported by GCC yet). Switch
use std::format instead of fmt::format
The std::format is sufficient for the uses in this repository except for in one file (override_fan_target.cpp, since P2286 isn't supported by GCC yet). Switch to std::format whenever possible.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ib2576fb530a4d7ce238e1b0bd95b40b476ec2107
show more ...
|
61b73296 | 10-May-2023 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: copy latest and re-format
clang-format-16 has some backwards incompatible changes that require additional settings for best compatibility and re-running the formatter. Copy the latest
clang-format: copy latest and re-format
clang-format-16 has some backwards incompatible changes that require additional settings for best compatibility and re-running the formatter. Copy the latest .clang-format from the docs repository and reformat the repository.
Change-Id: I152f141a5e8343b92b5ce81d3ca16eec77b5606b Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
/openbmc/phosphor-fan-presence/.clang-format/openbmc/phosphor-fan-presence/.gitignore/openbmc/phosphor-fan-presence/OWNERS/openbmc/phosphor-fan-presence/README.md/openbmc/phosphor-fan-presence/control/actions.cpp/openbmc/phosphor-fan-presence/control/actions.hpp/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,bonnell/events.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,bonnell/fans.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,bonnell/groups.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,bonnell/zones.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,everest/events.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,everest/groups.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,everest/pcie_cards.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-1s4u/events.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-1s4u/groups.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-1s4u/pcie_cards.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-2u/events.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-2u/groups.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-2u/pcie_cards.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-4u/events.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-4u/groups.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-4u/pcie_cards.json/openbmc/phosphor-fan-presence/control/example/fans.yaml/openbmc/phosphor-fan-presence/control/fan.cpp/openbmc/phosphor-fan-presence/control/fan.hpp/openbmc/phosphor-fan-presence/control/fanctl.cpp/openbmc/phosphor-fan-presence/control/functor.hpp/openbmc/phosphor-fan-presence/control/gen-fan-zone-defs.py/openbmc/phosphor-fan-presence/control/json/actions/action.hpp/openbmc/phosphor-fan-presence/control/json/actions/default_floor.cpp/openbmc/phosphor-fan-presence/control/json/actions/get_managed_objects.cpp/openbmc/phosphor-fan-presence/control/json/actions/mapped_floor.cpp/openbmc/phosphor-fan-presence/control/json/actions/mapped_floor.hpp/openbmc/phosphor-fan-presence/control/json/actions/missing_owner_target.cpp/openbmc/phosphor-fan-presence/control/json/actions/net_target_increase.cpp/openbmc/phosphor-fan-presence/control/json/actions/pcie_card_floors.cpp/openbmc/phosphor-fan-presence/control/json/actions/pcie_card_floors.hpp/openbmc/phosphor-fan-presence/control/json/actions/set_parameter_from_group_max.cpp/openbmc/phosphor-fan-presence/control/json/actions/target_from_group_max.cpp/openbmc/phosphor-fan-presence/control/json/actions/target_from_group_max.hpp/openbmc/phosphor-fan-presence/control/json/actions/timer_based_actions.cpp/openbmc/phosphor-fan-presence/control/json/dbus_zone.cpp/openbmc/phosphor-fan-presence/control/json/dbus_zone.hpp/openbmc/phosphor-fan-presence/control/json/event.cpp/openbmc/phosphor-fan-presence/control/json/event.hpp/openbmc/phosphor-fan-presence/control/json/fan.cpp/openbmc/phosphor-fan-presence/control/json/fan.hpp/openbmc/phosphor-fan-presence/control/json/group.hpp/openbmc/phosphor-fan-presence/control/json/manager.cpp/openbmc/phosphor-fan-presence/control/json/manager.hpp/openbmc/phosphor-fan-presence/control/json/profile.cpp/openbmc/phosphor-fan-presence/control/json/profile.hpphandlers.hppinit.cppsignal.cpp/openbmc/phosphor-fan-presence/control/json/utils/flight_recorder.cpp/openbmc/phosphor-fan-presence/control/json/utils/modifier.cpp/openbmc/phosphor-fan-presence/control/json/utils/modifier.hpp/openbmc/phosphor-fan-presence/control/json/utils/pcie_card_metadata.cpp/openbmc/phosphor-fan-presence/control/json/utils/pcie_card_metadata.hpp/openbmc/phosphor-fan-presence/control/json/zone.cpp/openbmc/phosphor-fan-presence/control/json/zone.hpp/openbmc/phosphor-fan-presence/control/main.cpp/openbmc/phosphor-fan-presence/control/manager.cpp/openbmc/phosphor-fan-presence/control/manager.hpp/openbmc/phosphor-fan-presence/control/meson.build/openbmc/phosphor-fan-presence/control/preconditions.cpp/openbmc/phosphor-fan-presence/control/service_files/json/phosphor-fan-control@.service/openbmc/phosphor-fan-presence/control/service_files/yaml/phosphor-fan-control-init@.service/openbmc/phosphor-fan-presence/control/service_files/yaml/phosphor-fan-control@.service/openbmc/phosphor-fan-presence/control/templates/fan_zone_defs.mako.cpp/openbmc/phosphor-fan-presence/control/triggers.cpp/openbmc/phosphor-fan-presence/control/types.hpp/openbmc/phosphor-fan-presence/control/zone.cpp/openbmc/phosphor-fan-presence/control/zone.hpp/openbmc/phosphor-fan-presence/cooling-type/cooling_type.cpp/openbmc/phosphor-fan-presence/cooling-type/cooling_type.hpp/openbmc/phosphor-fan-presence/cooling-type/meson.build/openbmc/phosphor-fan-presence/dbus_paths.hpp/openbmc/phosphor-fan-presence/docs/control/README.md/openbmc/phosphor-fan-presence/docs/control/debug.md/openbmc/phosphor-fan-presence/docs/control/events.md/openbmc/phosphor-fan-presence/docs/control/fanctl/README.md/openbmc/phosphor-fan-presence/docs/control/fans.md/openbmc/phosphor-fan-presence/docs/control/groups.md/openbmc/phosphor-fan-presence/docs/control/zones.md/openbmc/phosphor-fan-presence/docs/monitor/README.md/openbmc/phosphor-fan-presence/docs/monitor/class.md/openbmc/phosphor-fan-presence/docs/monitor/deviation.md/openbmc/phosphor-fan-presence/docs/monitor/fan_missing_error_delay.md/openbmc/phosphor-fan-presence/docs/monitor/group.md/openbmc/phosphor-fan-presence/docs/monitor/inventory.md/openbmc/phosphor-fan-presence/docs/monitor/method.md/openbmc/phosphor-fan-presence/docs/monitor/monitor_start_delay.md/openbmc/phosphor-fan-presence/docs/monitor/nonfunc_rotor_error_delay.md/openbmc/phosphor-fan-presence/docs/monitor/num_nonfunc_rotors_before_error.md/openbmc/phosphor-fan-presence/docs/monitor/num_sensors_nonfunc_for_fan_nonfunc.md/openbmc/phosphor-fan-presence/docs/monitor/power_off_config.md/openbmc/phosphor-fan-presence/docs/monitor/sensors.md/openbmc/phosphor-fan-presence/docs/monitor/set_func_on_present.md/openbmc/phosphor-fan-presence/docs/presence/README.md/openbmc/phosphor-fan-presence/docs/presence/eeprom.md/openbmc/phosphor-fan-presence/docs/presence/methods.md/openbmc/phosphor-fan-presence/docs/presence/name.md/openbmc/phosphor-fan-presence/docs/presence/path.md/openbmc/phosphor-fan-presence/docs/presence/rpolicy.md/openbmc/phosphor-fan-presence/docs/sensor-monitor/README.md/openbmc/phosphor-fan-presence/evdevpp/evdev.hpp/openbmc/phosphor-fan-presence/json_config.hpp/openbmc/phosphor-fan-presence/meson.build/openbmc/phosphor-fan-presence/meson_options.txt/openbmc/phosphor-fan-presence/monitor/conditions.cpp/openbmc/phosphor-fan-presence/monitor/config_files/p10bmc/ibm,bonnell/config.json/openbmc/phosphor-fan-presence/monitor/config_files/p10bmc/ibm,everest/config.json/openbmc/phosphor-fan-presence/monitor/config_files/p10bmc/ibm,rainier-1s4u/config.json/openbmc/phosphor-fan-presence/monitor/config_files/p10bmc/ibm,rainier-2u/config.json/openbmc/phosphor-fan-presence/monitor/config_files/p10bmc/ibm,rainier-4u/config.json/openbmc/phosphor-fan-presence/monitor/config_files/witherspoon/config.json/openbmc/phosphor-fan-presence/monitor/example/config.json/openbmc/phosphor-fan-presence/monitor/example/monitor.yaml/openbmc/phosphor-fan-presence/monitor/fan.cpp/openbmc/phosphor-fan-presence/monitor/fan.hpp/openbmc/phosphor-fan-presence/monitor/fan_error.cpp/openbmc/phosphor-fan-presence/monitor/gen-fan-monitor-defs.py/openbmc/phosphor-fan-presence/monitor/json_parser.cpp/openbmc/phosphor-fan-presence/monitor/main.cpp/openbmc/phosphor-fan-presence/monitor/meson.build/openbmc/phosphor-fan-presence/monitor/power_off_cause.hpp/openbmc/phosphor-fan-presence/monitor/service_files/json/phosphor-fan-monitor@.service/openbmc/phosphor-fan-presence/monitor/service_files/yaml/phosphor-fan-monitor-init@.service/openbmc/phosphor-fan-presence/monitor/service_files/yaml/phosphor-fan-monitor@.service/openbmc/phosphor-fan-presence/monitor/system.cpp/openbmc/phosphor-fan-presence/monitor/system.hpp/openbmc/phosphor-fan-presence/monitor/tach_sensor.cpp/openbmc/phosphor-fan-presence/monitor/tach_sensor.hpp/openbmc/phosphor-fan-presence/monitor/test/meson.build/openbmc/phosphor-fan-presence/monitor/trust_group.hpp/openbmc/phosphor-fan-presence/monitor/types.hpp/openbmc/phosphor-fan-presence/power_state.hpp/openbmc/phosphor-fan-presence/presence/anyof.cpp/openbmc/phosphor-fan-presence/presence/anyof.hpp/openbmc/phosphor-fan-presence/presence/config_files/p10bmc/ibm,bonnell/config.json/openbmc/phosphor-fan-presence/presence/config_files/p10bmc/ibm,everest/config.json/openbmc/phosphor-fan-presence/presence/config_files/p10bmc/ibm,rainier-1s4u/config.json/openbmc/phosphor-fan-presence/presence/config_files/p10bmc/ibm,rainier-2u/config.json/openbmc/phosphor-fan-presence/presence/config_files/p10bmc/ibm,rainier-4u/config.json/openbmc/phosphor-fan-presence/presence/config_files/witherspoon/config.json/openbmc/phosphor-fan-presence/presence/eeprom_device.hpp/openbmc/phosphor-fan-presence/presence/error_reporter.cpp/openbmc/phosphor-fan-presence/presence/error_reporter.hpp/openbmc/phosphor-fan-presence/presence/example/config.json/openbmc/phosphor-fan-presence/presence/example/example.yaml/openbmc/phosphor-fan-presence/presence/fallback.cpp/openbmc/phosphor-fan-presence/presence/fallback.hpp/openbmc/phosphor-fan-presence/presence/gpio.hpp/openbmc/phosphor-fan-presence/presence/json_parser.cpp/openbmc/phosphor-fan-presence/presence/json_parser.hpp/openbmc/phosphor-fan-presence/presence/meson.build/openbmc/phosphor-fan-presence/presence/pfpgen.py/openbmc/phosphor-fan-presence/presence/psensor.hpp/openbmc/phosphor-fan-presence/presence/rpolicy.hpp/openbmc/phosphor-fan-presence/presence/service_files/json/phosphor-fan-presence-tach@.service/openbmc/phosphor-fan-presence/presence/service_files/yaml/phosphor-fan-presence-tach@.service/openbmc/phosphor-fan-presence/presence/tach.cpp/openbmc/phosphor-fan-presence/presence/tach.hpp/openbmc/phosphor-fan-presence/presence/test/fallbacktest.cpp/openbmc/phosphor-fan-presence/presence/test/meson.build/openbmc/phosphor-fan-presence/sdbusplus.hpp/openbmc/phosphor-fan-presence/sensor-monitor/alarm_timestamps.hpp/openbmc/phosphor-fan-presence/sensor-monitor/meson.build/openbmc/phosphor-fan-presence/sensor-monitor/service_files/sensor-monitor.service/openbmc/phosphor-fan-presence/sensor-monitor/shutdown_alarm_monitor.cpp/openbmc/phosphor-fan-presence/sensor-monitor/shutdown_alarm_monitor.hpp/openbmc/phosphor-fan-presence/sensor-monitor/threshold_alarm_logger.cpp/openbmc/phosphor-fan-presence/sensor-monitor/threshold_alarm_logger.hpp/openbmc/phosphor-fan-presence/subprojects/cli11.wrap/openbmc/phosphor-fan-presence/subprojects/evdev.wrap/openbmc/phosphor-fan-presence/subprojects/fmt.wrap/openbmc/phosphor-fan-presence/subprojects/nlohmann_json.wrap/openbmc/phosphor-fan-presence/subprojects/phosphor-dbus-interfaces.wrap/openbmc/phosphor-fan-presence/subprojects/phosphor-logging.wrap/openbmc/phosphor-fan-presence/subprojects/sdbusplus.wrap/openbmc/phosphor-fan-presence/subprojects/sdeventplus.wrap/openbmc/phosphor-fan-presence/test/meson.build/openbmc/phosphor-fan-presence/utility.hpp |
78a48a55 | 14-Jul-2022 |
Matt Spinler <spinler@us.ibm.com> |
control: Fix InterfacesRemoved match string
The interfaces_removed trigger was using the wrong match for the InterfacesRemoved signal. It was trying look for the object path in question to be the '
control: Fix InterfacesRemoved match string
The interfaces_removed trigger was using the wrong match for the InterfacesRemoved signal. It was trying look for the object path in question to be the 'path' field, but 'path' is just the path of the object manager sending the signal. It should be looking at argument 0 instead. This was previously fixed for InterfacesAdded but somehow missed for this one.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: If818b228472606dd204d507cfe04c7bacdc5fc03
show more ...
|
b2e9a4fc | 13-Jun-2022 |
Mike Capps <mikepcapps@gmail.com> |
meson support: remove code warnings 2
This commit contains code changes necessary to support the increased warning level from Meson builds. Most changes are for unused variables. to keep the review
meson support: remove code warnings 2
This commit contains code changes necessary to support the increased warning level from Meson builds. Most changes are for unused variables. to keep the review size manageable, this commit contains only control changes (plus one in sensor-monitor).
Change-Id: Ie20f1d9028add4b605e4cc9fb230940710365706 Signed-off-by: Mike Capps <mikepcapps@gmail.com>
show more ...
|
f16f063b | 09-May-2022 |
Matt Spinler <spinler@us.ibm.com> |
control: Be more lenient toward missing sensors
In the cases where the service name of a sensor (i.e. group member) is known ahead of time, but that service isn't actually running, the code will try
control: Be more lenient toward missing sensors
In the cases where the service name of a sensor (i.e. group member) is known ahead of time, but that service isn't actually running, the code will try to make a get property call on it anyway and crash. Fix that by catching the exception and continuing on.
Also, if the same type of service isn't running but is used in an action that runs on a timer with 'preload_groups' set in the config to have the code try to get all properties in the groups after each timer expiration, there will be an exception thrown there too. In that case, the exception is caught by the sdeventplus handler so the app doesn't crash, but it prevents the run() call from completing. Catch that exception as well in Manager::addGroups() so the actions can complete.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ifb56333508c3ceb6027e1e004d946c330dbd8634
show more ...
|
9ac325c5 | 25-Apr-2022 |
Matt Spinler <spinler@us.ibm.com> |
control: Let Manager::addObjects() take a service
When calling Manager::addObjects(), pass in the service of the object, if known, so that addObjects() can use that service to call getManagedObjects
control: Let Manager::addObjects() take a service
When calling Manager::addObjects(), pass in the service of the object, if known, so that addObjects() can use that service to call getManagedObjects() with and add objects to the cache even if the D-Bus path passed in doesn't exist.
This fixes a bug where if the path doesn't exist, that function won't add anything at all, even though getProperties() in init.cpp was depending on it doing that so that it only needed to call addObjects() once per group as a performance enhancement.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I971a244d665d3aaf493c3d03e7a4fec87e7e512d
show more ...
|
1f409875 | 07-Apr-2022 |
Matt Spinler <spinler@us.ibm.com> |
control:init trigger: Only call addObjects once
The 'init' trigger will attempt to add the D-Bus properties of all of its group members to the objects cache with the Manager::addObjects() function.
control:init trigger: Only call addObjects once
The 'init' trigger will attempt to add the D-Bus properties of all of its group members to the objects cache with the Manager::addObjects() function.
That function will call GetManagedObjects to add *all* group D-Bus paths provided by the service that has the path/interface/property passed in.
If the group had a service listed in its JSON configuration, then all members of the group come from the same service, so we know the first addObjects call would add all group members so there is no need to keep calling it on the remaining members.
This can lead to a significant performance improvement on startup when the D-Bus objects in the groups don't exist yet since it would end up calling addObjects on each member which drives at least GetSubTree mapper calls each time.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Icc27fdae922fa6f068cd72d9c2299451f768e7d6
show more ...
/openbmc/phosphor-fan-presence/MAINTAINERS/openbmc/phosphor-fan-presence/OWNERS/openbmc/phosphor-fan-presence/configure.ac/openbmc/phosphor-fan-presence/control/Makefile.am/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,everest/groups.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-1s4u/events.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-1s4u/groups.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-1s4u/pcie_cards.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-1s4u/zones.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-2u/events.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-2u/groups.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-2u/pcie_cards.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-2u/zones.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-4u/events.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-4u/groups.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-4u/pcie_cards.json/openbmc/phosphor-fan-presence/control/config_files/p10bmc/ibm,rainier-4u/zones.json/openbmc/phosphor-fan-presence/control/json/actions/action.hpp/openbmc/phosphor-fan-presence/control/json/actions/mapped_floor.cpp/openbmc/phosphor-fan-presence/control/json/actions/mapped_floor.hpp/openbmc/phosphor-fan-presence/control/json/actions/override_fan_target.cpp/openbmc/phosphor-fan-presence/control/json/actions/override_fan_target.hpp/openbmc/phosphor-fan-presence/control/json/actions/timer_based_actions.cpp/openbmc/phosphor-fan-presence/control/json/config_base.hpp/openbmc/phosphor-fan-presence/control/json/fan.cpp/openbmc/phosphor-fan-presence/control/json/fan.hpp/openbmc/phosphor-fan-presence/control/json/group.cpp/openbmc/phosphor-fan-presence/control/json/group.hpp/openbmc/phosphor-fan-presence/control/json/manager.cpp/openbmc/phosphor-fan-presence/control/json/manager.hppinit.cpp/openbmc/phosphor-fan-presence/control/json/utils/modifier.cpp/openbmc/phosphor-fan-presence/control/json/utils/modifier.hpp/openbmc/phosphor-fan-presence/control/json/utils/pcie_card_metadata.cpp/openbmc/phosphor-fan-presence/control/json/zone.cpp/openbmc/phosphor-fan-presence/control/json/zone.hpp/openbmc/phosphor-fan-presence/control/zone.cpp/openbmc/phosphor-fan-presence/monitor/fan.cpp/openbmc/phosphor-fan-presence/monitor/fan_error.cpp/openbmc/phosphor-fan-presence/power_state.hpp/openbmc/phosphor-fan-presence/sensor-monitor/Makefile.am/openbmc/phosphor-fan-presence/sensor-monitor/main.cpp/openbmc/phosphor-fan-presence/sensor-monitor/shutdown_alarm_monitor.cpp |
7b7df2af | 01-Feb-2022 |
Matthew Barth <msbarth@us.ibm.com> |
control - Ensure `nameHasOwner` set on all group members
It was found that `nameHasOwner` method calls upon fan control starting was not setting all group members' service owned states. This was due
control - Ensure `nameHasOwner` set on all group members
It was found that `nameHasOwner` method calls upon fan control starting was not setting all group members' service owned states. This was due to skipping group members if they were hosted by the same service, which actually caused a problem later when the action would be run looking at the service state for all groups members. With this fix all group members get an initial service owned state thru `nameHasOwner`.
Change-Id: Icd8e16e0a2235522aa531a629a82aa2af47c5199 Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
show more ...
|
7a656e2c | 07-Feb-2022 |
Matthew Barth <msbarth@us.ibm.com> |
control - Remove `nameOwnerChanged` signal flight recorder
Remove due to the possibility of being called more than once if more than one event uses the same group trigger as it could be confusing th
control - Remove `nameOwnerChanged` signal flight recorder
Remove due to the possibility of being called more than once if more than one event uses the same group trigger as it could be confusing that more than one signal was received when it was not. This is due to the `sd_bus_message_rewind` in Manager::handleSignal().
Change-Id: I6e6739658c67fe745e525b3da9bffd0213119c8c Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
show more ...
|
6d8e2d3e | 01-Feb-2022 |
Matthew Barth <msbarth@us.ibm.com> |
control: `nameOwnerChanged` signals update all caches
When a `nameOwnerChanged` signal is received, update all entries within the service tree cache for the given service's owner state change. Also,
control: `nameOwnerChanged` signals update all caches
When a `nameOwnerChanged` signal is received, update all entries within the service tree cache for the given service's owner state change. Also, use the service tree cache to cross reference removal of the associated interfaces from objects within the objects cache.
Change-Id: Idab52a7533d626f1f7ef03397f904a74cb6457a3 Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
show more ...
|
65f72810 | 13-Jan-2022 |
Matthew Barth <msbarth@us.ibm.com> |
control: Support group service names in name owner triggers
If a group provides a service name, which is required to be the service name for all group members and their interfaces, use that service
control: Support group service names in name owner triggers
If a group provides a service name, which is required to be the service name for all group members and their interfaces, use that service name when subscribing to nameOwnerChanged signals or calling the nameHasOwner method. This can be used so that the service name does not have to be looked up for each group member(and interface) or where the service for a group(and interface) may not be on dbus when subscribing.
Change-Id: Ic52aef519eef61103478742c7a32e1f268809d38 Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
show more ...
|
d0ba86a3 | 09-Nov-2021 |
Matt Spinler <spinler@us.ibm.com> |
control: Create parameter trigger
Create a new event trigger that will run actions when a parameter is either added, removed, or changed.
When the trigger is enabled it is added to the Manager clas
control: Create parameter trigger
Create a new event trigger that will run actions when a parameter is either added, removed, or changed.
When the trigger is enabled it is added to the Manager class since that is where parameters are stored, and then the Manager watches for parameter changes and runs actions as needed.
The JSON config would look like: { "class": "parameter", "parameter": "pcie_floor_index" }
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I8ff281d49ac780e8ff38f3e8ed02ab95395f1fd3
show more ...
|
3ea9ec2b | 19-Nov-2021 |
Patrick Williams <patrick@stwcx.xyz> |
sdbusplus: remove usage of deprecated alias
The alias `server::match` has been deprecated since 2016. Use the new alias under bus.
Change-Id: I21baf6b70401d996519b5940d0cd685535475a2f Signed-off-b
sdbusplus: remove usage of deprecated alias
The alias `server::match` has been deprecated since 2016. Use the new alias under bus.
Change-Id: I21baf6b70401d996519b5940d0cd685535475a2f Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
c3a69087 | 15-Nov-2021 |
Matthew Barth <msbarth@us.ibm.com> |
control: Correct same signal object subscription of actions
When the same signal for a signal object is subscribed to (such as across events), the actions should be included on the list of actions t
control: Correct same signal object subscription of actions
When the same signal for a signal object is subscribed to (such as across events), the actions should be included on the list of actions to be called when that specific signal is received. Previously these actions were being moved off the event's list of actions, which was not ideal. This instead copies a reference to the event's list of actions to the list of actions to be called when the particular signal is received.
Change-Id: I260f7134a67ec82f9e90a66c4cfe9189ca7d4304 Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
show more ...
|
c024d780 | 09-Nov-2021 |
Matthew Barth <msbarth@us.ibm.com> |
control: Correct subscribing/handling of signals
When subscribing to signals, a pointer to the signal packages should be used for the location to store the list of signal packages. This way the call
control: Correct subscribing/handling of signals
When subscribing to signals, a pointer to the signal packages should be used for the location to store the list of signal packages. This way the callback is bound to the pointer and not the local variable that was then getting moved.
Also, in handling signal messages, since there could be more than one signal package to check against the signal received, a rewind must be done to the signal message so that additional signal packages can read the message contents again.
Change-Id: Iddea2011d25068d6f71bdee91801537cd5994728 Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
show more ...
|
a7fcf3e0 | 03-Nov-2021 |
Matt Spinler <spinler@us.ibm.com> |
control: Have iA match use arg0Path param
InterfacesAdded signals are sent from the path the ObjectManager is implemented on, and the path that has the new interface is in the first argument of the
control: Have iA match use arg0Path param
InterfacesAdded signals are sent from the path the ObjectManager is implemented on, and the path that has the new interface is in the first argument of the signal.
For example, this dbus-monitor output: path=/org/open_power/control; interface=org.freedesktop.DBus.ObjectManager; member=InterfacesAdded object path "/org/open_power/control/occ1"
Update the match string for this signal to match on the group member using 'arg0path' (the .../occ1 entry above) instead of 'path' (the /org/open_power/control entry).
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: If22157aa863504415f771aa366bc45b0e91405d7
show more ...
|
508bc768 | 27-Oct-2021 |
Matthew Barth <msbarth@us.ibm.com> |
control: Subscribe to nameOwnerChanged once per service
When more than one member of an event group's service is the same, there's no need to subscribe to the nameOwnerChanged signal again for the s
control: Subscribe to nameOwnerChanged once per service
When more than one member of an event group's service is the same, there's no need to subscribe to the nameOwnerChanged signal again for the same service. This was causing the same actions that the first subscription already moved into the list of actions for this signal to be "moved" again which is not possible nor what should be done since those same actions were already associated to the signal.
Signed-off-by: Matthew Barth <msbarth@us.ibm.com> Change-Id: Idfc1da551cbdf8ca2e1697c02c408d3ed51bc31f
show more ...
|
d1f97f43 | 29-Oct-2021 |
Matt Spinler <spinler@us.ibm.com> |
control: Add power on/off triggers
Add two new classes of triggers: powerOn and powerOff. They are only called during the power on and power off state changes, respectively.
They behave the same a
control: Add power on/off triggers
Add two new classes of triggers: powerOn and powerOff. They are only called during the power on and power off state changes, respectively.
They behave the same as the existing init trigger.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I9d39210843192b9c343c7838c604fcce7c8d3f3d
show more ...
|
ade0c377 | 28-Oct-2021 |
Matt Spinler <spinler@us.ibm.com> |
control: Timer trigger can preload groups
The timer trigger is used to run actions when it expires. This commit adds the ability for it to preload group properties so the latest values are in the c
control: Timer trigger can preload groups
The timer trigger is used to run actions when it expires. This commit adds the ability for it to preload group properties so the latest values are in the cache before it runs the actions.
This means that there doesn't need to be propertiesChanged triggers for the groups, instead the load just reads them straight from D-Bus.
One reason to use this is so an action can be run on a slower cadence than propertiesChanged signals would be sent. An example is a virtual sensor that has component sensors spread out across multiple daemons. Even if the daemons all use the same poll rates, they can be staggered between them so virtual sensor changes could occur faster then any component sensor read interval.
The trade off is there will be D-Bus traffic every timer interval, even in the case the group property values don't change.
To enable this, use the following in the trigger JSON: "preload_groups": true
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I1a92007c10fdd8017c1a89d15983ae50134c852a
show more ...
|
93a10ab6 | 15-Oct-2021 |
Matthew Barth <msbarth@us.ibm.com> |
control: `member` signal triggers use event groups
Remove the ability to provide a `member` trigger's attributes from the event trigger configuration in favor of using the configured event's groups.
control: `member` signal triggers use event groups
Remove the ability to provide a `member` trigger's attributes from the event trigger configuration in favor of using the configured event's groups. This aligns with the recent design direction that event triggers are setup from the event groups.
Change-Id: I304cfdffedd54317e440e7566988392a1410af6a Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
show more ...
|
039f91e5 | 04-Oct-2021 |
Matthew Barth <msbarth@us.ibm.com> |
control: Use event groups on `signal` triggers
Use the provided event groups when enabling any `signal` triggers instead of the action groups. Event groups are what's used with setting up event trig
control: Use event groups on `signal` triggers
Use the provided event groups when enabling any `signal` triggers instead of the action groups. Event groups are what's used with setting up event triggers and may or may not be a different set of groups than what's used when actions are run depending on event configuration.
Change-Id: I78b6255ada52ed718469a6700b4bc2603b2a85cb Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
show more ...
|
c7f629dc | 30-Sep-2021 |
Matthew Barth <msbarth@us.ibm.com> |
control: Use event groups on `init` triggers
Use the provided event groups when enabling any `init` triggers instead of the action groups. Event groups is what's used with setting up event triggers
control: Use event groups on `init` triggers
Use the provided event groups when enabling any `init` triggers instead of the action groups. Event groups is what's used with setting up event triggers and may or may not be a different set of groups than what's used when actions are run depending on event configuration.
Change-Id: I804e798e169598080583965e6922fc5fb1cfa2be Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
show more ...
|
cd6f3798 | 30-Sep-2021 |
Matthew Barth <msbarth@us.ibm.com> |
control: Pass event groups when enabling triggers
The `init` and `signal` triggers need to use the event groups when retrieving group member values and subscribing to signals respectively. This is t
control: Pass event groups when enabling triggers
The `init` and `signal` triggers need to use the event groups when retrieving group member values and subscribing to signals respectively. This is the first step towards fixing that actions are optional on events and the design direction that `init` and `signal` triggers will use the event groups (which may or may not be the same as the groups on same event's actions) when populating/updating the cached state of all the group members.
Change-Id: Id5a1891f94572d6c843d98603eb1c8233471e23c Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
show more ...
|