100 Commits

Author SHA1 Message Date
Julian Brost
7c9d0fff01 IDO: use per-instance notification_id in history
When there are multiple active IDO instances on the same node, before this
commit, all of them would share a single DbValue object for the notification_id
column of the icinga_contactnotifications table. This resulted in the issue
that one database references the notification_id in another database.

This commit fixes this by using a separate DbValue value for each IDO instance.
This needs a new signal as the existing OnQuery and OnMultipleQueries signals
perform the same queries on all IDO instances, but different queries are needed
here per instance (they only differ in the referenced DbValue). Therefore, a
new signal OnMakeQueries is added that takes a std::function which is called
once per IDO instance and can access callbacks to perform one or multiple
queries only on this specific IDO instance.
2022-02-10 16:36:35 +01:00
Yonas Habteab
43ba2da39c Replace std/boost::bind() function with lambda expression 2021-03-10 16:29:40 +01:00
Michael Friedrich
d242b41704 Revert "Make NotificationResult available for events: Cluster and Features"
This reverts commit 566e59bbfa385ec1a023c32a1feb895791950032.
2020-01-07 14:20:59 +01:00
Alexander A. Klimov
829d07aefe Introduce Checkable#acknowledgement_last_change
refs #7689
2019-12-10 10:44:23 +01:00
Michael Friedrich
8098f4d54d Improve type logging for notifications 2019-07-16 13:46:16 +02:00
Michael Friedrich
566e59bbfa Make NotificationResult available for events: Cluster and Features 2019-03-28 11:42:28 +01:00
Michael Friedrich
d14a88235d Replace Copyright header with a short version, part I
CLion -> replace in path
2019-02-25 14:48:22 +01:00
Michael Friedrich
108b85427c Silence the debug log a bit for IDO events
They're actually not processed when the feature is paused,
and I have already seen them in user's logs when analysing why
objects are not updated or notifications sent. 'DbEvents' isn't
related to rather 'DB IDO' and is confusing.
2018-10-24 16:01:57 +02:00
Michael Friedrich
dab53448bc icinga.com: Update *.{h,c}pp 2018-10-18 09:27:04 +02:00
Gunnar Beutner
c2fb9fe226 Use initializer lists for arrays and dictionaries 2018-01-16 12:27:44 +01:00
Michael Friedrich
4da3a50711 Clean up DB IDO events code 2018-01-15 13:39:34 +01:00
Michael Friedrich
d672df3f2c DB IDO: Don't send empty columns in queries 2018-01-15 13:39:34 +01:00
Michael Friedrich
7a012c062a Move CompatUtility::GetHostStateString() logic into DB IDO and CompatLogger features 2018-01-15 13:39:34 +01:00
Michael Friedrich
915d0417c9 Move CompatUtility::GetHostCurrentState() logic into DB IDO and StatusData features 2018-01-15 13:39:34 +01:00
Michael Friedrich
87b99c17b5 Drop CompatUtility::GetCheckResultPerfdata() 2018-01-15 13:39:34 +01:00
Michael Friedrich
906c1accaa Move more compatibility mappings into DB IDO 2018-01-15 13:39:34 +01:00
Michael Friedrich
2478c4d053 Move ConvertTimestamp functionality into DB IDO
This is the only place where the timestamp is split into
sec and usec.
2018-01-15 13:39:34 +01:00
Michael Friedrich
b4af0971af Drop dead code in Livestatus feature 2018-01-15 13:39:34 +01:00
Michael Friedrich
92c565d744 Move CompatUtility::GetCheckableCheckType() into IDO/Livestatus features
It is just boolean mapping to numbers, each modules does that in a sort of different way.

