11499 Commits

Author SHA1 Message Date
Alexander A. Klimov
21a900cd9d RedisWriter#SerializeState(): serialize also Checkable#next_update
refs #54
2019-11-02 14:00:24 +01:00
Alexander A. Klimov
9a3ab8c547 Adjust IoEngine usage 2019-11-02 14:00:24 +01:00
Noah Hilverling
9f077e8216 RedisWriter: Streamline JSON key names 2019-11-02 14:00:24 +01:00
Noah Hilverling
1566c4f9ac Fix runtime update of state not being published 2019-11-02 14:00:24 +01:00
Noah Hilverling
07515d4446 Fix RedisWriter not clearing "icinga:config:state:*" keys on initial dump 2019-11-02 14:00:24 +01:00
Alexander A. Klimov
b0cd306b61 RedisWriter#InsertObjectDependencies(): PUBLISH icinga:config:update ... for all dependencies 2019-11-02 14:00:24 +01:00
Noah Hilverling
322f3fbb0d RedisWriter: Fix state sync prefix 2019-11-02 14:00:24 +01:00
Alexander A. Klimov
fe49141490 RedisWriter#SendStatusUpdate(): ensure valid UTF-8 output 2019-11-02 14:00:24 +01:00
Alexander A. Klimov
d9ff921934 RedisWriter: publish the current config dump state via icinga:dump
refs #53
2019-11-02 14:00:24 +01:00
Alexander A. Klimov
1d3109458d RedisConnection: merge write queues
refs #50
2019-11-02 14:00:24 +01:00
Alexander A. Klimov
3b61b3d37a RedisConnection: log messages
refs #50
2019-11-02 14:00:24 +01:00
Alexander A. Klimov
430c769371 RedisConnection: handle errors as expected
refs #50
2019-11-02 14:00:24 +01:00
Alexander A. Klimov
06d88477bd RedisConnection: forward I/O errors to async-ly waiting requestors
refs #50
2019-11-02 14:00:24 +01:00
Alexander A. Klimov
fa5c9ac985 RedisConnection: don't read the response before the request has been written
refs #50
2019-11-02 14:00:24 +01:00
Alexander A. Klimov
132b2dcb77 Get rid of hiredis 2019-11-02 14:00:24 +01:00
Alexander A. Klimov
a5971df039 RedisConnection: I/O the Redis protocol by itself (PoC) 2019-11-02 14:00:24 +01:00
Alexander A. Klimov
752c5998df Prefer vector#emplace_back over #push_back 2019-11-02 14:00:24 +01:00
Alexander A. Klimov
e60ca9bca9 RedisWriter#InsertObjectDependencies(): don't change config objects' attributes in-place
refs #52
2019-11-02 14:00:24 +01:00
Noah Hilverling
d5d3f3e60c Remove unused function CollectScalarVars() 2019-11-02 14:00:24 +01:00
Alexander A. Klimov
53d04cc4e8 RedisWriter#RedisGet(): std::move() query
refs #49
2019-11-02 14:00:24 +01:00
Alexander A. Klimov
fb98d3edef RedisConnection#ExecuteQuer{y,ies}(): std::move() queries
refs #49
2019-11-02 14:00:24 +01:00
Alexander A. Klimov
bb333b535b RedisConnection#ExecuteQueries(): fire all queries at once
refs #49
2019-11-02 14:00:23 +01:00
Alexander A. Klimov
74eccf60f2 Fix memory leak 2019-11-02 14:00:23 +01:00
Noah Hilverling
11d5415193 RedisWriter: Add depth attribute to zone 2019-11-02 14:00:23 +01:00
Noah Hilverling
8421a98a2c Fix command arguments and envvars 2019-11-02 14:00:23 +01:00
Noah Hilverling
9308acfcd5 RedisWriter: Json encode command field command 2019-11-02 14:00:23 +01:00
Noah Hilverling
e41bcbc81c Do not store timeperiod range in separate key (timerange) 2019-11-02 14:00:23 +01:00
Noah Hilverling
74b6839704 Add JsonEncode to customvar value 2019-11-02 14:00:23 +01:00
Noah Hilverling
fc718d99a7 Rename :overwrite: keys to :override: 2019-11-02 14:00:23 +01:00
Noah Hilverling
0bfdaccc7a Split up redis arrays into single entries 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
6fd6f74b0f Fix missing ( ) 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
07823c4b90 RedisWriter#CreateConfigUpdate(): don't require prepared commands 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
1d126b66e9 RedisWriter#InsertObjectDependencies(): reduce memory allocations 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
def3c7df32 RedisWriter#CreateConfigUpdate(): reduce memory allocations 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
c24092a64e RedisWriter#GenerateHmsetStatements(): reduce memory allocations 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
23448b0322 Make RedisWriter#ChunkObjects()'s result type more explicit 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
0534141aaf Remove redundand vector#reserve() 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
7d0fc91c1b RedisWriter#GetTypeObjectKeys(): move() the result 2019-11-02 14:00:23 +01:00
Noah Hilverling
13295acb72 RedisWriter: Write objects of same type in parallel 2019-11-02 14:00:23 +01:00
Noah Hilverling
68c88b3edf Implement new Redis schema
WIP


WIP
2019-11-02 14:00:23 +01:00
Alexander A. Klimov
1dcec6e77a RedisConnection#SendMessageInternal(): lock only while actually using shared objects 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
50594ec1c8 Replace std::bind() with lambdas
refs #48
2019-11-02 14:00:23 +01:00
Noah Hilverling
a6ec60a992 RedisWriter: Use IcingaApplication environment 2019-11-02 14:00:23 +01:00
Noah Hilverling
c5b0884e44 RedisWriter: Heartbeat should occur every second 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
f601ba51e0 Revert "Eventqueue: Remove unused code"
This reverts commit a7873da89dd835802fa957ebeefa7cd403d519a9.
2019-11-02 14:00:23 +01:00
Jean Flach
23099904c0 Publish when config_dump_in progress 2019-11-02 14:00:23 +01:00
Jean Flach
7890c37357 Revert "Merge branch 'bugfix/execute-quieries' into 'feature/redis'"
This reverts commit f6c1fc3b43b1895eb87c1657f3e3355bfe9ddaac, reversing
changes made to ad1d448bcdead76a2bd45171a6efcd700b1c23d0.
2019-11-02 14:00:23 +01:00
Jean Flach
0ad008f465 Handle transaction vectors better 2019-11-02 14:00:23 +01:00
Jean Flach
b95e39952e Use transaction for config dump
This wraps the config dump HMSETs into a transaction.
2019-11-02 14:00:23 +01:00
Jean Flach
d2dc0047a3 Lock before queueing multiple queries 2019-11-02 14:00:23 +01:00