26dc0bcb | 16-Jun-2022 |
Patrick Williams <patrick@stwcx.xyz> |
remove std::experimental usage
All of the std::experimental usages in this repository have a well supported counterpart in std as of C++17. Switch to use them.
Signed-off-by: Patrick Williams <pat
remove std::experimental usage
All of the std::experimental usages in this repository have a well supported counterpart in std as of C++17. Switch to use them.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I4cdf5cd27053ce85c7f70c215ee9456f96f79f42
show more ...
|
98d6462a | 24-May-2022 |
Lei YU <yulei.sh@bytedance.com> |
propertywatch: Add ignore_start_callback config
Add an optional `ignore_start_callback` config to indicate if the callback shall be ignored on start.
By default the callbacks in property watch are
propertywatch: Add ignore_start_callback config
Add an optional `ignore_start_callback` config to indicate if the callback shall be ignored on start.
By default the callbacks in property watch are called on start. There are cases where we do not want such behavior and only expect callbacks on property changes.
Add the `ignore_start_callback` so that we could config a watch to not trigger the start callback.
Tested: Verify the callback is not called if the watch config has `ignore_start_callback: true`
Signed-off-by: Lei YU <yulei.sh@bytedance.com> Change-Id: I7e5887cc8b0d0775d9b3d689f1511250667aaa5b
show more ...
|
efe0158c | 09-Sep-2019 |
Matthew Barth <msbarth@us.ibm.com> |
Create Filters class to store filter functions
Enhanced the generated code to now store the filter functions within an array contained in a struct similar to other configured parameters. This allows
Create Filters class to store filter functions
Enhanced the generated code to now store the filter functions within an array contained in a struct similar to other configured parameters. This allows the generated property watches to use an index within that array to access a pointer to a Filters class containing a given set of filter functions. The set of filter functions would then be applied against all the properties being watched.
Tested: Generated code provides structure needed to access filter functions Filter functions filter property values that fail the filter(s)
Change-Id: I8f1f882704de521f2ab393530ad7ef096314975d Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
show more ...
|
ae786ef6 | 04-Sep-2019 |
Matthew Barth <msbarth@us.ibm.com> |
Add filters option to property watch class
Each property changed signal calls a defined callback, an optional set of filters can be defined to filter out property values not intended to be used with
Add filters option to property watch class
Each property changed signal calls a defined callback, an optional set of filters can be defined to filter out property values not intended to be used within the callback. These filters can be setup to eliminate property value(s) that should be ignored per property group and its configured callback.
ex.) Handle errant sensor values that could occur from a faulty device so these values do not cause unwanted results from a callback function.
Example config entry to throw out an ambient temperature less than 0C or greater than 100C:
- name: watch ambient temps description: > 'Filter the ambient temps, discarding any value that does not pass, then trigger the callback logic.' class: watch watch: property paths: ambient sensors properties: ambient temp callback: median temps filters: - op: '>=' bound: 0 - op: '<=' bound: 100000
Tested: Generate a single filter function against a group of properties Generate multiple filter functions against a group of properties Property values are cleared when it fails to pass a filter Property values that pass all filters are updated
Change-Id: Id5126263096b4787a40befdb14cf3514038df3ed Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
show more ...
|
efdd03c2 | 04-Sep-2019 |
Matthew Barth <msbarth@us.ibm.com> |
Add median* condition
The median condition determines the median value from a configured group of properties and checks that against a defined condition to determine whether or not the callback is c
Add median* condition
The median condition determines the median value from a configured group of properties and checks that against a defined condition to determine whether or not the callback is called.
*Note: When 2 properties are used with the median condition, the property determined to be the max is used instead of the average of the 2 properties. This is for providing a "worst case" median value.
An example would be to create a group consisting of multiple ambient sensors where the median value from these ambient sensors would be used to shutdown the system if above a given temperature.
i.e.)
- name: median temps description: > 'If this condition passes the median ambient temperature is too high(>= 45C). Shut the system down.' class: condition condition: median paths: ambient sensors properties: ambient temp callback: ambient log and shutdown op: '>=' bound: 45000 oneshot: true
Tested: A defined median condition is generated according to the MedianCondition class The MedianCondition class produces a single median value from a group of property values Median value used against the given operation to determine if callback is called or not
Change-Id: Icd53e1a6e30a263b7706a935f040eea97dcc2414 Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
show more ...
|
223c4093 | 19-Oct-2018 |
William A. Kennington III <wak@google.com> |
sdevent: Remove in favor of sdeventplus
This change removes the one off sd-event wrapper from the project and uses the openbmc wide sdeventplus library.
Change-Id: I8e042f875d06082e15606c7191a80739
sdevent: Remove in favor of sdeventplus
This change removes the one off sd-event wrapper from the project and uses the openbmc wide sdeventplus library.
Change-Id: I8e042f875d06082e15606c7191a8073974f93990 Signed-off-by: William A. Kennington III <wak@google.com>
show more ...
|
80c70610 | 12-Apr-2018 |
Marri Devender Rao <devenrao@in.ibm.com> |
Modify parser and add mako scripts for watch on object path
Added support for watch and callback on 'interface added' signal for the specified object paths.
Added mako scripts for events to auto cr
Modify parser and add mako scripts for watch on object path
Added support for watch and callback on 'interface added' signal for the specified object paths.
Added mako scripts for events to auto create callback and watch objects for the specified object path groups.
Clients specify object paths to watch and callbacks to invoke in the config.yaml file
Change-Id: I3fa2ea1520649120b927c0cb83a16e5cace2f24e Signed-off-by: Marri Devender Rao <devenrao@in.ibm.com>
show more ...
|
3c5318d8 | 19-Feb-2018 |
Matt Spinler <spinler@us.ibm.com> |
Add ElogWithMetaDataCapture class
This callback class will create an error log with exactly 1 metadata field, which takes a string. This metadata field will be filled in with the property paths, na
Add ElogWithMetaDataCapture class
This callback class will create an error log with exactly 1 metadata field, which takes a string. This metadata field will be filled in with the property paths, names, and values of the properties that passed the condition checks that caused the callback to be called in the first place.
Tested: Ran with YAML rules that used this callback and checked that everything worked as specified.
Change-Id: Ib37206c63385939c583a09e7ba979d6e016691f6 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
abe43ab4 | 19-Feb-2018 |
Matt Spinler <spinler@us.ibm.com> |
Extend storage array to contain additional data
This array was originally just an array of objects of type 'any'. This commit changes it to be an array of tuples of type <any, any> to add an extra
Extend storage array to contain additional data
This array was originally just an array of objects of type 'any'. This commit changes it to be an array of tuples of type <any, any> to add an extra field for use by anything that needs it.
For example, the storage is currently used to store property values, and a future change to the CountCondition class will now also store the result of the comparisons done between the property values and another value specified in the rule YAML. Then, a callback will be able to see the result of whether each property passed the check.
Tested: Build and run unit tests
Change-Id: I58f32c9f4068b15a02b1ff7f28871161cafebddb Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
c458deea | 19-Feb-2018 |
Matt Spinler <spinler@us.ibm.com> |
Add oneshot support to count conditions
When a count condition is a oneshot, it will only trigger the callback the first time the condition is true. The condition needs to evaluate to false at leas
Add oneshot support to count conditions
When a count condition is a oneshot, it will only trigger the callback the first time the condition is true. The condition needs to evaluate to false at least once to rearm the callback.
A use case for this would be when a group of properties is being watched for a subset of them hit a certain value. Even though every properties changed signal for every property in the group would check the condition, only the first time the condition is true would the callback be issued.
This behavior is specified with a 'oneshot: true' entry in the YAML. If not present, it defaults to false which is the original behavior.
Tested: Verify this does indeed do what is advertised by modifying condition rules to consistently pass and checking behavior.
Change-Id: Ie185621e86c605234bf329a5f38317267dbb6fb6 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
show more ...
|
90bfaea4 | 06-Oct-2017 |
Ratan Gupta <ratagupt@in.ibm.com> |
Initial support for event callbacks
Add parser support for template rendering of events. Also defines the EventBase and Event classes. EventBase is parent of Event.
Change-Id: I6b07b415acf510a84375
Initial support for event callbacks
Add parser support for template rendering of events. Also defines the EventBase and Event classes. EventBase is parent of Event.
Change-Id: I6b07b415acf510a8437529095bd489c0af73ddf5 Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com>
show more ...
|
1d6ca484 | 01-Nov-2017 |
Matt Spinler <spinler@us.ibm.com> |
Add resolve callout rule support to YAML parser
The callout to resolve is specified in the YAML.
Change-Id: If613fae1959c6a54279b2a50c7d858f3e7d831b9 Signed-off-by: Matt Spinler <spinler@us.ibm.com> |
30474cf5 | 11-Aug-2017 |
Gunnar Mills <gmills@us.ibm.com> |
Add support for metadata
Added support for metadata in elog.hpp, elog mako file, and pdmgen. This metadata will be added with the error log.
Change-Id: Iaf0fe24d71f6bdd02b51df208b2c1d66c68319d3 Sig
Add support for metadata
Added support for metadata in elog.hpp, elog mako file, and pdmgen. This metadata will be added with the error log.
Change-Id: Iaf0fe24d71f6bdd02b51df208b2c1d66c68319d3 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
show more ...
|
d5faea31 | 08-Aug-2017 |
Gunnar Mills <gmills@us.ibm.com> |
Add support for elog callback
Added support for "callback: elog" in PDM. templates/elog.mako.cpp is used to generate the Elog call. templates/errors.mako.hpp is used to generate the errors.hpp used
Add support for elog callback
Added support for "callback: elog" in PDM. templates/elog.mako.cpp is used to generate the Elog call. templates/errors.mako.hpp is used to generate the errors.hpp used by generated.hpp to include any error.hpp files like "xyz/openbmc_project/Common/error.hpp"
Change-Id: Id0ae3aca4282095f58a8939b70e398bec706d7f5 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
show more ...
|
9679d43e | 03-Aug-2017 |
Gunnar Mills <gmills@us.ibm.com> |
Create new Elog class
Created new Elog callback, which will create an error log. This is just the base, more to come.
Change-Id: I50c12c8bff0942b5cb027e38d0cc8691e8a241b4 Signed-off-by: Gunnar Mill
Create new Elog class
Created new Elog callback, which will create an error log. This is just the base, more to come.
Change-Id: I50c12c8bff0942b5cb027e38d0cc8691e8a241b4 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
show more ...
|
1ada93be | 31-May-2017 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
Remove use of std::cref
Prefer implicit conversion for readability.
Change-Id: I64d04b926edea0531a5414a416c04b36ae3d5e2a Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> |
ec2ed2fb | 31-May-2017 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
Fix bool and string templates/rendering
Fix a number of bugs related to rendering and instantiation of string and bool templates.
Change-Id: Ic75842b4016f4d96bf5850f9c4ad778d82e075ed Signed-off-by:
Fix bool and string templates/rendering
Fix a number of bugs related to rendering and instantiation of string and bool templates.
Change-Id: Ic75842b4016f4d96bf5850f9c4ad778d82e075ed Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
3539db64 | 30-May-2017 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
Add deferrable callbacks
Deferrable callbacks delay callback invocation until a pre configured length of time has elapsed. One example scenario where deferrable callbacks help is to avoid oscillati
Add deferrable callbacks
Deferrable callbacks delay callback invocation until a pre configured length of time has elapsed. One example scenario where deferrable callbacks help is to avoid oscillation when testing a condition and making callbacks frequently.
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> Change-Id: I180c99b57ec1c9bde4da76d947a026f809341c8a
show more ...
|
aabc5461 | 30-May-2017 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
Add SDEvent delegate
Add an sd-event interface abstraction to facilitate mocking and unit test.
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> Change-Id: I5880617565fc6eab54335adc30033d4b
Add SDEvent delegate
Add an sd-event interface abstraction to facilitate mocking and unit test.
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> Change-Id: I5880617565fc6eab54335adc30033d4b132568f8
show more ...
|
0df00be0 | 25-May-2017 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
Method support
Add support for a method callback. The method callback enables arbitrary DBus method calls. A sample use case could be starting a systemd unit via the sytemd DBus API.
Change-Id: I
Method support
Add support for a method callback. The method callback enables arbitrary DBus method calls. A sample use case could be starting a systemd unit via the sytemd DBus API.
Change-Id: If25131d11497c82f862ae1f47da066c5fd8b2e2e Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
fccdc39f | 22-May-2017 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
Link watches to callbacks
Callbacks must ultimately be triggered when a property is updated by a watch. Add that support.
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> Change-Id: I20130
Link watches to callbacks
Callbacks must ultimately be triggered when a property is updated by a watch. Add that support.
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> Change-Id: I20130a11c19ddcf2c4ae45800f2068b31950bcd6
show more ...
|
4041d720 | 21-May-2017 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
Add conditional callbacks
Enable conditional application of callbacks.
Change-Id: I9d765e5f585aac40994b65da3b51ea891beae9bf Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> |
49e66175 | 23-May-2017 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
Add callback groups
Allow named collections of callbacks to be defined and used anywhere callbacks are used.
Change-Id: I3224aa06b2250e9a055bc70d20c186caecd033af Signed-off-by: Brad Bishop <bradley
Add callback groups
Allow named collections of callbacks to be defined and used anywhere callbacks are used.
Change-Id: I3224aa06b2250e9a055bc70d20c186caecd033af Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
c1283ae8 | 20-May-2017 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
Add support for callbacks
Callbacks are the response in the PDM 'trigger->response' model. Add general support for implementing callbacks and implement a log to systemd journal using that framework.
Add support for callbacks
Callbacks are the response in the PDM 'trigger->response' model. Add general support for implementing callbacks and implement a log to systemd journal using that framework.
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> Change-Id: I8bead5368ee5472a02b47e8bba9e9df3a1f346bc
show more ...
|
4b916f13 | 23-May-2017 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
Add property watches
Property watches cache DBus property values given an externally supplied index of property names and paths, in an externally supplied storage location.
Change-Id: I155081da88c3
Add property watches
Property watches cache DBus property values given an externally supplied index of property names and paths, in an externally supplied storage location.
Change-Id: I155081da88c3ab0e4f6a13b012fc9719203b1888 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|