12754 Commits

Author SHA1 Message Date
Julian Brost
9dd210df84 IcingaDB: use XADD MAXLEN instead of custom Lua script for dump signals
The existing Lua script adds a new entry to a stream and then deletes all older
entries. The same can be achieved by using `XADD ... MAXLEN 1`.
2021-05-03 17:21:01 +02:00
Alexander A. Klimov
fa2666fecf JsonEncode(): encode non-[]/{} objects as strings, not null
... to represent function custom vars as such in Icinga DB.
2021-04-30 15:49:52 +02:00
Alexander A. Klimov
f5abec20cf Icinga DB: serialize icinga:config:checkcommand:argument#value and #set_if as expected
I.e. keep the serializations as simple as possible:

null     => null
true     => true
42.0     => 42
"foobar" => foobar
{{42}}   => Object of type 'Function'

(["foobar"] and {"foo"="bar"} can't occur there.)
2021-04-30 15:48:47 +02:00
Noah Hilverling
aca8d063dc Icinga DB: Change redis key prefix to 'icinga:*' 2021-04-27 21:27:46 +02:00
Eric Lippmann
b08b30ee80
Merge pull request #8684 from Icinga/feature/icingadb-signals-for-all-types
IcingaDB: Add dump signals for type dependencies and global keys and change signal pattern
2021-04-27 21:26:52 +02:00
Julian Brost
2d6d87d10f Convert::ToString(double): handle integral values too large for long long correctly
Even if a double represents an integer value, it might not be safe to cast it
to long long as it may overflow the type. Instead just use print the double
value with 0 decimals using std::setprecision.

Before:

    <1> => 18446744073709551616.to_string()
    "-9223372036854775808"

After:

    <1> => 18446744073709551616.to_string()
    "18446744073709551616"
2021-04-27 17:31:50 +02:00
Noah Hilverling
17c8e7a1f7
Merge pull request #8720 from Icinga/feature/xenial
GitHub actions: drop Ubuntu Xenial
2021-04-27 12:33:42 +02:00
Noah Hilverling
1e34aef9fd
Merge pull request #8729 from Icinga/feature/fedora34
GitHub actions: also build on Fedora 34
2021-04-27 12:33:15 +02:00
Noah Hilverling
60412dd991 Icinga DB: Add dump signals for type dependencies and global keys 2021-04-27 12:32:14 +02:00
Alexander Aleksandrovič Klimov
7f5225ecaa
Merge pull request #8706 from Icinga/bugfix/icingadb-endpoint-zone
Icinga DB: dump the correct icinga:config:endpoint#zone_id
2021-04-26 11:31:51 +02:00
Noah Hilverling
52c8444780
Merge pull request #8728 from Icinga/feature/hirsute
GitHub actions: also build on Ubuntu hirsute
2021-04-21 14:44:30 +02:00
Alexander A. Klimov
306a0f476c Ido*Connection#FieldToEscapedString(): support NULL
refs #8727
2021-04-20 19:30:59 +02:00
Alexander A. Klimov
8918b38dea DbConnection#Pause(): also update is_currently_running and process_id
refs #8727
2021-04-20 19:07:20 +02:00
Alexander A. Klimov
3d8586ccec Ido*Connection: extend IsPaused() check where the difference matters
refs #8727
2021-04-20 19:04:49 +02:00
Alexander A. Klimov
92df2ce2ca Deduplicate DbConnection#Disconnect() in #Pause()
refs #8727
2021-04-20 18:42:37 +02:00
Alexander A. Klimov
0d34d8951a Abstract Ido*Connection#Disconnect()
refs #8727
2021-04-20 18:40:49 +02:00
Alexander A. Klimov
fd9bdb798d Deduplicate DbConnection#m_QueryQueue.Join() in #Pause()
refs #8727
2021-04-20 18:40:35 +02:00
Alexander A. Klimov
40c0bfad23 DbConnection#Pause(): call overridden method as last step
Otherwise it marks the object as paused and the other steps become no-ops.

refs #8727
2021-04-20 18:11:52 +02:00
Alexander A. Klimov
a1703cbea5 GitHub actions: also build on Fedora 34 2021-04-20 13:15:46 +02:00
Alexander A. Klimov
46a41887ab GitHub actions: also build on Ubuntu hirsute 2021-04-20 13:13:26 +02:00
Alexander A. Klimov
e3687f358a GitHub actions: drop Ubuntu Xenial 2021-04-16 16:13:26 +02:00
Alexander A. Klimov
e5f4dc5094 GitHub actions: auto-cancel previous jobs for the same PR
https://github.com/marketplace/actions/auto-cancellation-running-action
2021-04-16 13:10:43 +02:00
Julian Brost
8dc069dc24
Merge pull request #8712 from Icinga/feature/avoid-windows-atl-dependency
Avoid dependency on Visual C++ ATL in tests on Windows
2021-04-12 09:37:57 +02:00
Julian Brost
af05a50740 Avoid dependency on Visual C++ ATL in tests on Windows
Better not have dependencies on Visual C++ if you can do without.
2021-04-09 15:28:40 +02:00
Noah Hilverling
08e586fbf0 Notifications: Make sure not to send reminder notification, if problem notification has been suppressed 2021-03-30 15:32:49 +02:00
Alexander Aleksandrovič Klimov
ee705bb110
Merge pull request #8547 from Icinga/bugfix/unable-to-toggle-notifications-from-icingaweb2-8533
Fix runtime config updates not working for objects without zone
2021-03-26 17:18:22 +01:00
Alexander Aleksandrovič Klimov
ca9ce92b69
Merge pull request #8698 from Icinga/feature/icingadb-cache-environment-id
Icinga DB: cache environment ID instead of recomputing it every time
2021-03-26 17:16:42 +01:00
Alexander Aleksandrovič Klimov
0ee93754ee
Merge pull request #8691 from Icinga/bugfix/retry-rename-on-windows
Retry file rename operations on Windows for some errors
2021-03-26 17:16:25 +01:00
Alexander Aleksandrovič Klimov
65a77d4955
Merge pull request #8702 from Icinga/bugfix/missing-iostream-include
Add missing #include <iostream>
2021-03-26 17:16:01 +01:00
Alexander A. Klimov
7dcf48f707 Icinga DB: dump the correct icinga:config:endpoint#zone_id 2021-03-26 13:53:31 +01:00
Julian Brost
180132806f
Merge pull request #8696 from Icinga/feature/improve-redisconnection-write-performance
RedisConnection::WriteRESP: Use one asio::async_write instead of many
2021-03-26 12:36:44 +01:00
Julian Brost
8813b74c9f
Merge pull request #8693 from Icinga/bugfix/stringbuilder-malloc
PackObject(): avoid one malloc()
2021-03-25 18:02:12 +01:00
Julian Brost
b34818d3fc Add missing #include <iostream>
Fixes the following build error:

    /home/jbrost/dev/icinga2/lib/base/stdiostream.cpp: In member function ‘virtual size_t icinga::StdioStream::Read(void*, size_t, bool)’:
    /home/jbrost/dev/icinga2/lib/base/stdiostream.cpp:28:15: error: invalid use of incomplete type ‘std::iostream’ {aka ‘class std::basic_iostream<char>’}
       28 |  m_InnerStream->read(static_cast<char *>(buffer), size);
          |               ^~
2021-03-25 11:30:02 +01:00
Julian Brost
e1c6e53458
Merge pull request #8697 from Icinga/bugfix/json-int
JsonEncode(): serialize integers w/o trailing .0
2021-03-25 11:12:53 +01:00
Noah Hilverling
5c8b32618c RedisConnection::WriteRESP: Use one asio::async_write instead of many 2021-03-24 13:14:01 +01:00
XnS
e4ca82f7cd upstream fixed their typo from stc to sct 2021-03-24 10:21:29 +01:00
Alexander A. Klimov
9531de3835 JsonEncode(): serialize integers w/o trailing .0
... so Icinga DB can parse them as integers.
2021-03-23 17:52:37 +01:00
Julian Brost
41f7124692 Icinga DB: cache environment ID instead of recomputing it every time 2021-03-23 17:09:32 +01:00
Alexander A. Klimov
070b4f9d06 Drop StringBuilder 2021-03-23 13:13:47 +01:00
Alexander A. Klimov
f89f35c798 PackObject(): avoid one malloc()
... for performance reasons.
2021-03-23 13:13:47 +01:00
Julian Brost
05c8e7f36f Retry file rename operations on Windows for some errors 2021-03-23 09:54:01 +01:00
Alexander Aleksandrovič Klimov
9830dc194b
Merge pull request #8688 from Icinga/feature/sha1-without-sprintf
Speed up SHA1 function by removing calls to sprintf
2021-03-22 18:46:08 +01: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
Julian Brost
2a2229a49b Don't use sprintf for SHA1 to hex conversion 2021-03-19 10:31:01 +01:00
Julian Brost
49cfda833e Add tests for SHA1 function 2021-03-19 10:31:01 +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
160d0ea371
Merge pull request #8676 from Icinga/bugfix/icingadb-delta-segv
IcingaDB#UpdateAllConfigObjects(): don't modify map concurrently
2021-03-09 09:12:03 +01:00
Alexander A. Klimov
31dacb8390 IcingaDB#UpdateAllConfigObjects(): don't modify map concurrently 2021-03-08 18:11:24 +01:00