From 867481de7c59c8770b35927d7db15f73564ac4a5 Mon Sep 17 00:00:00 2001 From: "Alexander A. Klimov" Date: Wed, 4 Mar 2020 11:21:33 +0100 Subject: [PATCH] Connect IcingaDB::StateChangeHandler to Checkable::OnAcknowledgementSet instead of calling it in IcingaDB#SendEvent() --- lib/icingadb/icingadb-objects.cpp | 3 +++ lib/icingadb/icingadb.cpp | 17 ----------------- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/lib/icingadb/icingadb-objects.cpp b/lib/icingadb/icingadb-objects.cpp index abd8610b0..32cf7edc3 100644 --- a/lib/icingadb/icingadb-objects.cpp +++ b/lib/icingadb/icingadb-objects.cpp @@ -68,6 +68,9 @@ void IcingaDB::ConfigStaticInitialize() AcknowledgementClearedHandler(checkable, removedBy, changeTime); }); + Checkable::OnAcknowledgementSet.connect([](const Checkable::Ptr& checkable, const String& author, const String& comment, AcknowledgementType type, bool, bool persistent, double changeTime, double expiry, const MessageOrigin::Ptr&) { + IcingaDB::StateChangeHandler(checkable); + }); /* triggered when acknowledged host/service goes back to ok and when the acknowledgement gets deleted */ Checkable::OnAcknowledgementCleared.connect([](const Checkable::Ptr& checkable, const String&, double, const MessageOrigin::Ptr&) { IcingaDB::StateChangeHandler(checkable); diff --git a/lib/icingadb/icingadb.cpp b/lib/icingadb/icingadb.cpp index 069eda601..bae78cbc7 100644 --- a/lib/icingadb/icingadb.cpp +++ b/lib/icingadb/icingadb.cpp @@ -203,23 +203,6 @@ void IcingaDB::SendEvent(const Dictionary::Ptr& event) checkable = Host::GetByName(event->Get("host")); event->Set("host_id", GetObjectIdentifier(checkable)); } - - if (type == "AcknowledgementSet") { - Timestamp entry = 0; - Comment::Ptr AckComment; - - for (const Comment::Ptr& c : checkable->GetComments()) { - if (c->GetEntryType() == CommentAcknowledgement) { - if (c->GetEntryTime() > entry) { - entry = c->GetEntryTime(); - AckComment = c; - StateChangeHandler(checkable); - } - } - } - - event->Set("comment_id", GetObjectIdentifier(AckComment)); - } } }