]> granicus.if.org Git - icinga2/commitdiff
Add OnNewNotificationResult signal and ProcessNotificationResult handler
authorMichael Friedrich <michael.friedrich@icinga.com>
Wed, 25 Jul 2018 06:53:44 +0000 (08:53 +0200)
committerMichael Friedrich <michael.friedrich@icinga.com>
Thu, 28 Mar 2019 09:42:04 +0000 (10:42 +0100)
lib/icinga/notification.cpp
lib/icinga/notification.hpp

index 9379cf40abffc4f8961d1e31a12d76da3d45d6f6..ad33fc3192d22cc2856aa69052916d0d73338d14 100644 (file)
@@ -22,6 +22,7 @@ std::map<String, int> Notification::m_StateFilterMap;
 std::map<String, int> Notification::m_TypeFilterMap;
 
 boost::signals2::signal<void (const Notification::Ptr&, const MessageOrigin::Ptr&)> Notification::OnNextNotificationChanged;
+boost::signals2::signal<void (const Notification::Ptr&, const NotificationResult::Ptr&, const MessageOrigin::Ptr&)> Notification::OnNewNotificationResult;
 
 String NotificationNameComposer::MakeName(const String& shortName, const Object::Ptr& context) const
 {
@@ -550,6 +551,15 @@ void Notification::ExecuteNotificationHelper(NotificationType type, const User::
        }
 }
 
+void Notification::ProcessNotificationResult(const NotificationResult::Ptr& nr, const MessageOrigin::Ptr& origin)
+{
+       if (!nr)
+               return;
+
+       /* Notify cluster, API and feature events. */
+       OnNewNotificationResult(this, nr, origin);
+}
+
 int icinga::ServiceStateToFilter(ServiceState state)
 {
        switch (state) {
index 32333a55920007c531a8bab9d086346e253c24ae..e227867993f2ea8e8b1db4a0dc56de505ea807d9 100644 (file)
@@ -10,6 +10,7 @@
 #include "icinga/usergroup.hpp"
 #include "icinga/timeperiod.hpp"
 #include "icinga/checkresult.hpp"
+#include "icinga/notificationresult.hpp"
 #include "remote/endpoint.hpp"
 #include "remote/messageorigin.hpp"
 #include "base/array.hpp"
@@ -82,10 +83,13 @@ public:
 
        Endpoint::Ptr GetCommandEndpoint() const;
 
+       void ProcessNotificationResult(const NotificationResult::Ptr& nr, const MessageOrigin::Ptr& origin);
+
        static String NotificationTypeToString(NotificationType type);
        static String NotificationFilterToString(int filter, const std::map<String, int>& filterMap);
 
        static boost::signals2::signal<void (const Notification::Ptr&, const MessageOrigin::Ptr&)> OnNextNotificationChanged;
+       static boost::signals2::signal<void (const Notification::Ptr&, const NotificationResult::Ptr&, const MessageOrigin::Ptr&)> OnNewNotificationResult;
 
        void Validate(int types, const ValidationUtils& utils) override;