Commit Graph

5630 Commits

Author SHA1 Message Date
Mattia Codato 96dc349240 Fix scriptfunc for dummychecktask, exceptionchecktask and sleepchecktask 2020-07-22 11:38: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 867da09fb4 Revert "Use ExecuteCommandProcessFinishedHandler in TimePeriodTask"
This reverts commit abf164bceb.
2020-07-21 10:52:59 +02:00
Mattia Codato abf164bceb Use ExecuteCommandProcessFinishedHandler in TimePeriodTask 2020-07-21 09:57:59 +02:00
Noah Hilverling 9f57e895f1
Merge pull request #8102 from Icinga/bugfix/send-heartbeat-less-often-8098
Send heartbeat every 20s and not 10s
2020-07-21 09:46:33 +02:00
Mattia Codato 986c07fd7d Use ExecuteCommandProcessFinishedHandler in NullEventTask 2020-07-21 08:33:43 +02:00
Mattia Codato 8758e58b92 Use ExecuteCommandProcessFinishedHandler for all lib/methods/*task.cpp 2020-07-20 16:29:26 +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 27f8bc5920 Call ExecuteCommandProcessFinishedHandler for notification and event commands 2020-07-15 09:14:01 +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 c3d9f6c17b Add ExecuteActionTask 2020-07-10 16:51:45 +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
Yonas Habteab df2d30e6af Send Content-Type as api response header too 2020-07-10 10:42:55 +02:00
Mattia Codato 93711542a7 Get UUID from params 2020-07-10 10:05:38 +02:00
Yonas Habteab cf5ec5e341 Send heartbeat every 20s and not 10s 2020-07-09 13:22:08 +02:00
Yonas Habteab 3ecaf1e4a4 Use executionEnd instead of GetTime() 2020-07-09 10:44:38 +02:00
Alexander A. Klimov 645dcbdc9e Introduce Endpoint#icinga_version
... and set it to e.g. 21200 via icinga::Hello.
2020-07-07 18:24:06 +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
Yonas Habteab 24c6210ef2 Fix don't set LC_NUMERIC twice 2020-07-06 13:12:56 +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
Mattia Codato da82c17891 Call Endpoint::GetByName only once 2020-06-26 16:38:40 +02:00
Mattia Codato 50693d7ea9 Add newline at the end of file 2020-06-26 16:36:57 +02:00
Mattia Codato fd761397ac Unify result status strings 2020-06-26 15:39:42 +02:00
Mattia Codato 899076c77b Code format 2020-06-26 14:29:03 +02:00
Mattia Codato 35bb329a59 Implement ClusterEvents::UpdateExecutionsAPIHandler 2020-06-26 12:33:44 +02:00
Mattia Codato 82444a59e2 Fix resolve macros. Check if endpoint is local or remote 2020-06-26 12:32:12 +02:00
Mattia Codato 714e75bbd1 Remove wait parameter, ttl is required, remove unnecessary checks 2020-06-26 09:33:23 +02:00
Benjamin Groeber cc6fa66ba6 Allow apiactions to return sucecss http codes different from 200 2020-06-23 11:52:22 +02:00
Benjamin Groeber e9b6c68fd5 Use tabs instead of spaces 2020-06-23 11:44:26 +02:00
Benjamin Groeber 2bb6f9d38d Fix formatting of long fn 2020-06-23 11:41:49 +02:00
Benjamin Groeber 159e3d2945 Remove superfluous else clause 2020-06-23 11:41:15 +02:00
Andrea Avancini 823fe34d24 Parameter evaluation, macro resolution, update executions, send ExecuteCommand message for ExecuteCommand Endpoint 2020-06-18 15:27:31 +02:00
Alexander A. Klimov 19c632e44b Add timeout for boost::asio::ssl::stream#async_shutdown()
refs #7203
2020-06-17 10:33:35 +02:00
Alexander A. Klimov 647f1547a9 Generalize I/O timeout emulation 2020-06-17 10:31:40 +02:00
Noah Hilverling df43cf573c
Merge pull request #8053 from Icinga/bugfix/segfault-map-reduce-filter-null-8047
Ensure the custom function is not null in Array#{sort,map,reduce,filter,any,all}()
2020-06-16 15:25:11 +02:00
Henrik Triem f2765d54ce
Merge pull request #8015 from Icinga/bugfix/streamlogger-flush-lock
StreamLogger#Flush(): lock self
2020-06-09 14:26:50 +02:00
Alexander A. Klimov 9c85401914 Ensure the custom function is not null in Array#{sort,map,reduce,filter,any,all}()
refs #8047
2020-06-09 12:35:04 +02:00
Alexander A. Klimov 11c6c11076 Add Checkable#last_check_started
refs #7888
2020-06-09 12:03:02 +02:00
Alexander A. Klimov cd2ffd175b CheckerComponent#Stop(): don't wait for checks
refs #7888
2020-06-09 12:03:02 +02:00
Noah Hilverling 45ee6b3b71
Merge pull request #7995 from Icinga/bugfix/pki-save-cert-key-7992
icinga2 pki save-cert: allow to specify --key and --cert
2020-06-03 15:51:18 +02:00
Noah Hilverling 84b052b314
Merge pull request #7926 from Icinga/bugfix/jsonrpcconnection-handleandwriteheartbeats-m_endpoint-getname
JsonRpcConnection#HandleAndWriteHeartbeats(): check !!#m_Endpoint
2020-06-03 15:46:38 +02:00
Alexander A. Klimov 9cb3779ec2 Add stub for event::UpdateExecutions
refs #8034
2020-06-02 17:16:30 +02:00
Alexander A. Klimov 120440b84f Introduce Checkable#executions
refs #8034
2020-06-02 17:09:13 +02:00
Alexander A. Klimov d6fad3232b Introduce Checkable#pending_executions
refs #8034
2020-06-02 16:59:42 +02:00
Alexander A. Klimov fc220bac69 Add stub for event::ExecutedCommand
refs #8034
2020-06-02 13:44:15 +02:00
Alexander A. Klimov 3f07dd6cae Add stub for event::ExecuteCommand w/ source
refs #8034
2020-06-02 11:52:58 +02:00
Alexander A. Klimov 752df8ea28 Add stub for /v1/actions/execute-command
refs #8034
2020-06-02 11:43:32 +02:00
Alexander A. Klimov 5b7f7344df /v1/actions/add-comment: add param expiry
refs #4663
2020-05-27 11:41:22 +02:00
Noah Hilverling 7395465089
Merge pull request #8014 from Icinga/bugfix/icinga-db-ack-expire-8012
Icinga DB: record ack expiries
2020-05-19 11:16:28 +02:00
Alexander A. Klimov f21b60e390 StreamLogger#Flush(): lock self
... just to be sure.
2020-05-15 15:33:37 +02:00
Alexander A. Klimov c4a8afbe5f Icinga DB: record ack expiries
refs #8012
2020-05-15 12:02:51 +02:00
Alexander A. Klimov fc72cca70e Icinga DB: don't use the work queue for publishing stats 2020-05-15 11:17:25 +02:00
Alexander A. Klimov 3617f05836 icinga2 pki save-cert: allow to specify --key and --cert
refs #7992
2020-04-28 17:34:00 +02:00
Noah Hilverling d5d89b7f39
Merge pull request #7970 from Icinga/bugfix/reconnect-loop
RequestCertificateHandler(): don't disconnect nodes already integrated into the cluster
2020-04-27 13:05:22 +02:00
Alexander A. Klimov 35f25e99b4 IcingaDB::SerializeState(): include whether an ack is sticky 2020-04-20 14:53:55 +02:00
Alexander A. Klimov 5a5cf1a2eb RequestCertificateHandler(): don't disconnect nodes already integrated into the cluster
... not to cause a reconnect loop.
2020-04-08 13:29:55 +02:00
Alexander Aleksandrovič Klimov 2e22ceb23e
Merge pull request #7936 from Icinga/bugfix/config-sync-failed-reload-7742
ApiListener::ConfigUpdateHandler(): make the whole process mutually exclusive
2020-04-07 15:55:14 +02:00
Alexander A. Klimov 720a88c29a PerfdataValue: add UoMs
* {,{K,M,G,T,P,E,Z,Y}{,i}}B
  => bytes
* {,{k,m,g,t,p,e,z,y}{,i}}b
  => bits
* packets
* {n,u,m,}s m h d
  => seconds
* {n,u,m,,k,M,G,T,P,E,Z,Y}{{A,O,V,W},{A,W}{s,m,h}}
  => amperes, ohms, volts, watts, ampere-seconds, watt-hours
* lm dBm
  => lumens decibel-milliwatts
* {n,u,m,,k}g t
  => grams
* C F K
  => degrees-celsius, degrees-fahrenheit, degrees-kelvin
* {m,,h}l
  => liters

refs #7225
2020-04-03 12:47:36 +02:00
Markus Frosch b5fa7569f2 apilistener: Make SO_REUSEPORT optional 2020-03-31 18:03:59 +02:00
Michael Insel 51e534ff4c Fix CA verification regression
Uninitialized bool values may evaluate to true while it should be false.
2020-03-29 16:05:29 +02:00
Alexander A. Klimov 8050bd9e76 PerfdataValue#Parse(): don't complain on unknown UoMs
refs #7225
2020-03-25 13:05:22 +01:00
Alexander A. Klimov 38f3108c1a ApiListener::HandleConfigUpdate(): make the whole process mutually exclusive
refs #7742
2020-03-23 17:33:14 +01:00
Alexander A. Klimov dc3062a9b0 ApiListener::ConfigUpdateHandler(): block as less as possible
refs #7742
2020-03-23 17:31:59 +01:00
Alexander A. Klimov 210acfbf1d Livestatus: append app name to program_version
refs #7895
2020-03-19 10:33:01 +01:00
Alexander A. Klimov 5e7a675009 JsonRpcConnection#HandleAndWriteHeartbeats(): check !!#m_Endpoint 2020-03-18 11:58:27 +01:00
Noah Hilverling 595ffc438e Icinga DB - Flapping history: Add percent_state_change_start/end 2020-03-10 14:44:08 +01:00
Noah Hilverling 5ec31aed14 Downtime, Comment, Notification: Add host_id, if object_type is service 2020-03-09 10:50:02 +01:00
Noah Hilverling 4c9e4959f3
Merge pull request #7823 from Icinga/bugfix/unify-application-start-times
Fix timing point for Application::GetStartTime() (related to command endpoint grace period)
2020-03-09 09:45:57 +01:00
Alexander A. Klimov aa258685be Checkable#next_update: always use #check_interval if !#enable_active_checks 2020-03-06 10:03:56 +01:00
Noah Hilverling e4c920b69e
Merge pull request #7887 from Icinga/bugfix/icingadb-sendevent
Drop IcingaDB#HandleEvents()
2020-03-05 16:22:22 +01:00
Alexander A. Klimov 0e24462064 Fire Checkable::OnFlappingChange only if flapping is enabled
refs #7885
2020-03-04 14:58:32 +01:00
Alexander A. Klimov ff0efbc2a2 Drop IcingaDB#HandleEvents() 2020-03-04 14:37:17 +01:00
Alexander A. Klimov 54d555bd92 Drop IcingaDB#SendEvent() 2020-03-04 14:36:43 +01:00
Alexander A. Klimov 867481de7c Connect IcingaDB::StateChangeHandler to Checkable::OnAcknowledgementSet instead of calling it in IcingaDB#SendEvent() 2020-03-04 14:36:07 +01:00
Alexander A. Klimov efa548fbdf Connect IcingaDB::UpdateState to Checkable::OnNewCheckResult instead of calling it in IcingaDB#SendEvent() 2020-03-04 14:34:43 +01:00
Noah Hilverling cef4c46ba8
Merge pull request #7886 from Icinga/bugfix/icingadb-flapping-history-more-ends-than-starts-7885
IcingaDB: make signal handlers synchronous
2020-03-04 13:39:31 +01:00
Alexander A. Klimov 0d58f87b37 IcingaDB: make signal handlers synchronous
refs #7885
2020-03-04 11:09:35 +01:00
Noah Hilverling 8f061ae80e Fix OnHostProblemChanged signal 2020-03-04 10:55:07 +01:00
Noah Hilverling 6e3c928205
Merge pull request #7837 from Icinga/bugfix/coroutine-exception
IoEngine#SpawnCoroutine(): always terminate coroutines cleanly
2020-03-03 11:19:18 +01:00
Noah Hilverling c9ab04d511
Merge pull request #7841 from Icinga/bugfix/jsonrpcconnection-sendmessage-keepalive
JsonRpcConnection#Send*Message(): keep this alive
2020-03-03 10:46:33 +01:00
Noah Hilverling b6b7856796
Merge pull request #7861 from Icinga/bugfix/command-endpoint-check-timeout
Fix 'check_timeout' not being forwarded to agent command endpoints
2020-02-28 17:42:22 +01:00
Michael Friedrich 13d2416e29 Fix regression from JsonRPC PKI CA verification checks
refs #7835
2020-02-27 12:31:02 +01:00
Michael Friedrich 8e62fc8efb Fix 'check_timeout' not being forwarded to agent command endpoints
fixes #6992
2020-02-27 11:46:52 +01:00
Michael Friedrich 06d0c3ea4e
Merge pull request #7843 from Icinga/feature/cli-pki-verify
CLI: Add `pki verify` command for better TLS certificate troubleshooting
2020-02-25 09:07:24 +01:00
Michael Friedrich fdb13d1b7d TlsUtility: Replace deprecated OpenSSL function with ASN1_STRING_get0_data() 2020-02-21 13:02:58 +01:00
Michael Friedrich 456b0779bb JsonRpcConnection PKI: Document swalled exception 2020-02-20 15:15:54 +01:00
Michael Friedrich 12b6c1aab9 CLI: Improve error handling for 'pki verify' command 2020-02-20 15:10:57 +01:00
Alexander A. Klimov 63a8c1b7ef Log: trim trailing newlines
refs #7828
2020-02-19 11:27:58 +01:00
Alexander A. Klimov 0f84ce0470 Consider a JsonRpcConnection being seen on a single byte of TLS payload, not only a whole message 2020-02-19 11:11:53 +01:00
Alexander A. Klimov b65aed1dd3 IoEngine#SpawnCoroutine(): always terminate coroutines cleanly 2020-02-19 10:51:26 +01:00
Michael Friedrich e4e26d66a6 Build fix 2020-02-17 18:40:28 +01:00
Michael Friedrich 6f263a4922 Add `pki verify` CLI command: print, signed by CA, valid CA, CN match 2020-02-17 18:10:51 +01:00
Michael Friedrich a91b9f2ddf Pki: Extend GetCertificateInformation() with version, serial, signature algorithm, SANs 2020-02-17 17:44:10 +01:00
Michael Friedrich 24397fbee8 CA Proxy: Catch exceptions from VerifyCertificate() 2020-02-17 17:43:11 +01:00
Michael Friedrich 548eb933c9 TlsUtility: Add getters for version, signature algorithm, SANs 2020-02-17 17:42:20 +01:00
Henrik Triem 099cc5d8df
Merge pull request #7833 from Icinga/feature/version-build-info-openssl
CLI: Add OpenSSL version to 'Build' section in --version
2020-02-17 17:07:51 +01:00
Alexander A. Klimov fbce756007 JsonRpcConnection#Send*Message(): keep this alive 2020-02-17 16:12:07 +01:00
Michael Friedrich cfd9b80027
Merge pull request #7838 from Icinga/bugfix/catch-exception-in-node-setup
Catch exception when trusted cert is not readable during node setup on agent/satellite
2020-02-14 09:51:17 +01:00
Michael Friedrich 71c7eebe4e CLI: Add OpenSSL version to 'Build' section in --version
This helps to see against which OpenSSL version Icinga was built.
Inspired by #5572
2020-02-14 08:55:39 +01:00
Michael Insel e4f25269fe
Fix Build
I have no idea how this got lost.
2020-02-14 07:56:23 +01:00
Michael Insel 90ac6cd9a1 CLI: Catch exception when trusted cert is not readable
This catches an exception when the trusted cert is not readable during
node setup.
2020-02-13 20:03:17 +01:00
Michael Friedrich 82e055bfb6 CLI: Clean up 'pki save-cert' command and remove deprecated params
This got obsoleted 4 years ago in a monster commit.
b297e8cfa7
2020-02-13 16:14:01 +01:00
Michael Friedrich e1557def94 CLI: Verify --trustedcert being a client, non CA certificate in 'node setup'
This commit also cleans some shell output with master vs. parent.
2020-02-13 16:09:16 +01:00
Michael Friedrich a7436394cd TlsUtility: Add IsCa() function to verify given certificate being a CA certificate 2020-02-13 16:03:43 +01:00
Michael Friedrich d53eb34520 Unify Application::GetStartTime() and drop GetMainTime()
This essentially moves the start time into the scope when main
starts to "do something", after the reload and configuration handling
is done.
2020-02-11 17:26:15 +01:00
Michael Friedrich 57facbddd5
Merge pull request #7697 from Icinga/bugfix/icingadb-compiler-warnings
IcingaDB: Fix enumeral mismatch compiler warnings
2020-02-11 17:22:28 +01:00
Michael Friedrich ae8a0b6a64 Introduce Application::GetUptime() 2020-02-11 16:47:50 +01:00
Michael Friedrich 3a4fb840d4 Tests: Add multi parent dependency test case 2020-02-11 15:13:25 +01:00
Michael Friedrich 9b0365ab43 Fix logical error with zero dependencies in IsReachable() 2020-02-11 15:13:25 +01:00
Henrik Triem d0c0beb8be Change behaviour of multiple dependencies (all failed = unreachable) 2020-02-11 15:13:25 +01:00
Michael Insel 5930d640e4 IcingaDB: Fix enumeral mismatch compiler warnings
This fixes 3 enumeral mismatch compiler warnings when building the
IcingaDB target.
2020-02-10 18:56:11 +01:00
Michael Friedrich 2f82047737
Merge pull request #7769 from Icinga/bugfix/m_lexbuffer
Make ConfigCompiler#m_LexBuffer a String
2020-02-10 16:27:42 +01:00
Michael Friedrich 04edda531c
Merge pull request #7788 from Icinga/bugfix/windows-timeout-unknown-state
Terminate windows check processes with UNKNOWN state on timeout
2020-02-10 15:34:28 +01:00
Michael Friedrich ccd354c16c
Merge pull request #7810 from Icinga/bugfix/spawncoroutine-copy
IoEngine#SpawnCoroutine(): don't copy parameter
2020-02-10 15:31:31 +01:00
Michael Friedrich d99f76bdae Merge pull request #7767 from Icinga/bugfix/replay-log-windows-rename
Ensure that log replay files are properly renamed on Windows
2020-02-10 11:42:25 +01:00
Michael Friedrich 8324970ab9
Merge pull request #7809 from Icinga/bugfix/handshake-timeout-7805
Close connections w/o sucessful TLS handshakes during 10s
2020-02-07 16:01:30 +01:00
Michael Friedrich 7488d2614b
Merge pull request #7811 from Icinga/bugfix/config-sync-log
Cluster config sync: Use a more friendly message when configs are equal and don't need a reload
2020-02-06 14:32:46 +01:00
Michael Friedrich bf2d6abfad
Merge pull request #7747 from Icinga/bugfix/heartbeat-unauthenticated-7746
Don't send event::Heartbeat to unauthenticated peers
2020-02-06 14:32:25 +01:00
Michael Friedrich f961370e36 ApiEvents: Fix AcknowledgementCleared code quality 2020-02-06 13:03:04 +01:00
Alexander A. Klimov 35c9f2e7b3 Close connections w/o sucessful TLS handshakes during 10s
refs #7805
2020-02-05 15:53:56 +01:00
Alexander A. Klimov 0ed0f73d9d IoEngine#SpawnCoroutine(): remove redundand overload 2020-02-05 15:31:57 +01:00
Michael Friedrich cdfc6e6f50 Cluster config sync: Use a more friendly message when configs are equal and don't need a reload
This also adds an entry to the troubleshooting docs.
2020-02-05 15:31:41 +01:00
Alexander A. Klimov d98493c90f IoEngine#SpawnCoroutine(): don't copy parameter 2020-02-05 15:30:03 +01:00
Noah Hilverling 572c912c96
Merge pull request #7804 from Icinga/bugfix/not-overdue-active-checks-disabled-7790
Checkable#next_update: ignore re-scheduled #next_check if !#enable_active_checks
2020-01-31 14:17:30 +01:00
Alexander Aleksandrovič Klimov 431e4f64c9
Merge pull request #7794 from Icinga/bugfix/icingadb-fix-last-update
IcingaDB: Fix last_update
2020-01-31 12:12:49 +01:00
Alexander A. Klimov 86bbb79869 Checkable#next_update: ignore re-scheduled #next_check if !#enable_active_checks
refs #7790
2020-01-31 11:49:47 +01:00
Noah Hilverling b77bc7b963 IcingaDB: Fix last_update 2020-01-29 14:43:29 +01:00
Michael Friedrich 5812dae55b Dev: Allow to delay main worker process in order to attach with LLDB
Introduce `-DInternal.DebugWorkerDelay=120` and sleep inside `RunWorker()`.

Rationale: With 2.11 we've introduced a real umbrella process where the
main process is spawned as child fork. Running icinga2 in foreground on
a macOS shell with LLDB will now exit, and not follow the child process.

LLDB doesn't support `follow-fork-mode child` like GDB and therefore we
need to:

- Print the child process PID
- Sleep for X seconds to allow the developer to run `lldb -p <PID>`, set breakpoints, etc.

This commit also documents all available debug build enabled internal constants.
2020-01-29 13:21:05 +01:00
Michael Insel d7dfa6f1df Terminate windows check processes with UNKNOWN state on timeout
On Windows this terminates checks that reached the timeout with the UNKNOWN
state instead the WARNING state.

Co-authored-by: araujorm <araujorm@users.noreply.github.com>
2020-01-27 21:43:01 +01:00
Michael Friedrich e1939368b2
Merge pull request #7765 from Icinga/bugfix/opentsdb-graphite-reconnect
Graphite/OpenTSDB: Ensure that Reconnect failure is detected
2020-01-27 14:32:26 +01:00
Alexander A. Klimov 530d84ae3b Make ConfigCompiler#m_LexBuffer a String
... to reduce malloc()s.
2020-01-21 13:38:59 +01:00
Michael Friedrich 0da46c1d4b Ensure that log replay files are properly renamed on Windows
rename() without _unlink() before doesn't work on Windows.
This commits also adds an error message which was swallowed
previously.
2020-01-20 11:41:43 +01:00
Michael Friedrich 3533ddd010 Graphite/OpenTSDB: Ensure that Reconnect failure is detected
fixes #7729
2020-01-18 17:09:09 +01:00
Noah Hilverling 0d28ef5abe IcingaDB::UpdateState: Check for Redis connection before calling FireAndForgetQuery() 2020-01-17 13:53:05 +01:00
Alexander Aleksandrovič Klimov f11cccf874
Merge pull request #7760 from Icinga/bugfix/icingadb-manually-rescheduling-a-check-does-not-update-next_update-and-next_check-7707
IcingaDB: Fix rescheduling a check not always updating state in Redis
2020-01-16 11:58:28 +01:00
Noah Hilverling cbe1c181a1 IcingaDB: Fix rescheduling check not always updating state in Redis
fixes #7707
2020-01-16 10:51:56 +01:00
Michael Friedrich 8f5375d2bb Use IoEngine::Spawn wrapper in RedisConnection class
This avoids multiple locations for `asio::spawn` calls.
2020-01-16 09:53:24 +01:00
Alexander A. Klimov 3d841d5f64 Don't send event::Heartbeat to unauthenticated peers
refs #7746
2020-01-13 11:21:38 +01:00
Eric Lippmann cb21086d6c
Merge pull request #7737 from Icinga/bugfix/revert-notification-result
Revert NotificationResult
2020-01-09 10:06:39 +01:00
Noah Hilverling 6575ce920e
Merge pull request #7721 from Icinga/bugfix/icingadb-pending
IcingaDB: suppress state sync until config sync finished
2020-01-08 17:30:22 +01:00
Stuart Henderson 6744b1af54 cope with OS which don't fill in si_pid in siginfo
Icinga processes check si_pid on IPC signals to ensure that the signal
comes from an expected process. OpenBSD doesn't currently fill in si_pid
in siginfo (leaving it 0) so signals never pass this check, resulting
in startup failing to complete (the worker doesn't see the umbrella's
signal and vice-versa) - issue #7505.

Relax the requirement so that either 0 or the wanted pid is accepted.
2020-01-07 22:08:38 +00:00
Noah Hilverling 275ab08303 IcingaDB - Runtime updates: Use one pub/sub channel per config object type 2020-01-07 16:40:29 +01:00
Michael Friedrich 7e1e8b3393 Revert "Add NotificationResult class"
This reverts commit 9621fd2e4b.
2020-01-07 14:26:09 +01:00
Michael Friedrich 3605076f8b Revert "Add OnNewNotificationResult signal and ProcessNotificationResult handler"
This reverts commit ac483f2a8a.
2020-01-07 14:26:07 +01:00
Michael Friedrich 152709071d Revert "Implement last_notification_result handling for Notification objects"
This reverts commit 1706b297a5.
2020-01-07 14:21:06 +01:00
Michael Friedrich d242b41704 Revert "Make NotificationResult available for events: Cluster and Features"
This reverts commit 566e59bbfa.
2020-01-07 14:20:59 +01:00
Michael Friedrich 55e13fd001 Revert "Fix license headers"
This reverts commit 48b3d25ce2.
2020-01-07 14:20:45 +01:00
Alexander A. Klimov f6f7d9b635 IcingaDB: suppress state sync until config sync finished 2019-12-18 13:41:56 +01:00
Michael Friedrich 387c2c8b79
Merge pull request #7717 from Icinga/bugfix/redisconnection-shared_ptr
RedisConnection: replace std::shared_ptr<T> with Shared<T>::Ptr
2019-12-18 13:32:16 +01:00
Michael Friedrich cbbff6b37d
Merge pull request #7716 from Icinga/bugfix/redisconnection-long-logs
RedisConnection: shorten log messages
2019-12-18 13:31:51 +01:00
Alexander A. Klimov de5b3eb2c7 RedisConnection: replace std::shared_ptr<T> with Shared<T>::Ptr 2019-12-17 12:13:30 +01:00
Alexander A. Klimov 955b612703 RedisConnection: shorten log messages 2019-12-17 11:49:54 +01:00
Alexander A. Klimov b1cc0cd767 Document RedisConnection 2019-12-17 11:44:00 +01:00
Michael Friedrich cd44c5371a
Merge pull request #7713 from Icinga/bugfix/coroutine-stack-size-linux
Boost Coroutines: Increase the default stack size from 64 to 256KB
2019-12-13 17:30:23 +01:00
Michael Friedrich f62f2eb25e Boost Coroutines: Increase the default stack size from 64 to 256KB
refs #7532
2019-12-13 17:20:06 +01:00
Alexander A. Klimov c6ea9bc7fe IcingaDB: update icinga:nextupdate:* on Checkable#next_check changes
refs #7707
2019-12-10 16:11:51 +01:00
Noah Hilverling 77e02031f9
Merge pull request #7690 from Icinga/feature/flapping-acknowledgement-start-time-7689
IcingaDB: include consistent IDs, start time and end time in icinga:history:stream:{flapping,acknowledgement}
2019-12-10 14:49:17 +01:00
Noah Hilverling ee40fedb2a
Merge pull request #7700 from Icinga/bugfix/icingadb-don-t-hash-hashes-7692
IcingaDB: don't hash hashes
2019-12-10 13:39:12 +01:00
Alexander A. Klimov 78189d70ef IcingaDB: don't hash hashes
refs #7692
2019-12-10 11:23:05 +01:00
Alexander A. Klimov d69cb676a7 Introduce IcingaDB#GetObjectIdentifiersWithoutEnv()
refs #7692
2019-12-10 11:22:35 +01:00
Alexander A. Klimov 4f68cfd299 IcingaDB: include consistent IDs, start time and end time in icinga:history:stream:{flapping,acknowledgement}
refs #7689
2019-12-10 10:44:26 +01:00
Alexander A. Klimov 829d07aefe Introduce Checkable#acknowledgement_last_change
refs #7689
2019-12-10 10:44:23 +01:00
Alexander A. Klimov 98ba1c03d0 Make Checkable#flapping_last_change consistent across nodes
refs #7689
2019-12-10 10:11:24 +01:00
Michael Friedrich f47142cf72
Merge pull request #7686 from Icinga/bugfix/open-connections
Fix open connections when agent waits for CA approval
2019-12-09 19:25:13 +01:00
Michael Friedrich ce1a71cfec
Merge pull request #7695 from Icinga/bugfix/double-ack
Refuse acking an already acked checkable
2019-12-09 19:23:41 +01:00
Noah Hilverling e8f352f4d7 IcingaDB history: Add cancelled_by & removed_by to downtime & comment history 2019-12-09 10:30:52 +01:00
Noah Hilverling f0b8892e4a
Merge pull request #7676 from Icinga/feature/icingadb-localendpoint-id
IcingaDB#GetStats(): add endpoint_id to IcingaApplication
2019-12-06 16:59:36 +01:00
Noah Hilverling 5e23414197
Merge pull request #7699 from Icinga/bugfix/icingadb-hash-arrays-7691
Get rid of IcingaDB#CalculateCheckSum*()
2019-12-06 16:37:24 +01:00
Alexander A. Klimov e109063333 IcingaDB#GetStats(): add endpoint_id to IcingaApplication 2019-12-06 15:52:47 +01:00
Alexander A. Klimov 783586978f Get rid of IcingaDB#CalculateCheckSumProperties()
refs #7691
2019-12-06 11:25:41 +01:00
Alexander A. Klimov 9a678dce8e Get rid of IcingaDB#CalculateCheckSumVars()
refs #7691
2019-12-06 11:24:33 +01:00
Alexander A. Klimov b5ada44330 Get rid of IcingaDB#CalculateCheckSumMetadata()
refs #7691
2019-12-06 11:23:13 +01:00
Michael Friedrich 65ab6b256f
Merge pull request #7696 from Icinga/bugfix/metrics-zero-thresholds
Metrics: Always send '0' as value for thresholds
2019-12-06 11:01:35 +01:00
Alexander A. Klimov c91154a14c Get rid of IcingaDB#CalculateCheckSumString()
refs #7691
2019-12-06 10:54:11 +01:00
Alexander A. Klimov 6fc4efccc7 Get rid of IcingaDB#CalculateCheckSumArray()
refs #7691
2019-12-06 10:47:48 +01:00
Alexander Aleksandrovič Klimov 202e90b626
Merge pull request #7693 from Icinga/feature/icingadb-remove-unnecessar-service-host-ids
IcingaDB: Remove unnecessary service_/host_ids
2019-12-05 15:04:52 +01:00
Michael Friedrich ee72791f25 Metrics: Always send '0' as value for thresholds
fixes #7666
2019-12-05 13:05:59 +01:00
Alexander A. Klimov da6a9174d1 Checkable#ClearAcknowledgement(): OnAcknowledgementCleared() at most once 2019-12-05 11:54:33 +01:00
Alexander A. Klimov 798ea54173 Refuse acking an already acked checkable 2019-12-05 11:08:16 +01:00
Noah Hilverling 5b8b777691 IcingaDB: Add timestamp to stats stream 2019-12-05 10:34:41 +01:00
Noah Hilverling 71ef1de964
Merge pull request #7667 from Icinga/feature/icingadb-acks-history
IcingaDB: populate icinga:history:stream:acknowledgement
2019-12-05 09:20:36 +01:00
Noah Hilverling 3e832900f6 IcingaDB: Remove unnecessary service_/host_ids 2019-12-05 07:35:05 +01:00
Alexander A. Klimov 04e13e784d IcingaDB: populate icinga:history:stream:acknowledgement 2019-12-04 15:02:14 +01:00
Noah Hilverling 92e51a3f87
Merge pull request #7684 from Icinga/bugfix/is_handled-host-down-7673
IcingaDB: update service state on Host#problem change
2019-12-04 14:43:09 +01:00
Alexander Aleksandrovič Klimov 5d40a71f8b
Merge pull request #7669 from Icinga/feature/icingadb-notification-recipients
IcingaDB: Add notification recipients
2019-12-04 11:00:53 +01:00
Noah Hilverling ea6e937760 IcingaDB: Add notification recipients 2019-12-04 10:10:36 +01:00
Michael Insel 9d55a8264d Fix open connections when agent waits for CA approval
This closes the agent connection when the certificate sign requests
waits for CA approval.

refs #7680
2019-12-03 21:19:39 +01:00
Alexander A. Klimov 5c45c198ff IcingaDB#SerializeState(): correct Checkable#is_{problem,handled}
refs #7673
2019-12-03 17:44:48 +01:00
Alexander A. Klimov 798c56b809 IcingaDB: update service state on Host#problem change
refs #7673
2019-12-03 17:37:51 +01:00
Alexander Aleksandrovič Klimov bb9b70d466
Merge pull request #7685 from Icinga/bugfix/pending-checkable-problem
Checkable#GetProblem(): consider PENDING not a problem
2019-12-03 17:27:01 +01:00
Alexander A. Klimov ea5403a55c Extend Checkable::OnAcknowledgementCleared by removedBy 2019-12-03 17:00:54 +01:00
Alexander A. Klimov 1931501040 Checkable#GetProblem(): consider PENDING not a problem 2019-12-03 16:56:43 +01:00
Michael Friedrich 4e74eff7a2
Merge pull request #7417 from Icinga/feature/lambda-use
DSL: Add support for Lambda Closures ()use(x)=>x and ()use(x)=>{return x}
2019-12-03 16:05:57 +01:00
Noah Hilverling b84ceccfb7
Merge pull request #7662 from Icinga/feature/icingadb-overdue
IcingaDB: populate icinga:nextupdate:*
2019-12-03 15:38:17 +01:00
Michael Friedrich 857e32ad1d
Merge pull request #7681 from syseleven/improve-error-message
Improve error message for POST queries
2019-12-03 13:14:23 +01:00
Noah Hilverling 2af6f24fc4
Merge pull request #7678 from Icinga/feature/icingadb-stats-stream
IcingaDB#PublishStats(): make icinga:stats a stream
2019-12-03 12:53:40 +01:00
Noah Hilverling 355973d600
Merge pull request #7656 from Icinga/bugfix/icingadb-command-arg-value-null
IcingaDB: don't always set icinga:config:*command:{argument,envvar}#value
2019-12-03 12:53:03 +01:00
Alexander A. Klimov 416e1d72bf IcingaDB#PublishStats(): make icinga:stats a stream 2019-12-03 12:01:13 +01:00
Alexander A. Klimov c01c22ae76 IcingaDB: don't always set icinga:config:*command:{argument,envvar}#value 2019-12-03 11:57:21 +01:00
Matthias Baur 177c45d787
Improve error message for POST queries
If the user does a POST query but forgets to add the
'X-HTTP-Method-Override: GET' HTP header, the error message was
misleading. This changes the error message to a more detailed message
which might give the user a better understanding what the problem
could be.

Fixes #7675.
2019-12-03 11:39:40 +01:00
Alexander A. Klimov 9be3b60f76 DSL: allow ()use(x)=>x and ()use(x)=>{return x} 2019-12-03 11:19:34 +01:00
Alexander A. Klimov df7184ad64 IcingaDB: populate icinga:nextupdate:* 2019-12-02 17:21:03 +01:00
Alexander A. Klimov e391c0e7b5 RedisConnection: introduce extensible priorities 2019-12-02 17:21:00 +01:00