Alexander A. Klimov
666c5818bb
On ScheduledDowntime change: remove future downtimes created before change
...
refs #8309
2021-07-02 10:37:29 +02:00
Alexander Aleksandrovič Klimov
31f97d3e6a
Merge pull request #8828 from Icinga/bugfix/execute-command-origin-check
...
event::ExecuteCommand: add missing origin check
2021-06-29 18:08:07 +02:00
Alexander A. Klimov
bcc3870f3a
On ScheduledDowntime change: ignore downtimes created before change
...
... while creating new downtimes.
refs #8309
2021-06-29 17:08:41 +02:00
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
Mattia Codato
50f803c042
Return the process result parameters instead of the check result
2020-07-15 18:40:37 +02:00
Mattia Codato
4255fd9494
Get host by Deserialize
2020-07-15 13:50:49 +02:00
Mattia Codato
300bc89cb6
Handle when listener doesn't accept commands
2020-07-15 08:53:28 +02:00
Mattia Codato
3f490ac0e2
Set the right prams to send to ExecutedCommand
2020-07-15 08:37:28 +02:00
Mattia Codato
12da369ee1
Change check_command and event_command strings to CheckCommand and EventCommand
2020-07-14 17:23:03 +02:00
Mattia Codato
96c34528a0
Change command type 'notification_command' with 'NotificationCommand'
2020-07-14 12:01:12 +02:00
Mattia Codato
26685a9360
Remove unuseful variable. Fix log
2020-07-14 11:57:12 +02:00
Mattia Codato
59dfe6ad41
Fix log
2020-07-14 11:23:39 +02:00
Mattia Codato
2db7b10ff0
Defer ExecuteCommandProcessFinishedHandler
2020-07-13 17:49:38 +02:00
Mattia Codato
134a43d48a
Improve logs
2020-07-13 17:06:08 +02:00
Mattia Codato
a3027d7177
Fix ExecuteCommandProcessFinishedHandler parameters
2020-07-13 16:54:37 +02:00
Mattia Codato
b9510e72dd
Check deadline
2020-07-13 10:20:23 +02:00
Mattia Codato
3414acbec1
Remove unuseful parameter from ExecuteRemoteCheck
2020-07-13 10:14:30 +02:00
Mattia Codato
6bad8bbc0f
Replace executeactiontask with a lambda function
2020-07-13 09:47:19 +02:00
Mattia Codato
fa4aebbfd2
Set CheckResult to execeution
2020-07-10 16:56:35 +02:00
Mattia Codato
15159b1632
Add ExecuteCommandProcessFinishedHandler and checkable param to ExecuteRemoteCheck
2020-07-10 16:56:07 +02:00
Mattia Codato
b6c84982f2
Uniform command_type strings
2020-07-10 16:51:13 +02:00
Mattia Codato
39479b666f
Implement ClusterEvents::ExecutedCommandAPIHandler
2020-07-10 11:21:13 +02:00
Mattia Codato
93711542a7
Get UUID from params
2020-07-10 10:05:38 +02:00
Yonas Habteab
3ecaf1e4a4
Use executionEnd instead of GetTime()
2020-07-09 10:44:38 +02:00
Alexander A. Klimov
bbe0f2d8c4
mkclass: make .ti class members atomic if possible
...
... not to have to lock the objects while setting attributes.
2020-07-07 18:24:06 +02:00
Mattia Codato
e8c8a7d9dd
Refactor GetSingleObjectByNameUsingPermissions
2020-07-07 15:45:58 +02:00
Mattia Codato
c304b59990
Add GetSingleObjectByNameUsingPermissions function
2020-07-07 14:23:36 +02:00
Mattia Codato
704aa0f685
Change result
2020-07-06 17:30:18 +02:00
Mattia Codato
33926ba983
Check if executions are not null
2020-07-06 16:21:05 +02:00
Mattia Codato
6a5deaf7d4
Fix update executions. Fix code indentation
2020-07-03 16:36:58 +02:00
Mattia Codato
a33560548c
Refactor MacroResolver::OverrideMacros
2020-07-03 15:53:51 +02:00
Mattia Codato
be2701bc8a
Add overrideMacros property to MacroResolver
2020-07-03 15:13:51 +02:00
Mattia Codato
b07471d803
AuthenticatedApiUser name refactor
2020-07-03 11:17:36 +02:00
Mattia Codato
08c6e9bc42
Make authenticatedApiUser a static property of ActionsHandler
2020-07-03 11:00:40 +02:00
Mattia Codato
27a6fd6b40
Get API user from ActionsHandler
2020-07-03 10:16:23 +02:00
Mattia Codato
670835fd9a
Get last CheckResult
2020-07-03 08:43:50 +02:00
Mattia Codato
41b379523e
Fix indentation
2020-07-03 08:38:39 +02:00
Mattia Codato
6102cf0625
Call notificationCommand->Execute
2020-07-02 12:20:16 +02:00
Mattia Codato
f2e9aee158
Update execMacros
2020-07-02 10:31:24 +02:00
Mattia Codato
ee2f7bafdd
Move some checks. Add macros parameters to ExecuteCommand message
2020-07-01 14:27:00 +02:00
Mattia Codato
edbd8688fb
Update status code
2020-07-01 08:19:35 +02:00
Mattia Codato
cb32786880
Use RelayMessage to broadcast the updated executions
2020-06-30 17:50:08 +02:00
Mattia Codato
626080f610
Remove unnecessary check
2020-06-30 15:53:25 +02:00
Mattia Codato
15dac85583
Use HttpUtility::GetLastParameter to get endpoint
2020-06-30 15:51:15 +02:00
Mattia Codato
8f3617d074
Fix response strings
2020-06-30 15:48:29 +02:00
Mattia Codato
5c06256ac5
Use dynamic_pointer_cast
2020-06-30 15:41:47 +02:00
Mattia Codato
94be948ff6
Unify how to take macros parameter
2020-06-30 13:51:42 +02:00
Mattia Codato
e4e0115c9d
Get local endpoint if FromClient is not set and origin is local
2020-06-30 13:47:13 +02:00
Mattia Codato
22dc2f2393
Use SyncSendMessage for remote endpoint and call ExecuteCommandAPIHandler for local endpoint
2020-06-30 13:43:00 +02:00
Mattia Codato
7077605880
Use the right method to get the notification command
2020-06-29 13:55:20 +02:00
Mattia Codato
3f1b51b355
Use RelayMessage instead of SyncSendMessage
2020-06-29 09:28:02 +02:00