Commit Graph

1649 Commits

Author SHA1 Message Date
Alexander A. Klimov 1ee26ac89e Introduce Downtime#config_owner_hash
refs #8309
2021-06-29 16:38:33 +02:00
Julian Brost 8f585bd2ee event::ExecuteCommand: add missing origin check
Only handle messages with a trusted origin in
ClusterEvents::ExecuteCommandAPIHandler. Previously, it would not locally
execute any command but forward them to other nodes where they would then have
a trusted origin and be executed.
2021-06-29 11:15:22 +02:00
Julian Brost 5fdfd47176
Merge pull request #8848 from Icinga/bugfix/harden-scheduled-downtimes
ScheduledDowntime::TimerProc(): Catch exceptions to make sure other downtimes are still created
2021-06-28 17:16:57 +02:00
Noah Hilverling f48ad574d7 ScheduledDowntime::TimerProc(): Catch exceptions to make sure other downtimes are still created 2021-06-24 14:05:08 +02:00
Alexander A. Klimov d8e5e07c4f Downtime#Start(): trigger fixed downtimes immediately instead of waiting for the timer
... not to cause e.g. notifications if a problem occurs
between the downtime start time and the timer routine.
2021-06-23 19:16:15 +02:00
Alexander A. Klimov f28b9fb7f3 ScheduledDowntime: ignore not related Downtimes while creating Downtimes 2021-05-19 16:10:57 +02:00
Alexander Aleksandrovič Klimov 1c0ce89cb3
Merge pull request #8681 from Icinga/bugfix/problem-notification-at-downtime-end
Send problem notifications after downtime end for checkables in child zones
2021-03-22 17:56:25 +01:00
Alexander Aleksandrovič Klimov ef8619f76b
Merge pull request #8601 from Icinga/feature/replace-std-boost-bind-with-lambdas-7006
Feature: Replace std/boost::bind() with lambdas
2021-03-18 17:56:13 +01:00
Julian Brost 29727e06c0 Only handle event::SetSuppressed{Notifications,NotificationTypes} within the local zone
Note that even when passing `nullptr` as target zone to `RelayMessage()`, the
cluster message will still be sent to the parent zone. These incoming messages
will now be rejected by the parent nodes. At the moment, there's no way to only
send within the local zone.
2021-03-17 15:05:12 +01:00
Yonas Habteab 43ba2da39c Replace std/boost::bind() function with lambda expression 2021-03-10 16:29:40 +01:00
Julian Brost 02fd60934f
Merge pull request #8008 from Icinga/bugfix/ascii-tables-in-plugin-output-8006
PluginUtility::ParseCheckOutput(): if it doesn't look like perfdata, it's not perfdata
2021-03-05 17:19:38 +01:00
Julian Brost ddbad7937d
Merge pull request #8622 from Icinga/bugfix/dependency-ti-typo-8180
dependency.ti: fix typo
2021-02-05 11:49:03 +01:00
Alexander A. Klimov ebfa73388f dependency.ti: fix typo
refs #8180
2021-02-04 18:29:54 +01:00
Alexander Aleksandrovič Klimov aa0baf6f69
Merge pull request #8099 from Icinga/feature/std-mutex
Use std::mutex, not boost::mutex
2021-02-04 10:19:04 +01:00
Alexander A. Klimov c3388e9af6 Use std::mutex, not boost::mutex 2021-02-03 09:54:57 +01:00
Alexander Aleksandrovič Klimov 9a867c2c25
Merge pull request #8513 from Icinga/bugfix/notifications-downtime-change-in-timeperiod-8509
FireSuppressedNotifications(const Notification::Ptr&): don't send notifications while suppressed by checkable
2021-01-28 10:01:23 +01:00
Alexander Aleksandrovič Klimov 8d1e958275
Make code doc more readable
Co-authored-by: Julian Brost <julian.brost@icinga.com>
2021-01-27 15:43:37 +01:00
Julian Brost 9219f68c83
Merge pull request #8158 from Icinga/bugfix/check-source-passive-7948
Checkable#ProcessCheckResult(): don't overwrite check source
2021-01-26 10:49:55 +01:00
Alexander A. Klimov c3eba7e88d Checkable#ProcessCheckResult(): don't overwrite check source
... set by passive check results.

