Commit Graph

1359 Commits

Author SHA1 Message Date
Alexander A. Klimov 5431eae116 Add and populate Downtime#authoritative_zone
refs #6542
2018-12-17 15:54:23 +01:00
Michael Friedrich ba8d79f3c5 API Event Streams: Add 'command' for Notification events
fixes #6824
2018-12-07 09:37:03 +01:00
Alexander A. Klimov 39e0d787e8 Downtime#HasValidConfigOwner(): wait for ScheduledDowntimes
refs #6542
2018-12-06 15:44:57 +01:00
Alexander A. Klimov bbcf469af1 Implement ScheduledDowntime::AllConfigIsLoaded()
refs #6542
2018-12-06 15:44:51 +01:00
Michael Friedrich 0cc559b775
Merge pull request #6820 from Icinga/bugfix/scheduled-downtime-ha-duplicates
Only create downtimes from non-paused ScheduledDowntime objects in HA enabled cluster zones
2018-12-05 11:33:29 +01:00
Michael Friedrich 26f411638f
Merge pull request #6757 from Icinga/bugfix/no-more-notifications-recovery-filtered
Fix that no_more_notifications gets reset when Recovery notifications are filtered away
2018-12-05 11:05:44 +01:00
Michael Friedrich fd9b2dece1 Only create downtimes from non-paused ScheduledDowntime objects in HA enabled cluster zones 2018-12-04 15:20:37 +01:00
Michael Friedrich d082e8c1b1 Fix that no_more_notifications gets reset when Recovery notifications are filtered away
Hello from the OSMC hackathon :)
2018-11-08 12:13:32 +01:00
David Lublink a02b7ac155 * BugFix : Wrong operator on stride variable causing incorrect behaviour ( #6749 ) 2018-11-01 18:51:42 -04:00
Michael Friedrich e480eb785e Improve error handling for invalid child_options for API downtime actions
fixes #6712
2018-10-24 11:00:24 +02:00
Michael Friedrich c5e7459fb8
Merge pull request #6667 from Icinga/feature/dependency-recursion-limit
Increase dependency recursion limit to 256
2018-10-24 10:30:46 +02:00
Michael Friedrich 09fbdb846b Increase dependency recursion limit to 256
fixes #5762
2018-10-24 08:56:29 +02:00
Jean Flach 6777255f60 Fix typo 2018-10-22 14:43:59 +02:00
Michael Friedrich acd0ad681b
Merge pull request #6704 from efuss/fix/scheduleddowntime1
Put newly configured already running ScheduledDowntime immediately in effect
2018-10-19 12:29:51 +02:00
Edgar Fuß 9c1e9f4264
Put running downtimes in effect
If Icinga2 was restarted with a newly configured downtime that should
be in effect at the time of restart, the should-be-running segment of
it was not put into effect.

Add new LegacyTimePeriod::FindRunningSegment() and
ScheduledDowntime::FindRunningSegment() functions, call the latter in
ScheduledDowntime::CreateNextDowntime() before trying the old
ScheduledDowntime::FindNextSegment().
2018-10-18 18:42:21 +02:00
Edgar Fuß f1597ca5bd
Remove spurious string in debug message
Remove a spurious " at " in the "Evaluating segment" debug message in ScheduledDowntime::FindNextSegment().
2018-10-18 18:35:14 +02:00
Edgar Fuß fa3e5c8c31
Remove dead code
Remove some dead code in ScheduledDowntime::CreateNextDowntime().
2018-10-18 18:09:20 +02:00
Michael Friedrich eabea68c56 icinga.com: Update config files (ITL, etc.) 2018-10-18 09:37:59 +02:00
Michael Friedrich dea5ec614e icinga.com: Update CMakeLists.txt 2018-10-18 09:35:18 +02:00
Michael Friedrich 44c3b83769 icinga.com: Update '*.ti' 2018-10-18 09:30:00 +02:00
Michael Friedrich dab53448bc icinga.com: Update *.{h,c}pp 2018-10-18 09:27:04 +02:00
Michael Friedrich 051b3ba9b7
Merge pull request #6503 from peteeckel/fix/reduce-loglevel-plugin-env-6460
Reduce the log level for missing env macros to debug
2018-10-08 14:09:18 +02:00
Michael Friedrich 617925374b Fix that check_timeout was used for Event/Notification commands too
We may add specific timeouts for event/notification commands
later, for now the original timeout inside the EventCommand/NotificationCommand
is used.

fixes #6304
2018-09-28 14:32:57 +02:00
Jordi van Scheijen bc1dc9c7a7 Fix issue 5022 2018-09-27 07:52:37 +02:00
Michael Friedrich af1f2e0c55 Only check for Problem types in user filers for Recovery/Acknowledgement notifications
refs #6047
2018-09-12 17:09:15 +02:00
Noah Hilverling 834e37d3e2 Still notify on acknowledgement and recovery if user does not get problem notifications at all
refs #6047
2018-09-12 14:54:45 +02:00
Noah Hilverling bfe7d46a68 Only send acknowledgement notification if user received a problem notification
refs #6047
2018-09-12 14:54:45 +02:00
Michael Friedrich 19993df380 Fix static initializer priority for namespaces in LTO builds
fixes #6575
2018-09-04 16:36:22 +02:00
Gunnar Beutner 17c7131177 Move new downtime constants into the Icinga namespace 2018-08-25 19:35:01 +02:00
Noah Hilverling 01fea22c77 Add child_options to ScheduledDowntime
refs #3935
2018-08-24 14:29:39 +02:00
Gunnar Beutner e678fa1aa5 Refactor Application::*Const() 2018-08-13 15:27:05 +02:00
Gunnar Beutner 10d6f70a85 Move constants and functions into different namespaces 2018-08-13 13:44:31 +02:00
Gunnar Beutner 1a8692d972 Implement support for namespaces 2018-08-13 13:44:31 +02:00
Gunnar Beutner d9c0b6f806 Refactor REGISTER_SCRIPTFUNCTION_* macros 2018-08-13 13:44:31 +02:00
Michael Friedrich 2ee6dfaf93 Re-add environment to IcingaApplication feature stats 2018-08-10 13:01:53 +02:00
Michael Friedrich 97513965e6 Introduce IcingaApplication#environment
Precedence as follows:

- DEnvironment=...
- const Environment = ...
- object IcingaApplication "app" { environment = "..." }

The wrapped script constant handling is required
since we cannot directly link from libremote (SNI handling)
to libicinga where the object resides. Instead we'll
use the Application class helpers for hiding the ScriptGlobal
calls.
2018-08-10 12:49:48 +02:00
Markus Frosch eb02d9041d Refactor environment for API connections
* Const renamed to `ApiEnvironment`
* Handling moved to ApiListener
* Now a property of ApiListener
2018-08-09 13:19:33 +02:00
Markus Frosch 9fbc40615a Improve path handling in cmake and daemon 2018-08-07 14:10:26 +02:00
Peter Eckel b5a7af126d Fixed indentation 2018-07-29 15:39:02 +02:00
Peter Eckel f788795415 Reduce the log level for missing env macros to debug
refs #6460
2018-07-29 15:17:50 +02:00
Michael Friedrich 3fc3d86fbb
Merge pull request #6386 from Icinga/fix/timeperiods-do-not-clear-after-restart
Fix that TimePeriod segments are not cleared on restart
2018-07-26 10:02:46 +02:00
Bas Couwenberg 0891380789 Fix spelling errors.
* occured -> occurred
 * dosen't -> doesn't
2018-07-21 10:38:09 +02:00
Michael Friedrich ab9a32d67d Fix missing next check update causing the scheduler to execute checks too often
Regression from #6217, only in git master.

fixes #6421
2018-07-02 16:17:53 +02:00
Michael Friedrich 601c54e44e Add more debug logging for check scheduling 2018-07-02 16:17:33 +02:00
Noah Hilverling ea08c85424 Fix that TimePeriod segments are not cleared on restart
refs #6282
2018-06-19 10:30:34 +02:00
Noah Hilverling 233d00d648
Merge pull request #6311 from Reamer/timeperiod_bugfix
refs #6282
2018-06-19 10:29:27 +02:00
Jean Flach 0fc5db82dd Fix ScheduledDowntimes replicating on restart
fixes #4272
2018-06-08 10:54:06 +02:00
Noah Hilverling d8b400dc17 Fix that checks with command_endpoint don't return any check results
fixes #6337
2018-05-29 13:51:34 +02:00
Philipp Dallig 8e124e2abe Do not add the old timeperiod segment, if we cut it in the middle 2018-05-16 12:04:38 +02:00
Michael Friedrich 7f579db9af
Merge pull request #6305 from gunnarbeutner/feature/environment-variable
Introduce the 'Environment' variable
2018-05-15 14:04:50 +02:00
Gunnar Beutner 9c1e00eb94 Introduce the 'Environment' variable 2018-05-15 12:02:15 +02:00
Michael Friedrich 2d87b667ab Execute event commands only on actively checked host/service objects in an HA zone
fixes #3431
2018-05-11 12:58:33 +02:00
Michael Friedrich 88d99094bf Ensure that added group members are unique
refs #4732
2018-05-09 17:26:07 +02:00
Michael Friedrich c7b6488e90
Merge pull request #6217 from Icinga/fix/reschedule-checks
Fix check behavior on restart
2018-04-17 20:59:03 +02:00
Michael Friedrich a8b5d8e64a
Merge pull request #6205 from Icinga/feature/api-verbose-errors
API: Unify verbose error messages
2018-04-17 16:40:11 +02:00
fbachmann 3f75ccbe75 fix bug in Downtime::IsInEffect() method that would always return false if the triggering window for a flexible downtime had passed 2018-04-10 20:16:09 +02:00
Jean Flach 1a9c1591c0 Fix check behavior on restart
This patch changes the way checkresults are handled during a restart.

  1. Check results coming in during a shutdown are ignored.
  2. Upon start, checks which should have ran (next_check in the past),
  are re-scheduled within the first minute.

This new behavior means there will be no more "Unknown - Terminated"
checkresults during a restart and checks with high check_interval will
be run earlier if they were already scheduled to run. The downside is
that after Icinga2 was down for a while, there will be a lot of checks
within the first minute. Our max concurrent check should take care of
this though.
2018-04-10 15:52:50 +02:00
Michael Friedrich 2c5e142172 Add ApplicationVersion built-in constant
refs #5784
2018-04-06 13:41:22 +02:00
Michael Friedrich c4a6ab0211 Add diagnostic_information as verbose error to config object handlers 2018-04-06 12:26:49 +02:00
Michael Friedrich 313b2a759e
Merge pull request #6016 from Icinga/fix/state-filters-for-custom-notifications
Check notification state filters for problems only, not for Custom, etc.
2018-03-19 15:52:37 +01:00
Jean Flach a71ab1e126 Rename macro RequireNotNull to REQUIRE_NOT_NULL 2018-02-21 13:47:46 +01:00
Noah Hilverling 948333225d Fix nullptr deref in cluster events 2018-02-21 13:47:46 +01:00
Noah Hilverling 6bebdf8a87 Add marco RequireNotNull
This is used to fix a number of possible nullptr dereferences
2018-02-21 13:47:46 +01:00
Jean Flach d578b742ac
Merge pull request #6026 from Icinga/feature/windows-flapping
Fix flapping support for Windows
2018-02-09 15:12:36 +01:00
Michael Friedrich 12471bf259 Allow to pass raw performance data in 'process-check-result' API action
This is how data is coming from Icinga Web 2 and still a valid input
type.

fixes #4786
2018-02-06 15:25:55 +01:00
Noah Hilverling 06e381ceea Add metrics about RemoteCheckQueue to Icinga check, API and logs
refs #4841
2018-01-29 16:07:35 +01:00
Noah Hilverling e28277175b Implement concurrent checks limit for remote checks
fixes #4841
2018-01-29 14:50:14 +01:00
Jean Flach cc73eed2af
Merge pull request #5992 from Icinga/feature/remove-includes
Remove unused includes
2018-01-25 09:13:02 +01:00
Gunnar Beutner 0cc9af6bee Remove duplicate semicolons 2018-01-24 12:07:52 +01:00
Gunnar Beutner 369af68ac2 Fix flapping support for Windows 2018-01-23 12:52:33 +01:00
Gunnar Beutner 94e6be1a65 Remove unused includes 2018-01-22 09:52:29 +01:00
Michael Friedrich cc3651ed56 Check notification state filters for problems only, not for Custom, etc.
refs #5952
2018-01-19 12:35:07 +01:00
Jean Flach 1da6b2c883 Fix whitespaces in CMakeLists files
Uses 2 space indentation as standard
2018-01-19 09:19:40 +01:00
Gunnar Beutner 9d436605f0 Fix compatibility with CMake < 3.1 2018-01-18 15:12:46 +01:00
Gunnar Beutner 2a9dceb367 Use CMake object libraries for our libs 2018-01-17 04:28:21 +01:00
Gunnar Beutner c2fb9fe226 Use initializer lists for arrays and dictionaries 2018-01-16 12:27:44 +01:00
Michael Friedrich 211a07f49a Add 'ttl' support for check result freshness via REST API
The `process-check-result` action can now optionally set the
`ttl` parameter. This overrules the configured freshness
check (check_interval).

The main idea behind this is to allow the external sender
to specify when the next check result is coming in.

For example, a backup script which should be run every
24h can specify the exact expected next check result.

The addition to the CheckResult class is necessary to
forward the check result throughout the cluster and
calculate the `next_check` value on each node. This
allows us to send in a check result on a satellite,
and the master determines the freshness and possible
notifications/state changes for Icinga Web 2.
2018-01-15 13:54:11 +01:00
Michael Friedrich 9de233630a Move CompatUtility::GetCheckableInNotificationPeriod() logic into Livestatus feature 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 48516560bc Move the IDO specific compat notification filter logic into the feature 2018-01-15 13:39:34 +01:00
Michael Friedrich d373b03907 Drop CompatUtility::GetCheckable*Interval() and hardcode their minute representation in compat features 2018-01-15 13:39:34 +01:00
Michael Friedrich fb76287d39 Clean header includes in CompatUtility class 2018-01-15 13:39:34 +01:00
Michael Friedrich 1473957bc2 Add inventory as comments where the left-over functions are actually used. 2018-01-15 13:39:34 +01:00
Michael Friedrich e3a899a9ac Drop CompatUtility::GetCheckableCheckPeriod() 2018-01-15 13:39:34 +01:00
Michael Friedrich ce8bfdfa5a Move CompatUtility::GetCheckableInCheckPeriod() into Livestatus feature 2018-01-15 13:39:34 +01:00
Michael Friedrich 15e3524e42 Move notification options wrapper into StatusDataWriter
That's the only location which requires the old mapping.
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 f2fe165ccb Drop useless CompatUtility::GetCustomAttributeConfig() wrapper 2018-01-15 13:39:34 +01:00
Michael Friedrich b5f5d167dc Drop dead CompatUtility::GetCustomAttributeConfig 2018-01-15 13:39:34 +01:00
Michael Friedrich cbea0c13f5 Drop Freshness wrappers from CompatUtility class 2018-01-15 13:39:34 +01:00
Michael Friedrich db6ed405e4 Remove more redundant wrappers from CompatUtility class 2018-01-15 13:39:34 +01:00
Michael Friedrich 5466197d29 Drop CompatUtility::*Command helpers 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 2d1f772a6e Replace CompatUtility's enabled wrappers with native implementation getters
Many conversions were not necessary, or could be dealt inside the actual
feature. libcompat and liblivestatus can take care about such specifics
on their own, lib_db_ido doesn't need boolean conversion in fields, that
is done inside the db driver.
2018-01-15 13:39:34 +01:00
Michael Friedrich 334f633b0a Drop CompatUtility::GetCheckableHasBeenChecked() and use Checkable::HasBeenChecked() 2018-01-15 13:39:34 +01:00
Michael Friedrich 3847e37df1 Drop CompatUtility::GetCheckableAcknowledgementType()
This already returns an integer.
2018-01-15 13:39:34 +01:00
Michael Friedrich 7bf2e07032 Move CompatUtility::GetCheckableProblemHasBeenAcknowledged() into feature specific dumps 2018-01-15 13:39:34 +01:00