13564 Commits

Author SHA1 Message Date
Alexander A. Klimov
f82fbbce4a Log#~Log(): skip messages based on Logger#m_ObjectFilterCache & ConfigObject#m_AllParentsAffectingLogging
If Logger#object_filter is set, but doesn't intersect with
ConfigObject#m_AllParentsAffectingLogging, drop the message.
2023-08-15 12:37:53 +02:00
Alexander A. Klimov
897ac270ae [TODO: REVERT] Repair GHA for now 2023-08-15 12:37:53 +02:00
Alexander A. Klimov
449486abe3 Log#Log(): require passing one involved object 2023-08-15 12:37:52 +02:00
Alexander A. Klimov
647f4aceb2 Merge Log#Log() methods 2023-08-15 12:37:52 +02:00
Alexander A. Klimov
c40675110d ConfigObject#OnAllConfigLoaded(): build m_AllParentsAffectingLogging cache
recursively from ConfigObject#GetParentsAffectingLogging().
2023-08-15 12:37:52 +02:00
Alexander A. Klimov
c27c30909f parent_affecting_logging: a config object affects everything functionally depending on it 2023-08-15 12:37:52 +02:00
Alexander A. Klimov
6257627e12 parent_affecting_logging: a config object affects everything applied to it
See the currently supported apply rules.
2023-08-15 12:37:52 +02:00
Alexander A. Klimov
f87b07d5a4 parent_affecting_logging: a group affects everything in it 2023-08-15 12:37:52 +02:00
Alexander A. Klimov
89b3a0ffef parent_affecting_logging: a zone affects everything in it 2023-08-15 12:37:52 +02:00
Alexander A. Klimov
b939a96076 Forbid Zone#endpoints modification
The cluster tree can't be runtime-altered anyway.
2023-08-15 12:37:52 +02:00
Alexander A. Klimov
966a569aa1 Disallow Downtime#config_owner modification
This attribute is used only by ScheduledDowntime anyway
and is a relation declarator such as host_name, service_name.
2023-08-15 12:37:52 +02:00
Alexander A. Klimov
4bf9fe90af Introduce ObjectImpl<ConfigObject>#GetParentsAffectingLogging() 2023-08-15 12:37:52 +02:00
Alexander A. Klimov
94c403dbbd Cache actual Logger#object_filter objects in Logger#m_ObjectFilterCache 2023-08-15 12:37:52 +02:00
Alexander A. Klimov
f94f474b0f Logger#{OnAllConfigLoaded,SetObjectFilter}(): warn on missing objects for 2023-08-15 12:37:52 +02:00
Alexander A. Klimov
c151ce4c32 Introduce Logger#object_filter 2023-08-15 12:37:52 +02:00
Alexander A. Klimov
45c84f6c96 [TODO: REVERT] Test GHA 2023-08-15 12:37:48 +02:00
Alexander Aleksandrovič Klimov
0d5802937b
Merge pull request #9829 from Icinga/probot/sync-changelog/master/cc104f8208351785aba6ee031d92c978d4f5c966
CHANGELOG.md: add v2.13.8
v2.14.0
2023-07-12 11:00:28 +02:00
Alexander A. Klimov
0ef0c7a3fd CHANGELOG.md: add v2.13.8 2023-07-12 08:19:38 +00:00
Alexander Aleksandrovič Klimov
cc104f8208
Icinga 2.14 (#9760) 2023-07-12 10:19:24 +02:00
Alexander Aleksandrovič Klimov
1df14d60d2
Merge pull request #9827 from Icinga/application-m_lastreloadfailed-uint32_t
Application::m_LastReloadFailed: if double isn't always lock free, use uint32_t
2023-07-10 14:14:58 +02:00
Alexander A. Klimov
8f8a6ee2a0 Application::m_LastReloadFailed: if double isn't always lock free, use uint32_t
which will overflow in 2106, not 2038.
This fixes a compile failure on 32-bit Raspbian.
2023-07-10 10:51:02 +02:00
Alexander Aleksandrovič Klimov
2e4af46d46
Merge pull request #9787 from Icinga/OpenSSL30
Windows: bump OpenSSL v1.1 (soon EOL) -> v3.0
2023-07-07 10:17:17 +02:00
Alexander Aleksandrovič Klimov
681f9eed62
Merge pull request #9743 from Icinga/Al2Klimov-patch-5
GHA: Linux: add Fedora 38, Ubuntu 23.04, Debian 12, openSUSE 15.5
2023-07-06 17:26:54 +02:00
Alexander A. Klimov
656d9d439b GHA: add Amazon Linux 2023
which unfortunately seems not to have ccache. 🤷
2023-07-06 14:21:03 +02:00
Alexander Aleksandrovič Klimov
000a776dfb
Built-in check command: ifw-api (#9062) 2023-07-06 14:18:21 +02:00
Julian Brost
26a75f8a6f
Merge pull request #9812 from Icinga/support-elasticsearch-8-0-9251
ElasticsearchWriter: switch to v7+ URL schema to support v8
2023-07-05 10:15:10 +02:00
Alexander Aleksandrovič Klimov
8047c25537
GHA: add Debian and Raspbian 12 2023-07-04 14:49:32 +02:00
Alexander Aleksandrovič Klimov
c8d5c579ce
GHA: add openSUSE and SLES 15.5 2023-07-04 11:33:42 +02:00
Julian Brost
fe13b96226
Merge pull request #9809 from Icinga/reevaluate-and-update-default-tls-cipher-list-9808
Copy and paste global default TLS cipher set from ssl-config.mozilla.org
2023-07-03 19:13:10 +02:00
Alexander A. Klimov
617dda61fb Re-order global default TLS cipher list to prefer AES256 over AES128 2023-07-03 15:36:11 +02:00
Alexander A. Klimov
4c2e59a690 ElasticsearchWriter: switch to v7+ URL schema to support v8
and OpenSearch 2. This breaks the EOL v5 and v6.
2023-07-03 14:43:45 +02:00
Julian Brost
70d6b6e424
Merge pull request #9810 from Icinga/Al2Klimov-patch-8
ElasticsearchWriter#Pause(): call Flush() only once
2023-06-30 17:21:16 +02:00
Alexander Aleksandrovič Klimov
076eb59443
ElasticsearchWriter#Pause(): lock m_DataBufferMutex during Flush()
just to be sure regarding race conditions.
2023-06-30 14:57:18 +02:00
Julian Brost
fdaa96ece1
Merge pull request #9811 from Icinga/allow-dhe-tls-ciphers
Enable built-in OpenSSL DH parameters to allow DHE TLS ciphers
2023-06-30 10:41:32 +02:00
Julian Brost
a2e05f89e8 Enable built-in OpenSSL DH parameters to allow DHE TLS ciphers
Non-ECC DHE ciphers in the `cipher_list` attribute of `ApiListener` (the
default value includes these) had no effect as no DH parameters were available
and therefore the server wouldn't offer these ciphers. OpenSSL provides
built-in DH parameters starting from version 1.1.0, however, these have to be
enables explicitly using the `SSL_CTX_set_dh_auto()` function. This commit does
so and thereby makes it possible to establish a connection to an Icinga 2
server using a DHE cipher.
2023-06-29 12:06:26 +02:00
Alexander Aleksandrovič Klimov
d5e6ecec8a
ElasticsearchWriter#Pause(): call Flush() only once
The first Flush() is redundant and may access m_DataBuffer at the same time as some Flush() in m_WorkQueue (race condition) which isn't joined, yet.
2023-06-29 10:42:12 +02:00
Alexander A. Klimov
2e053b0e06 Copy and paste global default TLS cipher set from ssl-config.mozilla.org
which got more secure by now, but still overlaps with v2.13.x' set.
2023-06-28 14:49:08 +02:00
Julian Brost
a2926b8604
Merge pull request #9794 from Icinga/round-notification-times-begin-end-not-to-crash-go-daemon
IcingaDB::PrepareObject(): round Notification#times.{begin,end} not to crash Go daemon
2023-06-27 17:08:41 +02:00
Alexander A. Klimov
dccb678882 IcingaDB::PrepareObject(): cut off (null) negative Notification#times.{begin,end} not to crash Go daemon
At least our PostgreSQL schema enforces positive values.
2023-06-27 12:58:08 +02:00
Alexander A. Klimov
415b810abf IcingaDB::PrepareObject(): round Notification#times.{begin,end} not to crash Go daemon
The latter expects ints, not floats - not to mention strings.
Luckily Icinga already enforces numeric strings so that we can cast it to number.
2023-06-27 12:53:08 +02:00
Julian Brost
9cf519316e
Merge pull request #9805 from Icinga/checkcommand-timeout-0-crashes-icinga-db-daemon-9804
IcingaDB::PrepareObject(): cut off (0) negative Command#timeout for Redis
2023-06-27 10:45:02 +02:00
Julian Brost
c08d3beeb1
Merge pull request #9785 from Icinga/Al2Klimov-patch-8
Icinga DB: also write ConfigObject#original_attributes into Redis
2023-06-27 10:24:41 +02:00
Julian Brost
bd11bc2eb4
Merge pull request #9793 from Icinga/unmarshal-number-42-5-into-go-struct-field-notification-notification_interval
IcingaDB::PrepareObject(): round Notification#interval and limit it to >=0
2023-06-27 10:12:13 +02:00
Alexander A. Klimov
d641a3c799 IcingaDB::PrepareObject(): cut off (0) negative Command#timeout for Redis
not to crash the Go daemon which expects positive values there.
2023-06-26 15:36:47 +02:00
Julian Brost
5350aa3c72
Merge pull request #9792 from Icinga/icingadb-conversion-of-strings-to-number-types-to-avoid-crashes-9791
IcingaDB::PrepareObject(): convert non-null Checkable#check_timeout to number
2023-06-26 15:03:21 +02:00
Julian Brost
eddd4c7bf7
Merge pull request #9783 from Icinga/restore_attrs
POST /v1/objects: allow array of attrs to undo modifications of
2023-06-20 10:16:40 +02:00
Alexander A. Klimov
273aa6f997 IcingaDB::PrepareObject(): round Notification#interval and limit it to >=0
otherwise, e.g. with -42.5, the Go daemon crashes. It expects uints there.
2023-06-19 12:46:40 +02:00
Alexander A. Klimov
9f08bad395 IcingaDB::PrepareObject(): convert non-null Checkable#check_timeout to number
and, in case of null, fall back to Checkable#check_command.timeout, just like
IcingaDB#SerializeState(). Otherwise the Go daemon crashes. It expects a number.
2023-06-15 12:29:42 +02:00
Alexander A. Klimov
c070e95b03 Windows: bump OpenSSL v1.1 (soon EOL) -> v3.0 2023-06-14 12:03:22 +02:00
Alexander A. Klimov
1587431945 POST /v1/objects: allow array of attrs to undo modifications of 2023-06-13 16:40:33 +02:00