Feed new event queue with events

This commit is contained in:
Alexander A. Klimov 2019-04-05 17:14:19 +02:00 committed by Michael Friedrich
parent 7688994601
commit 90d9cd9257

View File

@ -35,8 +35,9 @@ void ApiEvents::StaticInitialize()
void ApiEvents::CheckResultHandler(const Checkable::Ptr& checkable, const CheckResult::Ptr& cr, const MessageOrigin::Ptr& origin) void ApiEvents::CheckResultHandler(const Checkable::Ptr& checkable, const CheckResult::Ptr& cr, const MessageOrigin::Ptr& origin)
{ {
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("CheckResult"); std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("CheckResult");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::CheckResult));
if (queues.empty()) if (queues.empty() && !inboxes)
return; return;
Log(LogDebug, "ApiEvents", "Processing event type 'CheckResult'."); Log(LogDebug, "ApiEvents", "Processing event type 'CheckResult'.");
@ -58,13 +59,16 @@ void ApiEvents::CheckResultHandler(const Checkable::Ptr& checkable, const CheckR
for (const EventQueue::Ptr& queue : queues) { for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result); queue->ProcessEvent(result);
} }
inboxes.Push(std::move(result));
} }
void ApiEvents::StateChangeHandler(const Checkable::Ptr& checkable, const CheckResult::Ptr& cr, StateType type, const MessageOrigin::Ptr& origin) void ApiEvents::StateChangeHandler(const Checkable::Ptr& checkable, const CheckResult::Ptr& cr, StateType type, const MessageOrigin::Ptr& origin)
{ {
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("StateChange"); std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("StateChange");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::StateChange));
if (queues.empty()) if (queues.empty() && !inboxes)
return; return;
Log(LogDebug, "ApiEvents", "Processing event type 'StateChange'."); Log(LogDebug, "ApiEvents", "Processing event type 'StateChange'.");
@ -88,6 +92,8 @@ void ApiEvents::StateChangeHandler(const Checkable::Ptr& checkable, const CheckR
for (const EventQueue::Ptr& queue : queues) { for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result); queue->ProcessEvent(result);
} }
inboxes.Push(std::move(result));
} }
void ApiEvents::NotificationSentToAllUsersHandler(const Notification::Ptr& notification, void ApiEvents::NotificationSentToAllUsersHandler(const Notification::Ptr& notification,
@ -95,8 +101,9 @@ void ApiEvents::NotificationSentToAllUsersHandler(const Notification::Ptr& notif
const CheckResult::Ptr& cr, const String& author, const String& text, const MessageOrigin::Ptr& origin) const CheckResult::Ptr& cr, const String& author, const String& text, const MessageOrigin::Ptr& origin)
{ {
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("Notification"); std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("Notification");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::Notification));
if (queues.empty()) if (queues.empty() && !inboxes)
return; return;
Log(LogDebug, "ApiEvents", "Processing event type 'Notification'."); Log(LogDebug, "ApiEvents", "Processing event type 'Notification'.");
@ -133,13 +140,16 @@ void ApiEvents::NotificationSentToAllUsersHandler(const Notification::Ptr& notif
for (const EventQueue::Ptr& queue : queues) { for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result); queue->ProcessEvent(result);
} }
inboxes.Push(std::move(result));
} }
void ApiEvents::FlappingChangedHandler(const Checkable::Ptr& checkable, const MessageOrigin::Ptr& origin) void ApiEvents::FlappingChangedHandler(const Checkable::Ptr& checkable, const MessageOrigin::Ptr& origin)
{ {
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("Flapping"); std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("Flapping");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::Flapping));
if (queues.empty()) if (queues.empty() && !inboxes)
return; return;
Log(LogDebug, "ApiEvents", "Processing event type 'Flapping'."); Log(LogDebug, "ApiEvents", "Processing event type 'Flapping'.");
@ -166,6 +176,8 @@ void ApiEvents::FlappingChangedHandler(const Checkable::Ptr& checkable, const Me
for (const EventQueue::Ptr& queue : queues) { for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result); queue->ProcessEvent(result);
} }
inboxes.Push(std::move(result));
} }
void ApiEvents::AcknowledgementSetHandler(const Checkable::Ptr& checkable, void ApiEvents::AcknowledgementSetHandler(const Checkable::Ptr& checkable,
@ -173,8 +185,9 @@ void ApiEvents::AcknowledgementSetHandler(const Checkable::Ptr& checkable,
bool notify, bool persistent, double expiry, const MessageOrigin::Ptr& origin) bool notify, bool persistent, double expiry, const MessageOrigin::Ptr& origin)
{ {
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("AcknowledgementSet"); std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("AcknowledgementSet");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::AcknowledgementSet));
if (queues.empty()) if (queues.empty() && !inboxes)
return; return;
Log(LogDebug, "ApiEvents", "Processing event type 'AcknowledgementSet'."); Log(LogDebug, "ApiEvents", "Processing event type 'AcknowledgementSet'.");
@ -204,13 +217,16 @@ void ApiEvents::AcknowledgementSetHandler(const Checkable::Ptr& checkable,
for (const EventQueue::Ptr& queue : queues) { for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result); queue->ProcessEvent(result);
} }
inboxes.Push(std::move(result));
} }
void ApiEvents::AcknowledgementClearedHandler(const Checkable::Ptr& checkable, const MessageOrigin::Ptr& origin) void ApiEvents::AcknowledgementClearedHandler(const Checkable::Ptr& checkable, const MessageOrigin::Ptr& origin)
{ {
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("AcknowledgementCleared"); std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("AcknowledgementCleared");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::AcknowledgementCleared));
if (queues.empty()) if (queues.empty() && !inboxes)
return; return;
Log(LogDebug, "ApiEvents", "Processing event type 'AcknowledgementCleared'."); Log(LogDebug, "ApiEvents", "Processing event type 'AcknowledgementCleared'.");
@ -235,13 +251,16 @@ void ApiEvents::AcknowledgementClearedHandler(const Checkable::Ptr& checkable, c
} }
result->Set("acknowledgement_type", AcknowledgementNone); result->Set("acknowledgement_type", AcknowledgementNone);
inboxes.Push(std::move(result));
} }
void ApiEvents::CommentAddedHandler(const Comment::Ptr& comment) void ApiEvents::CommentAddedHandler(const Comment::Ptr& comment)
{ {
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("CommentAdded"); std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("CommentAdded");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::CommentAdded));
if (queues.empty()) if (queues.empty() && !inboxes)
return; return;
Log(LogDebug, "ApiEvents", "Processing event type 'CommentAdded'."); Log(LogDebug, "ApiEvents", "Processing event type 'CommentAdded'.");
@ -255,13 +274,16 @@ void ApiEvents::CommentAddedHandler(const Comment::Ptr& comment)
for (const EventQueue::Ptr& queue : queues) { for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result); queue->ProcessEvent(result);
} }
inboxes.Push(std::move(result));
} }
void ApiEvents::CommentRemovedHandler(const Comment::Ptr& comment) void ApiEvents::CommentRemovedHandler(const Comment::Ptr& comment)
{ {
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("CommentRemoved"); std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("CommentRemoved");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::CommentRemoved));
if (queues.empty()) if (queues.empty() && !inboxes)
return; return;
Log(LogDebug, "ApiEvents", "Processing event type 'CommentRemoved'."); Log(LogDebug, "ApiEvents", "Processing event type 'CommentRemoved'.");
@ -275,13 +297,16 @@ void ApiEvents::CommentRemovedHandler(const Comment::Ptr& comment)
for (const EventQueue::Ptr& queue : queues) { for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result); queue->ProcessEvent(result);
} }
inboxes.Push(std::move(result));
} }
void ApiEvents::DowntimeAddedHandler(const Downtime::Ptr& downtime) void ApiEvents::DowntimeAddedHandler(const Downtime::Ptr& downtime)
{ {
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("DowntimeAdded"); std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("DowntimeAdded");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::DowntimeAdded));
if (queues.empty()) if (queues.empty() && !inboxes)
return; return;
Log(LogDebug, "ApiEvents", "Processing event type 'DowntimeAdded'."); Log(LogDebug, "ApiEvents", "Processing event type 'DowntimeAdded'.");
@ -295,13 +320,16 @@ void ApiEvents::DowntimeAddedHandler(const Downtime::Ptr& downtime)
for (const EventQueue::Ptr& queue : queues) { for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result); queue->ProcessEvent(result);
} }
inboxes.Push(std::move(result));
} }
void ApiEvents::DowntimeRemovedHandler(const Downtime::Ptr& downtime) void ApiEvents::DowntimeRemovedHandler(const Downtime::Ptr& downtime)
{ {
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("DowntimeRemoved"); std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("DowntimeRemoved");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::DowntimeRemoved));
if (queues.empty()) if (queues.empty() && !inboxes)
return; return;
Log(LogDebug, "ApiEvents", "Processing event type 'DowntimeRemoved'."); Log(LogDebug, "ApiEvents", "Processing event type 'DowntimeRemoved'.");
@ -315,13 +343,16 @@ void ApiEvents::DowntimeRemovedHandler(const Downtime::Ptr& downtime)
for (const EventQueue::Ptr& queue : queues) { for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result); queue->ProcessEvent(result);
} }
inboxes.Push(std::move(result));
} }
void ApiEvents::DowntimeStartedHandler(const Downtime::Ptr& downtime) void ApiEvents::DowntimeStartedHandler(const Downtime::Ptr& downtime)
{ {
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("DowntimeStarted"); std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("DowntimeStarted");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::DowntimeStarted));
if (queues.empty()) if (queues.empty() && !inboxes)
return; return;
Log(LogDebug, "ApiEvents", "Processing event type 'DowntimeStarted'."); Log(LogDebug, "ApiEvents", "Processing event type 'DowntimeStarted'.");
@ -335,13 +366,16 @@ void ApiEvents::DowntimeStartedHandler(const Downtime::Ptr& downtime)
for (const EventQueue::Ptr& queue : queues) { for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result); queue->ProcessEvent(result);
} }
inboxes.Push(std::move(result));
} }
void ApiEvents::DowntimeTriggeredHandler(const Downtime::Ptr& downtime) void ApiEvents::DowntimeTriggeredHandler(const Downtime::Ptr& downtime)
{ {
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("DowntimeTriggered"); std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("DowntimeTriggered");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::DowntimeTriggered));
if (queues.empty()) if (queues.empty() && !inboxes)
return; return;
Log(LogDebug, "ApiEvents", "Processing event type 'DowntimeTriggered'."); Log(LogDebug, "ApiEvents", "Processing event type 'DowntimeTriggered'.");
@ -355,4 +389,6 @@ void ApiEvents::DowntimeTriggeredHandler(const Downtime::Ptr& downtime)
for (const EventQueue::Ptr& queue : queues) { for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result); queue->ProcessEvent(result);
} }
inboxes.Push(std::move(result));
} }