27 Commits

Author SHA1 Message Date
Noah Hilverling
f4145579ca Add missing include 2019-11-02 14:00:23 +01:00
Jean Flach
3c651b4c99 Fix icingadb specific type names 2019-11-02 14:00:23 +01:00
Jean Flach
6aaa35a0a6 Rewrite the RedisWriter
There should be more atomic commits but the whole thing was a mess. This
commit changes the synchrounous Redis connection into an asynchronous
one in its own class RedisConnection.
The RedisConnection uses a Workqueue with commands to fire against the
Redis server. When a response is required a callback must be supplied,
refer to RedisWriter::RedisGet().

Known Issues:
- Authentication has no error handling and can break the connection
- Error handling in general is iffy due to the nature of the async redis
connection
- Getting a reply out of RedisConnection is not trivial
- HandleRW... sunt dracones
2019-11-02 14:00:23 +01:00
Jean Flach
315e9ffad8 Stringify flat values 2019-11-02 14:00:23 +01:00
Michael Friedrich
de99d68351 Only use the type for commands in the object identifier checksum 2019-11-02 14:00:23 +01:00
Jean Flach
c70316a835 Sync ranges_checksum for timeperiods
Signed-off-by: Michael Friedrich <michael.friedrich@icinga.com>
2019-11-02 14:00:23 +01:00
Alexander A. Klimov
3e0a2f59e2 RedisWriter: make config object identifiers type-aware
SHA1(PackObject([Environment, Type, __name]))
2019-11-02 14:00:23 +01:00
Michael Friedrich
3ce8f5599e Fix missing object locks 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
413e351805 RedisWriter: dump custom vars verbosely 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
724ce1f172 RedisWriter: dump also environment_checksum (per config object) 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
4eee9572ab RedisWriter: identify config objects by SHA1(PackObject([Environment, __name])) 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
3ea3b2ba27 RedisWriter: checksum package, source_location and templates separately in metadata_checksum 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
dcdf6b8a44 RedisWriter: Exclude explicitly checksummed properties from properties_checksum 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
dc73db01b8 RedisWriter: use one checksum algo for everything 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
b32b81d957 RedisWriter: Pack objects consistently for hashing 2019-11-02 14:00:23 +01:00
Michael Friedrich
782486ce9c Ensure that arrays are sorted for checksum calculation 2019-11-02 14:00:23 +01:00
Michael Friedrich
33a00e4b5a Move UpdateObjectAttrs into the objects scope 2019-11-02 14:00:23 +01:00
Gunnar Beutner
06211c3ac7 Implement support for the new config/state schema
fixes #5671
2019-11-02 14:00:23 +01:00
Gunnar Beutner
b6c86f98ec Clean up the code a bit 2019-11-02 14:00:23 +01:00
Gunnar Beutner
b75e21a998 Redis support (WIP) 2019-11-02 14:00:23 +01:00
Michael Friedrich
6397fedc3d Remove experimental redis feature before 2.7 release 2017-06-20 11:52:24 +02:00
Michael Friedrich
17615ac444 Redis: Dump host and service state events
fixes #5163
2017-04-12 16:58:08 +02:00
Michael Friedrich
3310cc30ae Fix hash value for empty custom attributes
refs #4991
2017-03-29 10:17:03 +02:00
Michael Friedrich
f29a82bcfe Add properties and vars config checksums
refs #4991
2017-03-29 10:17:03 +02:00
Gunnar Beutner
c64d296edb Make sure to use pretty-printed checksums in JSON blobs; remove semicolons
refs #4991
2017-03-29 10:17:03 +02:00
Gunnar Beutner
2d9be77260 Clean up the code a bit
refs #4991
2017-03-29 10:17:03 +02:00
Michael Friedrich
0b466aabc0 Start working on checksum config dump
refs #4991
2017-03-29 10:17:03 +02:00