refs #7948
2021-01-25 16:05:03 +01:00
Alexander Aleksandrovič Klimov 124f98eed4
Merge pull request #8600 from Icinga/feature/flapping-ignore-unknown
Flapping: Allow to ignore states in flapping detection
2021-01-21 13:47:44 +01:00
Alexander Aleksandrovič Klimov ef23ae5f3c
Merge pull request #8267 from efuss/passive_reach
Drop passive check results for unreachable hosts/services
2021-01-20 17:07:52 +01:00
Noah Hilverling e060995fd8 Flapping: Allow to ignore states in flapping calculation 2021-01-20 11:09:03 +01:00
Edgar Fuß 3c050fcc46 Drop passive check results for unreachable hosts/services
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.
2021-01-19 20:08:38 +01:00
Alexander Aleksandrovič Klimov cbd0d6ea6e
Merge pull request #8588 from Icinga/bugfix/concurrent-schedule-downtime-delete-host
Fix null pointer dereferences when deleting objects while scheduling downtimes
2021-01-19 13:51:08 +01:00
Julian Brost 88e5744d54 AddDowntime: return Downtime::Ptr instead of String containing the name
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.
2021-01-15 16:34:48 +01:00
Alexander Aleksandrovič Klimov c549a6657e
Merge pull request #8562 from Icinga/bugfix/fix-no-renotification-for-non-ok-state-changes-8545
Fix no re-notification for non OK state changes with time delay
2021-01-14 17:49:29 +01:00
Alexander Aleksandrovič Klimov 70b438a2bf
Merge pull request #8104 from Icinga/bugfix/remove-downtime-returns-wrong-status-7408
API: Display a correct status when removing a downtime
2021-01-14 17:49:00 +01:00
Yonas Habteab 997ad86225 Fix no re-notification for non OK state changes with time delay 2021-01-14 11:54:25 +01:00
Julian Brost f12666c166
Merge pull request #8157 from Icinga/bugfix/temporary-files-5124
Clean up temp files
2021-01-13 15:45:29 +01:00
Alexander A. Klimov 450b2117d2 Add ".tmp" to state and modified attributes temp files
refs #5124
2021-01-12 17:35:29 +01:00
Alexander A. Klimov 18c2dae941 Clean up temp files
refs #5124
2021-01-12 17:35:29 +01:00
Julian Brost aea06a27dc Use reference-counted pointer in notification callback
`this` could be deleted after `Notification::BeginExecuteNotification`
exited and before `Notification::ExecuteNotificationHelper` finished.
This is fixed by constructing a `Notification::Ptr` and operate on that
one as it is properly reference-counted.
2021-01-12 17:19:29 +01:00
Yonas Habteab 756abbb2ff ApiEvents: Implement new API event streams response 2021-01-11 14:59:48 +01:00
Julian Brost 0276c0b052 Properly handle service downtime referencing a deleted host
Only two out of three cases were handled properly by the code: host
downtimes referencing a deleted host and service downtimes referencing a
deleted service worked fine. However, if a service downtime references a
deleted host, `Host::GetByName()` returns `nullptr` which isn't
accounted for. Use `Service::GetByNamePair()` instead as this performs a
check for the host being null internally.
2021-01-08 11:12:15 +01:00
Alexander A. Klimov f311dfb775 Apply rules: import default templates first
... to allow to override the attributes they set.

