From 0a1390428fd6f5651669f4306f6105d33a24453c Mon Sep 17 00:00:00 2001 From: Ayushi Smriti Date: Mon, 10 May 2021 13:03:37 +0530 Subject: [PATCH] EventService: Log events for subscription actions Log redfish event for below 3 actions - Add new subscription - Update existing subscription properties - Delete existing subscription in order to notify the subscribed clients on the subscription related information. Modified method name accordingly to indicate the clear purpose and added updateSubscription method with subscription id param to log event for subscription update. Tested: - Performed all the above actions and verified the redfish event messages are logged. Change-Id: I528293e55b1f3401bc2bb09c11c63ae985fbfedb Signed-off-by: AppaRao Puli Signed-off-by: Ayushi Smriti --- .../include/event_service_manager.hpp | 35 ++++++++++++++++--- redfish-core/lib/event_service.hpp | 2 +- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp index 9952ef1..2b957ea 100644 --- a/redfish-core/include/event_service_manager.hpp +++ b/redfish-core/include/event_service_manager.hpp @@ -22,6 +22,7 @@ #include "registries/task_event_message_registry.hpp" #include +#include #include #include @@ -800,7 +801,7 @@ class EventServiceManager return; } - void updateSubscriptionData() + void persistSubscriptionData() { // Persist the config and subscription data. nlohmann::json jsonData; @@ -897,7 +898,7 @@ class EventServiceManager if (updateConfig) { - updateSubscriptionData(); + persistSubscriptionData(); } if (updateRetryCfg) @@ -992,7 +993,7 @@ class EventServiceManager if (updateFile) { - updateSubscriptionData(); + persistSubscriptionData(); } #ifndef BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES @@ -1007,6 +1008,13 @@ class EventServiceManager // Set Subscription ID for back trace subValue->setSubscriptionId(id); + + /* Log event for subscription addition */ + sd_journal_send("MESSAGE=Event subscription added(Id: %s)", id.c_str(), + "PRIORITY=%i", LOG_INFO, "REDFISH_MESSAGE_ID=%s", + "OpenBMC.0.1.EventSubscriptionAdded", + "REDFISH_MESSAGE_ARGS=%s", id.c_str(), NULL); + return id; } @@ -1027,7 +1035,14 @@ class EventServiceManager { subscriptionsMap.erase(obj); updateNoOfSubscribersCount(); - updateSubscriptionData(); + + persistSubscriptionData(); + /* Log event for subscription delete. */ + sd_journal_send("MESSAGE=Event subscription removed.(Id = %s)", + id.c_str(), "PRIORITY=%i", LOG_INFO, + "REDFISH_MESSAGE_ID=%s", + "OpenBMC.0.1.EventSubscriptionRemoved", + "REDFISH_MESSAGE_ARGS=%s", id.c_str(), NULL); } } @@ -1049,6 +1064,18 @@ class EventServiceManager } } + void updateSubscription(const std::string& id) + { + persistSubscriptionData(); + + /* Log event for subscription update. */ + sd_journal_send("MESSAGE=Event subscription updated.(Id = %s)", + id.c_str(), "PRIORITY=%i", LOG_INFO, + "REDFISH_MESSAGE_ID=%s", + "OpenBMC.0.1.EventSubscriptionUpdated", + "REDFISH_MESSAGE_ARGS=%s", id.c_str(), NULL); + } + size_t getNumberOfSubscriptions() { return subscriptionsMap.size(); diff --git a/redfish-core/lib/event_service.hpp b/redfish-core/lib/event_service.hpp index 297a4ea..ed4955e 100644 --- a/redfish-core/lib/event_service.hpp +++ b/redfish-core/lib/event_service.hpp @@ -616,7 +616,7 @@ class EventDestination : public Node subValue->updateRetryPolicy(); } - EventServiceManager::getInstance().updateSubscriptionData(); + EventServiceManager::getInstance().updateSubscription(params[0]); } void doDelete(const std::shared_ptr& asyncResp, -- 2.17.1