DB IDO automatically transforms boolean to numbers.
Livestatus would return JSON which keeps true booleans, but requires a number (just a guess,
there is no spec for this message format).
2018-01-15 13:39:34 +01:00
Gunnar Beutner
621eed3f13 Apply clang-tidy fix 'modernize-pass-by-value' 2018-01-04 12:24:57 +01:00
Gunnar Beutner
ac155d1dda Apply clang-tidy fix 'modernize-redundant-void-arg' 2018-01-04 12:24:57 +01:00
Michael Insel
158ae2188e Change copyright header for 2018 2018-01-02 12:08:55 +01:00
Jean Flach
2636e6a77a Whitespace fix
What does this change?
* Remove use of spaces for formatting
These could be found by using `grep -r -l -P '^\t+ +[^*]'
* Removal of training whitespaces
* A few lines longer than 120 chars
2017-12-20 14:53:52 +01:00
Gunnar Beutner
42744fde5b Remove extraneous whitespace 2017-12-14 08:50:09 +01:00
Gunnar Beutner
3c60fbf75d Use std::vector::emplace_back instead of std::vector::push_back 2017-11-30 17:47:09 +01:00
Gunnar Beutner
858873b940 Replace boost::bind/boost::function with std::bind/std::function 2017-11-27 15:15:11 +01:00
Michael Friedrich
42b1e7ce79 Use the entry_time for icinga_comments updates
This follows all other queries in their where condition
using entry_time for comments/downtimes.
2017-11-07 16:37:12 +01:00
Jean Flach
e83ddbd8b2 Remove unnecessary keys from where clauses 2017-11-07 16:37:12 +01:00
Jean Flach
1632415370 Fix commenthistory
refs #5492
2017-11-07 16:37:12 +01:00
Jean Flach
30be02bcae Alter DowntimeRemoval behaviour
This adds an additional index to the downtimehistory and updates the
dbevents in a way that it uses that index
2017-11-07 16:37:12 +01:00
Jean Flach
a21ffd6fe4 Fix flapping
Re-implement flapping following the 'old way' of just observing the last
20 stage changes.

refs #4982
2017-10-24 15:54:05 +02:00
Michael Friedrich
6061d56a7c Fix unique constraint matching for UPDATE downtime/comment runtime tables in DB IDO
fixes #5623
fixes #5603
2017-09-29 16:12:38 +02:00
Jean Flach
1b54772b85 Fix where clauses for downtime/comment DB IDO queries using a non-matching legacy id before
fixes #5458 #5492
2017-09-20 12:13:14 +02:00
Michael Friedrich
3201d92fbd DB IDO: Fix host's unreachable state in history tables
fixes #5405
2017-08-07 11:10:02 +02:00
Rune Darrud
273ca6a2cc Fix persistent comments for Acknowledgements
fixes #4818

Signed-off-by: Michael Friedrich <michael.friedrich@icinga.com>
2017-05-10 17:10:22 +02:00
Michael Friedrich
06434b3e59 IDO: Fix where condition for downtime history updates
fixes #5080
2017-03-20 13:19:37 +01:00
Michael Friedrich
0dfe571669 DB IDO: Fix actual_end_time update for non-triggered flexible downtimes
refs #5033
2017-02-24 15:29:39 +01:00
Michael Friedrich
b7caf0820d Ensure that *.icinga.com is used everywhere
fixes #13897
fixes #13277
2017-01-10 17:19:12 +01:00
Gunnar Beutner
288413f046 Replace BOOST_FOREACH with range-based for loops
fixes #12538
2016-08-25 06:46:17 +02:00
Gunnar Beutner
b7a1b58069 Improve performance for type lookups
fixes #12448
2016-08-16 11:02:33 +02:00
Michael Friedrich
d84872f075 DB IDO: Really do not clear downtimes on checkable upsert
refs #12258
refs #12288
2016-08-11 17:43:39 +02:00
Michael Friedrich
41094489b6 DB IDO: Fixed downtime start does not update actual_start_time
fixes #12401
2016-08-11 12:10:27 +02:00
Michael Friedrich
00f05a8e7e DB IDO: Do not try to delete downtimes when using the session_token
Missed it after modifying the comments.

refs #12258
refs #12288
2016-08-03 16:15:22 +02:00
Michael Friedrich
cd5c9366cf DB IDO: Use upsert and session token for comment/downtime updates
refs #12258
fixes #12288
2016-08-02 14:37:16 +02:00
Michael Friedrich
409a385590 DB IDO: Ensure that delete queries for comments/downtimes are matching the index
fixes #11993
2016-06-20 17:38:01 +02:00
Michael Friedrich
0ce41399e0 DB IDO: Ensure to delete outdated comments/downtimes for host/service objects
fixes #11688
2016-06-03 14:40:37 +02:00
Michael Friedrich
ba82d2eb20 Move CalculateExecutionTime and CalculateLatency into the CheckResult class
fixes #11751
2016-05-10 12:16:49 +02:00
Michael Friedrich
23ab6cf78b Fix: Expired downtimes are not removed
fixes #11711
2016-05-02 15:32:46 +02:00
Michael Friedrich
83e0bcddce IDO: Ensure that the notification insert id is passed to contactnotification inserts
We cannot add the notification insert id directly
to the following contactnotifications queries. Instead
we need to pass a DbValue reference which gets set after
the notification insert id is calculated.
The contactnotifications insert queries are fired as query
group calling CanExecuteQuery() and FieldToEscapedString().
If the notification id does not exist yet, the queries are
moved to the end of the queue.
Once the contactnotifications queries are fired the DbValue
reference is destroyed.

This patch also removes the old notification insert id cache
which was broken in many ways.

fixes #11387
2016-03-29 15:12:24 +02:00
Michael Friedrich
98e1d70dab DB IDO: Fix that downtime is not in effect after restart
fixes #10843
2016-03-23 13:42:00 +01:00