Disregard passive check results while no active checks are being scheduled due to violated dependencies.
This copes with the fact that programs feeding passive check results into Icinga may have no notion of reachability and so drive a checkable into HARD state although dependencies have caused active check scheduling being suspended. This may prevent superflous problem notifications being emitted during recovery.
As disable_checks defaults to false, it was regarded OK (by @Al2Klimov) to make this behaviour (which resembles the active check case) unconditional and not conditionalize it on an additional attribute.
In the description of disable_checks, note that a value of true both disables scheduling of active checks and drops passive check results.
At numerous places in the code, something like this is performed:
String name = Downtime::AddDowntime(...);
Downtime::Ptr downtime = Downtime::GetByName(name);
However, `downtime` can be a `nullptr` after this as it is possible that
the downtime is deleted in between.
This commit changes the return type of `Downtime::AddDowntime` to return
a Downtime::Ptr instead of the full name of the downtime. `AddDowntime`
performs the very same `GetByName()` operation internally, but handles
the `nullptr` case correctly and throws an exception.
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
It was preventing email notifications with default settings, as `persistent` defaults to false and therefore `notify` was not set.
Signed-off-by: Michael Friedrich <michael.friedrich@icinga.com>
This patch also moves the next check updates for passive
check results into ProcessCheckResult(). That way the
next check status updates for DB IDO work in a sane way
again.
refs #11336
Only valid for active check results. The API actions were
missing that marker similar to the external command processor.
The initial OK -> NOT-OK transition should use the retry_interval
but nothing else.
fixes#11336
The RegisterCommand call for DEL_DOWNTIME_BY_HOST_NAME was missing the
max args parameter. This prevented the optional service name, start time
and comment arguments to be passed.
Signed-off-by: Michael Friedrich <michael.friedrich@netways.de>
fixes#11240
This reverts commit 2a11b27972.
This patch does not properly work and breaks the check_interval setting
for passive checks. Requires a proper patch.
refs #11248
refs #11257
refs #11273
(the old issue)
refs #7287
Otherwise the changes from #7287 already take care of setting
the proper next check time from inside ProcessCheckResult().
There is no need to use the generic OnNextCheckChanged signal
but instead we're using a new one, locally just for DB IDO.
fixes#11019
When a multi line result is submitted via the command pipe, any multi line
output is escaped to a actual string '\n', because any external command only
can be a single line.
Example:
[1432735140] PROCESS_SERVICE_CHECK_RESULT;host;service;3;Test1\nTest2|test=1
We need to unescape this values, just like we use to escape multi line output
for IDO and status.dat.
fixes#9324
Signed-off-by: Michael Friedrich <michael.friedrich@netways.de>