Telemetry: Add ReportingUpdate property to Report and ReportManager interfaces
- Currently, the Telemetry service only supports `ReportUpdates =
Overwrite`.
- Right now, there is a requirement: need to support `ReportUpdate =
AppendWrapsWhenFull` which allows for more than 1 metric report.
Therefore, we need to add the `ReportingUpdate` property to the
Report and ReportManager interfaces to obtain the currently
supported update types.
- Also, add AppendLimit property to Report and ReportManager
interfaces.
- At the same time, we also need to update the `telemetry` and
`bmcweb` repositories.
Ref:
https://redfish.dmtf.org/schemas/v1/MetricReportDefinition.v1_4_0.json
Tested:
- Successful build and verified changes in server.hpp and server.cpp.
Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: Id59f60d64c37900962d6d62421530a3917e8e349
diff --git a/xyz/openbmc_project/Telemetry/Report.interface.yaml b/xyz/openbmc_project/Telemetry/Report.interface.yaml
index e26d1e0..54ceb8c 100644
--- a/xyz/openbmc_project/Telemetry/Report.interface.yaml
+++ b/xyz/openbmc_project/Telemetry/Report.interface.yaml
@@ -50,6 +50,12 @@
- name: ReportingType
type: enum[self.ReportingType]
description: Defines how readings are updated.
+ - name: ReportUpdates
+ type: enum[self.ReportUpdates]
+ description: Defines how Readings array is filled.
+ - name: AppendLimit
+ type: size
+ description: Defines a limit of readings per sensor.
- name: Interval
type: uint64
description: >
@@ -82,3 +88,19 @@
- name: Periodic
description: >
After period of time defined by ScanPeriod property.
+ - name: ReportUpdates
+ description: >
+ The type that defines how Readings are updated.
+ values:
+ - name: Overwrite
+ description: >
+ Last sensor reading is written to Readings overwriting the previous
+ value.
+ - name: AppendWrapsWhenFull
+ description: >
+ Append sensor reading to Readings up to limit specify in AppendLimit
+ then start from the beginning.
+ - name: AppendStopsWhenFull
+ description: >
+ Append sensor reading to Readings up to limit specify in AppendLimit
+ then stop till report update.
diff --git a/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml b/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml
index 29482d1..16f0efb 100644
--- a/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml
+++ b/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml
@@ -18,6 +18,12 @@
- name: reportingType
type: enum[xyz.openbmc_project.Telemetry.Report.ReportingType]
description: Defines report type
+ - name: reportUpdates
+ type: enum[xyz.openbmc_project.Telemetry.Report.ReportUpdates]
+ description: Defines report update type
+ - name: appendLimit
+ type: size
+ description: Defines a limit of readings per sensor
- name: emitsReadingsUpdate
type: boolean
description: >