#
4444a13c |
| 08-Dec-2023 |
Patrick Williams <patrick@stwcx.xyz> |
meson: adjust nlohmann-json dependency
- Simplify nlohmann-json dependency in meson.build. - Use consistent dependency variable names (based on Meson style). - Align wrap file name with meson wrapdb
meson: adjust nlohmann-json dependency
- Simplify nlohmann-json dependency in meson.build. - Use consistent dependency variable names (based on Meson style). - Align wrap file name with meson wrapdb choice for the project.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I2e893fd8c300b36a16d704f2002bb966a6e52ce4
show more ...
|
#
359b7664 |
| 12-Jul-2023 |
Patrick Williams <patrick@stwcx.xyz> |
build: upgrade to C++23
Meson 1.1.1 and GCC-13 both support C++23 and a sufficient portion of the standard has been implemented. Upgrade the build to leverage it.
Change-Id: If193a9f16c90ba8ac423a
build: upgrade to C++23
Meson 1.1.1 and GCC-13 both support C++23 and a sufficient portion of the standard has been implemented. Upgrade the build to leverage it.
Change-Id: If193a9f16c90ba8ac423aec7e5660bea524ce891 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
#
97c20e2e |
| 12-Apr-2023 |
Patrick Williams <patrick@stwcx.xyz> |
meson: remove deprecated get_pkgconfig_variable
Since meson 0.56, the `get_pkgconfig_variable` has been deprecated. In meson 0.58 the `get_variable` was enhanced to no longer require the `pkgconfig
meson: remove deprecated get_pkgconfig_variable
Since meson 0.56, the `get_pkgconfig_variable` has been deprecated. In meson 0.58 the `get_variable` was enhanced to no longer require the `pkgconfig` keyword argument. Ensure meson 0.58 is required and update the usage of all `get_pkgconfig_variable` and `get_variable` to be the modern variant.
Change-Id: Ibd32733f23eed0d329756e97a65b12f2631f9a61 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
#
62c08e9b |
| 16-Sep-2022 |
Krzysztof Grobelny <krzysztof.grobelny@intel.com> |
Redesigned error handling
Current error handling send only error code, which is not enough to display detailed information. New error handling in additional to error code send property name. This al
Redesigned error handling
Current error handling send only error code, which is not enough to display detailed information. New error handling in additional to error code send property name. This allows to send meaningful messages back to used about errors.
Tested: - Old redfish code properly handles errors (reads only error_code) - Redfish version which read property name from error displays more detailed error information
Change-Id: I54caa20881ac3f3e38cb295a3aa95ddab491303f Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
show more ...
|
#
1b03c8d6 |
| 13-Oct-2022 |
Szymon Dompke <szymon.dompke@intel.com> |
Update meson and subprojects
Few changes related to meson: - GTest and boost were updated. - Boost is now built locally in case it is not installed on system. - Minor meson.build refactor.
Testing
Update meson and subprojects
Few changes related to meson: - GTest and boost were updated. - Boost is now built locally in case it is not installed on system. - Minor meson.build refactor.
Testing done: - local build is working fine, when subprojects are not installed on the system, - local build is working fine, when subprojects are installed on the system, - yocto build is working fine.
Signed-off-by: Szymon Dompke <szymon.dompke@intel.com> Change-Id: Ib62092946d6ffafb1884d1ba3eab97bed243dd12
show more ...
|
#
458a37d1 |
| 05-Aug-2022 |
Szymon Dompke <szymon.dompke@intel.com> |
Parameterize .service file in meson
Depending on environment, TelemetryService may require some services to be present in the system, or specific order of starting them. This may be especially neede
Parameterize .service file in meson
Depending on environment, TelemetryService may require some services to be present in the system, or specific order of starting them. This may be especially needed for some additional sensors providers, or persistency sync services.
This change is parametrizing following .service file options: - After= - Before= - Requires= - Wants=
They can be passed as array option to meson, like this: -Dservice-[option]="[....]" Example: -Dservice-wants="['some.service', 'other.service']"
Testing done: - .service file is configured properly when new 4 options are passed. - .service file remains unchanged if none of new options are passed.
Change-Id: I0982263c8981355db15527163460cc75ae197044 Signed-off-by: Szymon Dompke <szymon.dompke@intel.com>
show more ...
|
#
32305f14 |
| 05-Jul-2022 |
Szymon Dompke <szymon.dompke@intel.com> |
Add length limit for user-defined values
Previously, the only limit for most user-defined values like id or name was the one enforced by dbus, which was fairly big. In order to save space used by pe
Add length limit for user-defined values
Previously, the only limit for most user-defined values like id or name was the one enforced by dbus, which was fairly big. In order to save space used by persistent data, new meson options were added, with length limit for those fields.
This directly impacts following dbus interfaces: - TriggerManager.AddTrigger: - Id - Name - Reports - Thresholds (only name of discrete threshold) - Trigger.Name - Trigger.Reports - Trigger.Thresholds (only name of discrete threshold) - ReportManager.AddReport(FutureVersion): - Id - Name - MetricParameters (metricId) - Report.Name - Report.ReadingParameters (metricId)
For Id fields we support 'prefixes', which also are limited, but those limit are separate. So if limit for prefix is set to 5 and limit for id/name is set to 5, following Ids are fine: - 12345/12345 - 12345 and following are not: - 123456/1234 - 1/123456
Testing done: - UTs are passing. - new limits are reflected when calling mentioned dbus interfaces.
Signed-off-by: Szymon Dompke <szymon.dompke@intel.com> Change-Id: I29291a1cc56a344d92fb65491c9186fdb90a8529
show more ...
|
#
1cdd7e4f |
| 08-Jun-2022 |
Szymon Dompke <szymon.dompke@intel.com> |
Use proper dbus path when possible.
Following methods and properties were updated to use full dbus path, instead of internal telemetry id: - TriggerManager.AddTrigger() - 'reportIds' arg - Trigger.R
Use proper dbus path when possible.
Following methods and properties were updated to use full dbus path, instead of internal telemetry id: - TriggerManager.AddTrigger() - 'reportIds' arg - Trigger.ReportIds - renamed to 'Reports' - Report.TriggerIds - renamed to 'Triggers'
Testing done: - UTs were updated and are passing.
Signed-off-by: Szymon Dompke <szymon.dompke@intel.com> Change-Id: I78d812d38289fac575d25b48503cc8b9c6f736fe
show more ...
|
#
f8ae65ca |
| 21-Mar-2022 |
Patrick Williams <patrick@stwcx.xyz> |
meson: simplify dependencies
Leverage wrapfile `[provide]` directives to simplify the dependency searching in the meson.build.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I5bbde5
meson: simplify dependencies
Leverage wrapfile `[provide]` directives to simplify the dependency searching in the meson.build.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I5bbde5732df9604b6ea45eaae519bdf64c27ee3c
show more ...
|
#
493e62eb |
| 14-Feb-2022 |
Krzysztof Grobelny <krzysztof.grobelny@intel.com> |
made MetricValues persistent
MetricValues are persistent for reportUpdates AppendStopsWhenFull and reportingType different than OnRequest.
Tested: - New unit tests are passing - Confirmed MetricVal
made MetricValues persistent
MetricValues are persistent for reportUpdates AppendStopsWhenFull and reportingType different than OnRequest.
Tested: - New unit tests are passing - Confirmed MetricValues are preserved after restarting telemetry service
Change-Id: I7e1990fb391da9debb0d7df2f1dbda86473350cc Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
show more ...
|
#
f7ea2997 |
| 27-Jan-2022 |
Krzysztof Grobelny <krzysztof.grobelny@intel.com> |
added support for onChange report
Report is now notified when metric changes and updates reading values.
Tested: - Added new unit tests - OnChange report updates Readings when metric values cha
added support for onChange report
Report is now notified when metric changes and updates reading values.
Tested: - Added new unit tests - OnChange report updates Readings when metric values changes
Change-Id: I3be9ef7aa0486cb15bac627aa1de5cc632613b3b Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
show more ...
|
#
e6d48874 |
| 08-Feb-2022 |
Krzysztof Grobelny <krzysztof.grobelny@intel.com> |
Removed dependency to TriggerManager
introduces Messanger class which allows to send messages directly to subscribed targets, which allows to break dependencies between classes.
Testes: - All unit
Removed dependency to TriggerManager
introduces Messanger class which allows to send messages directly to subscribed targets, which allows to break dependencies between classes.
Testes: - All unit tests are passing - Links are correctly updated - Report is correctly updated by Trigger Action
Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com> Change-Id: I32d3aaba22f9ec07e611f53fe553bd27e1c04c6d
show more ...
|
#
cd5b0b7e |
| 20-Jan-2022 |
Ankita Vilas Gawade <ankita.gawade@intel.com> |
Add limit to Metric URIs to avoid buffer overflow
This commit Limits the Number of Metrics to 150 URIs to avoid overpopulating the Event to be Sent. This is Necessary to avoid Buffer Overflow Durin
Add limit to Metric URIs to avoid buffer overflow
This commit Limits the Number of Metrics to 150 URIs to avoid overpopulating the Event to be Sent. This is Necessary to avoid Buffer Overflow During Creation of Periodic MetricReport (RedfishEvent) via Event Service Subscription. This Buffer overflow occurs as the max size of buffer used to send Events is limited to 1024*64
This commit also removes max-reading-parameter as max-number-metrics indirectly places constraint over number of reading parameters (which makes them mutually exclusive).The parameter max-number-metrics provides a better control over size of the metrics compared to max-reading-parameter as it restricts the number of overall uris instead of number of metrics.
Additional limit for appendLimit was added to ensure we can store all metric values in persistent memory.
Tested: - Created Metric Report Defination by POST to /redfish/v1/TelemetryService/MetricReportDefinitions/ with <150, =150 and >150 Metric Uris Successfully returned error for metric uris>150. - Observed no buffer overflow for Maximum of 150 Metric Uris. - Verified buffer Overflow by Subscribing to Metric Reports using SSE. - Test case Passed [ RUN ] TestReportManager.failToAddReportWith MoreSensorParametersThanExpected [ OK ] TestReportManager.failToAddReportWith MoreSensorParametersThanExpected (10 ms) [ RUN ] TestReportManager.failToAddReportWith MoreMetricsThanExpected [ OK ] TestReportManager.failToAddReportWith MoreMetricsThanExpected (20 ms) [ RUN ] TestReportManager.failToAddReportWith AppendLimitGreaterThanMax [ OK ] TestReportManager.failToAddReportWith AppendLimitGreaterThanMax (20 ms)
Signed-off-by: Ankita Vilas Gawade <ankita.gawade@intel.com> Change-Id: I113c15c7b1054364d827f39582c7d3fbe9495d12
show more ...
|
#
b8cc78dd |
| 29-Nov-2021 |
Krzysztof Grobelny <krzysztof.grobelny@intel.com> |
Api changes in AddReportFuture version
Added support for CollectionFunction, CollectionDuration, CollectionTimeScope, ReportUpdates, AppendLimit.
New API separates Id and Name, user can decide to p
Api changes in AddReportFuture version
Added support for CollectionFunction, CollectionDuration, CollectionTimeScope, ReportUpdates, AppendLimit.
New API separates Id and Name, user can decide to pass only Name to auto generate Id or pass Id which needs to be unique.
Tested: - No functional changes to old API, everything works as before - All use cases can be replaced with new API to achieve same results - New features which require new API work as expected
Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com> Change-Id: I647efab36d90a548754f89968223e162a087481e
show more ...
|
#
937eaaf8 |
| 03-Dec-2021 |
Patrick Williams <patrick@stwcx.xyz> |
meson: fix phosphor-logging dependency
When using the phosphor-logging dependency from the subproject, the repository fails to build with a number of missing header errors:
../src/report.cpp:6:10:
meson: fix phosphor-logging dependency
When using the phosphor-logging dependency from the subproject, the repository fails to build with a number of missing header errors:
../src/report.cpp:6:10: fatal error: phosphor-logging/log.hpp: No such file or directory 6 | #include <phosphor-logging/log.hpp> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
Phosphor-logging itself now uses meson, so it can be picked up as a proper subproject dependency rather than attempting to find the header files inside the subproject repository. Switch the meson dependency invocation to fallback to the subproject appropriately.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I9d90e245169366ff1046c30c516af871b5c64eb3
show more ...
|
#
bdf8719f |
| 03-Dec-2021 |
Patrick Williams <patrick@stwcx.xyz> |
build: fix deprecated meson function
Fix the following meson warning: WARNING: Project targeting '>=0.57.0' but tried to use feature deprecated since '0.56.0': Dependency.get_pkgconfig_varia
build: fix deprecated meson function
Fix the following meson warning: WARNING: Project targeting '>=0.57.0' but tried to use feature deprecated since '0.56.0': Dependency.get_pkgconfig_variable. use Dependency.get_variable(pkgconfig : ...) instead
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ifab131f5d20a88048bcf6649ab8a1ac4bfbd81d9
show more ...
|
#
e28aa53d |
| 27-Oct-2021 |
Szymon Dompke <szymon.dompke@intel.com> |
Add Id to Trigger
Currently, Trigger is using Name as unique identifier. By adding Id, we can be compliant with redfish specification: - Id will be used as unique identifier - Name will be used as h
Add Id to Trigger
Currently, Trigger is using Name as unique identifier. By adding Id, we can be compliant with redfish specification: - Id will be used as unique identifier - Name will be used as human readable, non-unique name
AddTrigger dbus method is now requiring both id and name. Each of them can be passed as empty string and the service will fill them with correct values. If only id is an empty string, name will be used to generate its value.
Dbus object path and persistent storage filename are now be based on id, instead of name.
Added validation for AddTrigger: - correct characters in id - max id length
Added Name property for Trigger object, which can be modified from dbus.
Testing done: - Unit test added and passing - Trigger was added using dbus, without errors - Id generation is working properly - Name property is accessible and writable from dbus
Signed-off-by: Szymon Dompke <szymon.dompke@intel.com> Change-Id: Ibb553586eaf51943044c93a35bc0725e6ef67ce9
show more ...
|
#
934201f7 |
| 06-Oct-2021 |
Patrick Williams <patrick@stwcx.xyz> |
build: switch to C++20
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I16600d03a8fea15db16ca254ab6a0b3864562b6b
|
#
8069771c |
| 04-Mar-2021 |
Krzysztof Grobelny <krzysztof.grobelny@intel.com> |
added support for Collection Functions
new supported operations: min,max,sum,avg new supported time scopes: interval,startup
added unit test to verify that each collection function returns correct
added support for Collection Functions
new supported operations: min,max,sum,avg new supported time scopes: interval,startup
added unit test to verify that each collection function returns correct timestamp and value
Tested: - POST/GET on telemetry features in bmcweb, no regression detected - Using dbus API metric with collection function works as expected
Change-Id: Ib364c433915e07fd7a102f00109525362c40ab8a Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
show more ...
|
#
a74e44f6 |
| 23-Jul-2021 |
Lukasz Kazmierczak <lukasz.kazmierczak@intel.com> |
Extending meson build system to support fast compilation during development stage
Tested compilation against 3 build configurations - with lto for src and tests/src (for release sw): all: ~3 min;
Extending meson build system to support fast compilation during development stage
Tested compilation against 3 build configurations - with lto for src and tests/src (for release sw): all: ~3 min; change in cpp file: ~2 min - with lto for src and no_lto for tests/src (for release sw): all: ~2 min; change in cpp file:~ 40 sec - after using scripts/configure_fast_compilation.sh (for development only): all: ~1.75 min; change in cpp file: ~20 sec
Signed-off-by: Lukasz Kazmierczak <lukasz.kazmierczak@intel.com> Change-Id: Idf435d8455260d2d988cb7286d71401f21fd03e2
show more ...
|
#
dcc4e193 |
| 08-Mar-2021 |
Krzysztof Grobelny <krzysztof.grobelny@intel.com> |
created AddReportFutureVersion dbus method
New method will support CollectionTimeScope, CollectionDuration
In order to make not breaking interface changes bmcweb will switch to AddReportFutureVersi
created AddReportFutureVersion dbus method
New method will support CollectionTimeScope, CollectionDuration
In order to make not breaking interface changes bmcweb will switch to AddReportFutureVersion, then AddReport will be changed to match AddReportFutureVersion, then redfish will switch back to use AddReport, then AddReportFutureVersion will be removed.
Tested: - Verified that current version of bmcweb works fine with old API
Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com> Change-Id: I51a9b7fb2f4da5b8d2f688ccd5e93710352b1ac7
show more ...
|
#
4416fce6 |
| 16-Mar-2021 |
Cezary Zwolak <cezary.zwolak@intel.com> |
Read persistent triggers from storage
Read json storage file for persistent triggers. Add trigger to telemetry service. Cover code with UTs.
Tested: - Passed unit tests - Tested on QEMU * s
Read persistent triggers from storage
Read json storage file for persistent triggers. Add trigger to telemetry service. Cover code with UTs.
Tested: - Passed unit tests - Tested on QEMU * starting app without configuration * restart app with configuration stored * restart app with configuration in incorrect version * restart app with configuration malformed
Change-Id: I2cb9324abdb8323be8a7f0c932ed7f70c5bc2891 Signed-off-by: Cezary Zwolak <cezary.zwolak@intel.com> Signed-off-by: Lukasz Kazmierczak <lukasz.kazmierczak@intel.com>
show more ...
|
#
32859b63 |
| 19-May-2021 |
Karol Niczyj <karol.niczyj@intel.com> |
Add limit for report name length
Added limit for report name length, parametrized with max-report-name-length option, because we cannot remove reports with too long report name.
Tested: - Confirmed
Add limit for report name length
Added limit for report name length, parametrized with max-report-name-length option, because we cannot remove reports with too long report name.
Tested: - Confirmed that report with name length equal to 4096 cannot be generated via bmcweb (POST redfish/v1/TelemetryService/MetricReportDefinitions fails with code 500) - Confirmed that report with name length equal to 4095 can be generated and removed via bmcweb - Added unit-test that test that report with name length equal to max-report-name-length + 1 cannot be generated - Added unit-test that test that report with name length equal to max-report-name-length can be generated
Change-Id: I6868320f831079af903f3624d1beff648059e351 Signed-off-by: Karol Niczyj <karol.niczyj@intel.com>
show more ...
|
#
f763c9e3 |
| 12-Mar-2021 |
Szymon Dompke <szymon.dompke@intel.com> |
Added discrete threshold trigger support
Implemented discrete threshold logic Discrete trigger with empty threshold array is handled as 'onChange' Added unit tests coverage for discrete trigger
Sup
Added discrete threshold trigger support
Implemented discrete threshold logic Discrete trigger with empty threshold array is handled as 'onChange' Added unit tests coverage for discrete trigger
Supported scenarios: -discrete threshold with value and dwell time -discrete threshold with value, without dwell time -discrete trigger without threshold ('onChange')
Tests: -Unit tests passed
Change-Id: Id60a48f4113bd955d97e154888c00d1b6e5490af Signed-off-by: Szymon Dompke <szymon.dompke@intel.com>
show more ...
|
#
596a9945 |
| 27-Jan-2021 |
Wludzik, Jozef <jozef.wludzik@intel.com> |
Fix meson file and remove warnings from compilation
Fixed meson file by applying proper dependency. Removed boost from subprojects because boost does not support cmake and meson. User is able to bui
Fix meson file and remove warnings from compilation
Fixed meson file by applying proper dependency. Removed boost from subprojects because boost does not support cmake and meson. User is able to build boost manually or using a script boost_build_1.74.0.sh and set BOOST_ROOT variable to build files. Then reruning meson should detect boost dependency with positive result.
Removed all warnings from compilation by applying a new flag for boost - BOOST_ALLOW_DEPRECATED_HEADERS, after boost update this flag should be removed. Changed tmpnam() with temp_directory_path provided by std::filesystem.
Tested: - Built telemetry with success in cases when different components are not installed on system: nlohmann, sdbusplus, googletest, phosphor-logging. - Using BOOST_ROOT variable that points to installation location of boost allows to build telemetry wihtout boost installed on system. - Unit test passed.
Change-Id: I8d430f4c51b7bc6669c8533e1a76c4666efd4fc6 Signed-off-by: Wludzik, Jozef <jozef.wludzik@intel.com>
show more ...
|