refs #7914
2020-12-14 18:15:18 +01:00
Alexander A. Klimov 5547488cd5 Introduce Checkable#NotificationReasonSuppressed()
refs #8509
2020-12-14 13:27:58 +01:00
Alexander Aleksandrovič Klimov 915a3c3001
Merge pull request #8436 from Icinga/bugfix/children-recover-too-late
On recovery: re-check children
2020-12-11 15:41:31 +01:00
Yonas Habteab dd02e3b6d8 API: Display a correct status code when removing a scheduled downtime 2020-12-07 13:19:41 +01:00
Julian Brost f2a532de32
Merge pull request #8035 from Icinga/feature/expiry-date-comments-4663
/v1/actions/add-comment: add param expiry
2020-12-04 15:48:50 +01:00
Alexander A. Klimov 854939a8ce On recovery: re-check children 2020-12-02 12:24:40 +01:00
Alexander A. Klimov 668bf06424 Don't fire suppressed notifications if last parent recovery >= last check result 2020-12-02 12:03:19 +01:00
Alexander Aleksandrovič Klimov bee4ac7f7c
Merge pull request #8040 from Icinga/feature/v1-actions-execute-command-8034
Add API endpoint: /v1/actions/execute-command
2020-12-02 10:53:24 +01:00
Alexander A. Klimov 5cfac1f643 Fix function and variable names
refs #8034
2020-11-23 16:43:47 +01:00
Alexander A. Klimov 0ad1ab20aa Fix code style
refs #8034
2020-11-23 16:39:24 +01:00
Alexander Aleksandrovič Klimov 4f6fecc74c
Merge pull request #8101 from Icinga/bugfix/timestamps-checkresult-differ-across-nodes-8092
State timestamps set by the same check result differ across nodes
2020-10-30 17:24:15 +01:00
Alexander Aleksandrovič Klimov 3fa1eab344
Merge pull request #7736 from froehl/7735
API-Event StateChange & CheckResult: Added acknowledgement and downtime_depth…
2020-10-29 13:41:52 +01:00
Alexander A. Klimov bb851b0558 Merge branch 'master' into feature/v1-actions-execute-command-8034 2020-10-28 18:37:08 +01:00
Alexander A. Klimov 40ac05c182 Introduce Endpoint#capabilities
refs #8034
2020-10-19 13:04:20 +02:00
Alexander A. Klimov 9e29936b8f Fix missing include
refs #8034
2020-10-19 13:04:20 +02:00
Alexander Aleksandrovič Klimov 9dd197d0af
Merge pull request #8165 from Icinga/bugfix/service-get-severity-deadlock-8160
ProcessCheckResult(): Make sure hosts aren't locked during Service::GetSeverity()
2020-10-16 10:41:23 +02:00
Alexander Aleksandrovič Klimov be8dd201eb
Merge pull request #8229 from Icinga/bugfix/downtime-checkable-getname
Check !!downtime->GetCheckable() before downtime->GetCheckable()->GetName()
2020-10-16 10:39:57 +02:00
Fabian Röhl ca487ed732 #7735 API-Event StateChange & CheckResult: Added acknowledgement and downtime_depth 2020-09-18 08:20:29 +02:00
Alexander A. Klimov fe4a44096a Merge branch 'feature/v1-actions-execute-command-8034-deadline-timer' into feature/v1-actions-execute-command-8034
refs #8034
2020-09-15 18:14:01 +02:00
Alexander A. Klimov 8b0ba2275a Check !!downtime->GetCheckable() before downtime->GetCheckable()->GetName()
... not to crash while removing a downtime from a disappeared checkable.
2020-09-11 14:47:46 +02:00
Mattia Codato 6801419bd6 Add newline ad the end of file 2020-08-26 16:41:02 +02:00
Mattia Codato 19628252f8 Add timer to clean deadlined executions 2020-08-26 15:48:04 +02:00
Alexander A. Klimov ade891bbf5 Revert "MacroProcessor::ResolveArguments(): skip null argument values"
This reverts commit e4bdcedbca.
2020-08-13 10:39:55 +02:00
Noah Hilverling ddf1e50d93 ProcessCheckResult(): Make sure hosts aren't locked during Service::GetSeverity() 2020-08-11 15:24:54 +02:00
Mattia Codato df2b82f7fe Remove an useless check 2020-08-05 16:14:57 +02:00
Mattia Codato 7474ab6de5 Set exit code 126 if endpoint doens't support the new executeCommand API 2020-08-05 15:53:34 +02:00
Mattia Codato 7c004af6be Check child endpoint versions and check child zone can access to the target endpoint 2020-08-05 14:08:54 +02:00
Mattia Codato a90068cc78 Check satellites Icinga version before relay the execute command message 2020-08-05 10:01:29 +02:00
mcodato 730075a177
Merge pull request #1 from Al2Klimov/version
Introduce Endpoint#icinga_version
2020-08-05 09:23:28 +02:00
Mattia Codato ac71cc67f8 Use local zone for update executions 2020-08-04 16:09:21 +02:00
Mattia Codato c6c1849106 Change checkable with the endpoint zone for execute command relay message 2020-08-04 14:32:36 +02:00
Mattia Codato 951388797a Forward the execute command through the zones 2020-08-03 21:09:57 +02:00
Eric Lippmann e8745f7e96
Merge pull request #7816 from Icinga/feature/notification-timeperiod-6167
Re-send notifications previously suppressed by their time periods
2020-08-03 10:04:27 +02:00
Mattia Codato 9c4a3aed1b Use ExecuteOverride to override the command 2020-07-31 17:28:33 +02:00
Mattia Codato cf1430c409 Fix update execution 2020-07-31 14:07:48 +02:00
Mattia Codato 604b938ade Fix macros substitutions 2020-07-31 11:15:17 +02:00
Mattia Codato 44fc841ee1 Notify to all nodes that execution has completed 2020-07-31 10:42:01 +02:00
Mattia Codato a5698d5fde Check if last check result is null before executing the command 2020-07-31 08:53:10 +02:00
Alexander A. Klimov c515822649 Re-send notifications previously suppressed by their time periods
refs #6167
2020-07-29 17:13:41 +02:00
Mattia Codato 75e0e164e4 Fix indentation 2020-07-29 09:54:18 +02:00
Mattia Codato 064d5e9194 Keep consistency with other methods in case of missing API listener 2020-07-29 08:57:22 +02:00
Mattia Codato edb5c47a9d Execute notification command only if there is a source param 2020-07-29 08:52:15 +02:00
Mattia Codato a834b5cecd Remove unused key in the execution 2020-07-29 08:46:09 +02:00
Mattia Codato 2cda17a99b Remove pending key when the execution is completed 2020-07-29 08:45:19 +02:00
Mattia Codato 5a4fa69650 Fix logs 2020-07-29 08:43:30 +02:00
Mattia Codato 1e59810ddd Fix indentation 2020-07-29 08:38:49 +02:00
Alexander A. Klimov 37c2c7ba90 Checkable#Start(): if #last_check_started > last check, set #next_check to #last_check_started
refs #7888
2020-07-28 11:54:13 +02:00
Alexander A. Klimov 4585a404d6 Checkable#ExecuteCheck(): set #last_check_started to now before #UpdateNextCheck()
refs #7888
2020-07-28 11:54:13 +02:00
Alexander A. Klimov 9dc297987e Sync Checkable#last_check_started
refs #7888
2020-07-28 11:54:13 +02:00
Mattia Codato bf07ada3df Remove arguments from 'throw' inc case of ExecuteEventHandler error 2020-07-23 13:34:26 +02:00
Mattia Codato aadedc0d1c Throw an exception in case of error during ExecuteEventHandler if source is not set 2020-07-23 13:23:13 +02:00
Mattia Codato 53659066f2 Remove unuseful variables 2020-07-23 13:20:31 +02:00
Mattia Codato b30960fda5 Add try catch for ExecuteEventHandler 2020-07-23 13:03:30 +02:00
Mattia Codato 14c02ec654 Remove unuseful check result for notification command 2020-07-23 12:58:50 +02:00
Mattia Codato 9940aaf90c Refactor SendEventExecuteCommand function 2020-07-23 11:31:44 +02:00
Mattia Codato 6656afb259 Code refactoring: create sendEventExecuteCommand function 2020-07-23 08:26:31 +02:00
Mattia Codato e690eaf3c4 Run ExecutedCommandAPIHandler in case of command not found and if source is set 2020-07-22 17:22:50 +02:00
Mattia Codato 4e3a38f320 Unify code to check if command exists 2020-07-22 14:16:41 +02:00
Mattia Codato b4d6fe2c8d Check if the node accept commands only if the origin is not local 2020-07-21 16:33:52 +02:00
Mattia Codato 05b1beb2ff Send event::ExecutedCommand where necessary 2020-07-21 15:51:57 +02:00
Mattia Codato 2e8b492f29 Implement notification execution 2020-07-21 13:27:03 +02:00
Mattia Codato acc986afd0 Remove extra char 2020-07-20 13:15:12 +02:00
Mattia Codato c6d4a9ac47 Get checakble name from params 2020-07-20 12:46:22 +02:00
Mattia Codato f59c60f85f Send error as command execution result 2020-07-20 08:18:53 +02:00
Mattia Codato 461b4e2176 Do CurrentConcurrentChecks and DecreasePendingChecks only for check_command 2020-07-16 16:52:48 +02:00
Mattia Codato d4fb5a0656 Remove unuseful check 2020-07-16 16:41:47 +02:00