summaryrefslogtreecommitdiff
path: root/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry')
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0005-Add-DELETE-method-for-MetricReport.patch132
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0005-Add-GET-method-for-TriggerCollection.patch (renamed from meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0006-Add-GET-method-for-TriggerCollection.patch)0
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0006-Revert-Remove-LogService-from-TelemetryService.patch (renamed from meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0007-Revert-Remove-LogService-from-TelemetryService.patch)0
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0007-event-service-fix-added-Context-field-to-response.patch (renamed from meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0008-event-service-fix-added-Context-field-to-response.patch)0
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0008-Generalize-ReadingType-in-MetricDefinition.patch (renamed from meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0009-Generalize-ReadingType-in-MetricDefinition.patch)0
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0009-Add-support-for-deleting-terminated-subscriptions.patch46
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/README14
7 files changed, 53 insertions, 139 deletions
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0005-Add-DELETE-method-for-MetricReport.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0005-Add-DELETE-method-for-MetricReport.patch
deleted file mode 100644
index aabe500f5..000000000
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0005-Add-DELETE-method-for-MetricReport.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 4cf883dba6e16c56d04dbd092d30c9a13d5a5eb4 Mon Sep 17 00:00:00 2001
-From: Lukasz Kazmierczak <lukasz.kazmierczak@intel.com>
-Date: Fri, 6 Aug 2021 15:15:17 +0200
-Subject: [PATCH] Add DELETE method for MetricReport
-
-Added DELETE method for removing Reports by using MetricReports uri;
-metric_report.hpp and metric_report_definition.hpp files are sharing
-now common lambda function for DELETE operations
-
-Tested on QEMU:
-- Added Reports and requested from bmcweb to delete them via
- /redfish/v1/TelemetryService/MetricReports/<reportname> or via
- /redfish/v1/TelemetryService/MetricReportDefinitions/<reportname>
-- Added two different reports via POST, deleted first of them via
- MetricReports DELETE, checked by MetricReports GET if list of reports
- contain only second report, deleted second report via MetricReports
- DELETE and checked by MetricReports GET if list of reports is empty
-- Same as one above but using MetricReportDefinitions DELETE and GET
-
-Signed-off-by: Lukasz Kazmierczak <lukasz.kazmierczak@intel.com>
-Change-Id: I151bad363dcabd57246eb10b501abd24107b937e
----
- .../include/utils/telemetry_utils.hpp | 35 +++++++++++++++++++
- redfish-core/lib/metric_report.hpp | 4 +++
- redfish-core/lib/metric_report_definition.hpp | 34 +-----------------
- 3 files changed, 40 insertions(+), 33 deletions(-)
-
-diff --git a/redfish-core/include/utils/telemetry_utils.hpp b/redfish-core/include/utils/telemetry_utils.hpp
-index 5872350..743585f 100644
---- a/redfish-core/include/utils/telemetry_utils.hpp
-+++ b/redfish-core/include/utils/telemetry_utils.hpp
-@@ -70,5 +70,40 @@ inline std::string getDbusReportPath(const std::string& id)
- return path;
- }
-
-+inline std::function<void(const crow::Request&,
-+ const std::shared_ptr<bmcweb::AsyncResp>&,
-+ const std::string&)>
-+ getMetricReportDeleteHandler(const std::string& type)
-+{
-+ return [type](const crow::Request&,
-+ const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
-+ const std::string& id) {
-+ const std::string reportPath = getDbusReportPath(id);
-+
-+ crow::connections::systemBus->async_method_call(
-+ [asyncResp, type, id](const boost::system::error_code ec) {
-+ /*
-+ * boost::system::errc and std::errc are missing value
-+ * for EBADR error that is defined in Linux.
-+ */
-+ if (ec.value() == EBADR)
-+ {
-+ messages::resourceNotFound(asyncResp->res, type, id);
-+ return;
-+ }
-+
-+ if (ec)
-+ {
-+ BMCWEB_LOG_ERROR << "respHandler DBus error " << ec;
-+ messages::internalError(asyncResp->res);
-+ return;
-+ }
-+
-+ asyncResp->res.result(boost::beast::http::status::no_content);
-+ },
-+ service, reportPath, "xyz.openbmc_project.Object.Delete", "Delete");
-+ };
-+}
-+
- } // namespace telemetry
- } // namespace redfish
-diff --git a/redfish-core/lib/metric_report.hpp b/redfish-core/lib/metric_report.hpp
-index 63c8c19..60ce74e 100644
---- a/redfish-core/lib/metric_report.hpp
-+++ b/redfish-core/lib/metric_report.hpp
-@@ -127,5 +127,9 @@ inline void requestRoutesMetricReport(App& app)
- telemetry::service, reportPath, telemetry::reportInterface,
- "Update");
- });
-+ BMCWEB_ROUTE(app, "/redfish/v1/TelemetryService/MetricReports/<str>/")
-+ .privileges(redfish::privileges::deleteMetricReport)
-+ .methods(boost::beast::http::verb::delete_)(
-+ telemetry::getMetricReportDeleteHandler("MetricReports"));
- }
- } // namespace redfish
-diff --git a/redfish-core/lib/metric_report_definition.hpp b/redfish-core/lib/metric_report_definition.hpp
-index a0c4f1d..e0505e5 100644
---- a/redfish-core/lib/metric_report_definition.hpp
-+++ b/redfish-core/lib/metric_report_definition.hpp
-@@ -450,38 +450,6 @@ inline void requestRoutesMetricReportDefinition(App& app)
- "/redfish/v1/TelemetryService/MetricReportDefinitions/<str>/")
- .privileges(redfish::privileges::deleteMetricReportDefinitionCollection)
- .methods(boost::beast::http::verb::delete_)(
-- [](const crow::Request&,
-- const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
-- const std::string& id)
--
-- {
-- const std::string reportPath = telemetry::getDbusReportPath(id);
--
-- crow::connections::systemBus->async_method_call(
-- [asyncResp, id](const boost::system::error_code ec) {
-- /*
-- * boost::system::errc and std::errc are missing value
-- * for EBADR error that is defined in Linux.
-- */
-- if (ec.value() == EBADR)
-- {
-- messages::resourceNotFound(
-- asyncResp->res, "MetricReportDefinition", id);
-- return;
-- }
--
-- if (ec)
-- {
-- BMCWEB_LOG_ERROR << "respHandler DBus error " << ec;
-- messages::internalError(asyncResp->res);
-- return;
-- }
--
-- asyncResp->res.result(
-- boost::beast::http::status::no_content);
-- },
-- telemetry::service, reportPath,
-- "xyz.openbmc_project.Object.Delete", "Delete");
-- });
-+ telemetry::getMetricReportDeleteHandler("MetricReportDefinition"));
- }
- } // namespace redfish
---
-2.25.1
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0006-Add-GET-method-for-TriggerCollection.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0005-Add-GET-method-for-TriggerCollection.patch
index 0646aba5c..0646aba5c 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0006-Add-GET-method-for-TriggerCollection.patch
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0005-Add-GET-method-for-TriggerCollection.patch
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0007-Revert-Remove-LogService-from-TelemetryService.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0006-Revert-Remove-LogService-from-TelemetryService.patch
index 987a43b4c..987a43b4c 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0007-Revert-Remove-LogService-from-TelemetryService.patch
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0006-Revert-Remove-LogService-from-TelemetryService.patch
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0008-event-service-fix-added-Context-field-to-response.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0007-event-service-fix-added-Context-field-to-response.patch
index ffab743f6..ffab743f6 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0008-event-service-fix-added-Context-field-to-response.patch
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0007-event-service-fix-added-Context-field-to-response.patch
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0009-Generalize-ReadingType-in-MetricDefinition.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0008-Generalize-ReadingType-in-MetricDefinition.patch
index bd6e64346..bd6e64346 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0009-Generalize-ReadingType-in-MetricDefinition.patch
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0008-Generalize-ReadingType-in-MetricDefinition.patch
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0009-Add-support-for-deleting-terminated-subscriptions.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0009-Add-support-for-deleting-terminated-subscriptions.patch
new file mode 100644
index 000000000..548e3d9c6
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/0009-Add-support-for-deleting-terminated-subscriptions.patch
@@ -0,0 +1,46 @@
+From ef83a4fb14648edc6c8370363ff88fb6f060a43b Mon Sep 17 00:00:00 2001
+From: P Dheeraj Srujan Kumar <p.dheeraj.srujan.kumar@intel.com>
+Date: Mon, 20 Sep 2021 21:55:57 +0530
+Subject: [PATCH] Add support for deleting terminated subscriptions
+
+Added functionality to delete/remove event subscription(s) which are
+configured to Terminate after retries.
+
+Currently, when an Event is subscribed with Retry Policy as
+"TerminateAfterRetries", the state of the connection is set to
+"Terminated" after retrying, but the Subscription is not removed.
+This commit adds the functionality to detect terminated connection and
+remove the respective subscription.
+
+This commit adds this check for metric reports.
+
+Tested:
+ - Created a Subscription with
+ DeliveryRetryPolicy: "TerminateAfterRetries"
+ - Received Events successfully on Event listener
+ - Once the Event listener was stopped, the Subscription was
+ removed/deleted after retries.
+
+Change-Id: I3cb0af5bc24411cddcdb3d1d9de25e8e9144106c
+Signed-off-by: P Dheeraj Srujan Kumar <p.dheeraj.srujan.kumar@intel.com>
+---
+ redfish-core/include/event_service_manager.hpp | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
+index c9e2812..c2fefb3 100644
+--- a/redfish-core/include/event_service_manager.hpp
++++ b/redfish-core/include/event_service_manager.hpp
+@@ -1535,6 +1535,9 @@ class EventServiceManager
+
+ std::variant<telemetry::TimestampReadings>& readings =
+ found->second;
++
++ this->deleteTerminatedSubcriptions();
++
+ for (const auto& it :
+ EventServiceManager::getInstance().subscriptionsMap)
+ {
+--
+2.17.1
+
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/README b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/README
index 8dab07e2b..fd88e9e18 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/README
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/telemetry/README
@@ -14,17 +14,17 @@ Current revisions:
- Add support for MetricDefinition property in MetricReport
https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/44512/9
-- Add DELETE method for MetricReport
- https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/45688/5
-
- Add GET method for TriggerCollection
- file://telemetry/0006-Add-GET-method-for-TriggerCollection.patch
+ file://telemetry/0005-Add-GET-method-for-TriggerCollection.patch
- LogService field, actual implementation will be upstreamed with triggers feature
- file://telemetry/0007-Revert-Remove-LogService-from-TelemetryService.patch
+ file://telemetry/0006-Revert-Remove-LogService-from-TelemetryService.patch
- Event service fix for Context field
- file://telemetry/0008-event-service-fix-added-Context-field-to-response.patch
+ file://telemetry/0007-event-service-fix-added-Context-field-to-response.patch
- Generalize ReadingType in MetricDefinition
- file://telemetry/0009-Generalize-ReadingType-in-MetricDefinition.patch
+ file://telemetry/0008-Generalize-ReadingType-in-MetricDefinition.patch
+
+- Add support for deleting terminated subscriptions
+ file://telemetry/0009-Add-support-for-deleting-terminated-subscriptions.patch