Commit Graph

5323 Commits

Author SHA1 Message Date
Alexander A. Klimov 10c1d0e4c8 IcingaDB: don't always set Comment#expire_time 2019-11-27 15:58:19 +01:00
Noah Hilverling ce4409d1d2
Merge pull request #7657 from Icinga/feature/icingadb-host_id
IcingaDB: always set *#host_id
2019-11-27 14:38:22 +01:00
Noah Hilverling 0652aa0a6f
Merge pull request #7652 from Icinga/bugfix/icingadb-output-null
IcingaDB#SendStatusUpdate(): don't always set icinga:history:stream:state#{,long_}output
2019-11-27 14:29:26 +01:00
Alexander A. Klimov ba6550dc58 IcingaDB: get rid of icinga:{subscription,event}* 2019-11-27 11:42:09 +01:00
Noah Hilverling 473f932483
Merge pull request #7659 from Icinga/bugfix/notification_history-send_time
Notification_history: Rename event_time to send_time
2019-11-27 10:44:57 +01:00
Michael Friedrich aee80d7f24
Merge pull request #7654 from Icinga/bugfix/apilistener-const-sslcontext
Fix TLS context not being updated on signed certificate messages on agents
2019-11-27 09:18:16 +01:00
Alexander A. Klimov 0671d19e12 Notification_history: Rename event_time to send_time 2019-11-26 18:13:31 +01:00
Alexander A. Klimov 1bee5425b9 IcingaDB: always set icinga:history:stream:*#host_id 2019-11-26 17:36:14 +01:00
Noah Hilverling ed1cede0a7
Merge pull request #7646 from Icinga/feature/remove-comment-author
/v1/actions/remove-comment: let users specify themselves
2019-11-26 16:07:09 +01:00
Noah Hilverling 8a14f0e6f7
Merge pull request #7643 from Icinga/bugfix/icingadb-recover
IcingaDB: handle Redis restarts
2019-11-26 16:05:04 +01:00
Noah Hilverling 6508e880b4
Merge pull request #7655 from Icinga/bugfix/commenttype
CommentType: remove unused variants
2019-11-26 15:47:45 +01:00
Noah Hilverling a98c5e965c
Merge pull request #7645 from Icinga/feature/remove-downtime-author
/v1/actions/remove-downtime: let users specify themselves
2019-11-26 15:41:44 +01:00
Alexander A. Klimov 95f13d864f IcingaDB#SendStatusUpdate(): don't always set icinga:history:stream:state#{,long_}output 2019-11-26 14:28:14 +01:00
Alexander A. Klimov e522db20b1 RedisConnection#Connect(): don't give up 2019-11-26 14:16:39 +01:00
Alexander A. Klimov dcfc494d4d CommentType: remove unused variants 2019-11-26 11:29:04 +01:00
Michael Insel 8431ea52ee Make SSL context const again
Turns out that the switch to the class member variable inside the lambda
expression is sufficient to fix the issue.
2019-11-25 23:42:32 +01:00
Michael Insel 016a6c3f25 Fix ApiListener const SSL context
This makes the SSL context in ApiListener::SpawnCoroutine non-const to
address an issue when an agent recieves an signed certificate from the
master and tries to update the SSL context. This also uses the class
member variable which is captured by `this` in the lamda expression.

fixes #7650
2019-11-25 22:21:09 +01:00
Alexander A. Klimov 407d6c0219 IcingaDB#SendStatusUpdate(): avoid CheckResult::Ptr(nullptr)->GetCheckSource() 2019-11-25 17:15:47 +01:00
Alexander A. Klimov 80bf316e7b /v1/actions/remove-acknowledgement: let users specify themselves 2019-11-21 16:29:26 +01:00
Alexander A. Klimov d84efecb62 /v1/actions/remove-comment: let users specify themselves 2019-11-21 15:53:40 +01:00
Alexander A. Klimov a361bf716e /v1/actions/remove-downtime: let users specify themselves 2019-11-21 15:48:55 +01:00
Alexander A. Klimov e7ce71095a IcingaDB: handle Redis restarts 2019-11-21 12:55:01 +01:00
Noah Hilverling c8935bf14f IcingaDB: Update Redis port to use Icinga-Redis 2019-11-21 09:59:21 +01:00
Michael Friedrich 1a503b554b
Merge pull request #7357 from Ant1x/feature/opentsdb-tags
OpenTsdbWriter - Custom Tag Support
2019-11-15 14:52:49 +01:00
Michael Friedrich 88c1a197b4
Merge pull request #7567 from Icinga/bugfix/apt-dist-upgrade-7558
MacroProcessor::ResolveArguments(): skip null argument values
2019-11-15 14:43:33 +01:00
Michael Friedrich 87248f703c
Merge pull request #7632 from Icinga/feature/dsl-get-templates
DSL: Add get_template{,s}
2019-11-15 14:42:48 +01:00
Alexander A. Klimov 5c347ef7bd DSL: introduce x?y:z 2019-11-15 13:38:01 +01:00
Michael Friedrich b3eb9c6a07
Merge pull request #7439 from Icinga/feature/timeperiod-seconds
LegacyTimePeriod: support specifying seconds
2019-11-15 13:02:05 +01:00
Michael Friedrich b1787883f7
Merge pull request #7535 from tigercomputing/Icinga/feature/config-stage-activate-parameter
API /v1/config/stages 'activate' parameter
2019-11-15 12:58:03 +01:00
Michael Friedrich 38080405df
Merge pull request #7528 from Icinga/bugfix/api-put-error-handling
API: Handle permission exceptions soon enough, returning 404
2019-11-15 11:53:59 +01:00
Noah Hilverling b6db34747a IcingaDB: Remove redundant last_{hard/soft}_state 2019-11-14 10:57:11 +01:00
Noah Hilverling fa892b613d
Merge pull request #7608 from Icinga/bugfix/icinga-history-stream-downtime
IcingaDB: avoid duplicates in icinga:history:stream:downtime
2019-11-12 11:40:45 +01:00
Noah Hilverling 4ea236aa64 IcingaDB: Fix state on unchecked objects 2019-11-11 15:28:16 +01:00
Michael Friedrich 1cda421bad DSL: Add get_template{,s}
Signed-off-by: Michael Friedrich <michael.friedrich@icinga.com>
2019-11-08 11:13:26 +01:00
Alexander A. Klimov 1e2739aed6 IcingaDB::NotificationSentToAllUsersHandler(): copy set once, not N*(1+M) times 2019-11-07 17:23:48 +01:00
Noah Hilverling 42f959874e IcingaDB: Add user notification history 2019-11-07 15:57:31 +01:00
Alexander A. Klimov 592872a6c3 IcingaDB: avoid duplicates in icinga:history:stream:downtime 2019-11-06 10:41:54 +01:00
Alexander A. Klimov 4e8584ee9e IcingaDB: correct icinga:history:stream:state#{,last_}soft_state and icinga:history:stream:notification#state for hosts 2019-11-04 16:40:04 +01:00
Alexander A. Klimov 6c7a9eb651 IcingaDB#SendStatusUpdate(): add icinga:history:stream:state#previous_soft_state 2019-11-04 12:59:57 +01:00
Michael Friedrich 9d9804d50a Styleguide for IcingaDB 2019-11-02 18:01:31 +01:00
Michael Friedrich 631a4ee9fa Fix header guards 2019-11-02 17:24:34 +01:00
Michael Friedrich 904f2ce7d4 IcingaDB: Silence some developer logging 2019-11-02 15:47:51 +01:00
Michael Friedrich 36d18ed23a IcingaDB: Log where we are connecting to 2019-11-02 15:47:46 +01:00
Michael Friedrich 9235246985 Fix rebase against master branch 2019-11-02 14:18:20 +01:00
Michael Friedrich 61d9130dd0 Fix Copyright headers 2019-11-02 14:00:24 +01:00
Michael Friedrich f9b3e88bbb Fix non-unity builds 2019-11-02 14:00:24 +01:00
Noah Hilverling b65e5f5547 IcingaDB/Comment: Add is_sticky 2019-11-02 14:00:24 +01:00
Alexander A. Klimov 071a1489aa PUBLISH to icinga:stats with high priority
refs #57
2019-11-02 14:00:24 +01:00
Alexander A. Klimov 67909210a6 RedisConnection: introduce high-priority queue
refs #57
2019-11-02 14:00:24 +01:00
Noah Hilverling 91ecfc35cf Ensure that execution_time never goes below 0 2019-11-02 14:00:24 +01:00
Noah Hilverling 4e43c766ca Improve CommentHistory 2019-11-02 14:00:24 +01:00
Noah Hilverling 6a7e83a5e6 Improve Downtime & DowntimeHistory 2019-11-02 14:00:24 +01:00
Noah Hilverling 0aa885573d Fix notification history not setting text if notification is triggered by checkresult 2019-11-02 14:00:24 +01:00
Noah Hilverling 4a43dd1ce6 Rename event_type state to state_change 2019-11-02 14:00:24 +01:00
Noah Hilverling 5eb1c42a28 History: Use same names for event_time and event_type 2019-11-02 14:00:24 +01:00
Alexander Aleksandrovič Klimov 04dfbb07ce Rename ICINGA2_WITH_REDIS to ICINGA2_WITH_ICINGADB 2019-11-02 14:00:24 +01:00
Alexander Aleksandrovič Klimov 13ab7eb609 Rename redis to icingadb 2019-11-02 14:00:24 +01:00
Alexander Aleksandrovič Klimov f51454af65 git ls-files -z |xargs -0 perl -pi -e 's/RedisWriter/IcingaDB/g' 2019-11-02 14:00:24 +01:00
Alexander Aleksandrovič Klimov c7e9997294 RedisWriter#SerializeState(): don't stringify previous_hard_state 2019-11-02 14:00:24 +01:00
Alexander A. Klimov 617a4a2e92 RedisWriter: drop icinga:history:stream:notification#{,long_}output and add #{author,text} 2019-11-02 14:00:24 +01:00
Alexander Aleksandrovič Klimov badcb5662c RedisWriter: add icinga:state:stream:*#previous_hard_state 2019-11-02 14:00:24 +01:00
Alexander A. Klimov 746a48e2ca RedisWriter: add icinga:history:stream:{state,notification}#previous_hard_state 2019-11-02 14:00:24 +01:00
Alexander A. Klimov 4a7a8cb6f8 RedisWriter: add icinga:history:stream:*#endpoint_id 2019-11-02 14:00:24 +01:00
Alexander A. Klimov 8613365f1c RedisWriter: add icinga:{state:stream:*,history:stream:*:state}#check_source 2019-11-02 14:00:24 +01:00
Alexander A. Klimov f314489d23 Merge host and service histories 2019-11-02 14:00:24 +01:00
Alexander A. Klimov e6043e908a RedisWriter: adjust icinga:history:stream:*:flapping schema 2019-11-02 14:00:24 +01:00
Alexander A. Klimov 0510e0cad0 Replace duration with flexible_duration 2019-11-02 14:00:24 +01:00
Alexander A. Klimov c89f354a84 Replace is_fixed with is_flexible 2019-11-02 14:00:24 +01:00
Alexander A. Klimov 9d0e402d92 RedisWriter#SendStartedDowntime(): send also a config update 2019-11-02 14:00:24 +01:00
Alexander A. Klimov 747521fa84 RedisWriter#SendStatusUpdate(): handle pending checkable 2019-11-02 14:00:24 +01:00
Alexander A. Klimov 82898b31ae RedisWriter: fix missing m_Rcon!=null checks 2019-11-02 14:00:24 +01:00
Noah Hilverling 52fb723d91 RedisWriter: Do not split up comments/downtimes into host/service keys 2019-11-02 14:00:24 +01:00
Noah Hilverling 846f327054 RedisWriter: Use TimestampToMilliseconds() instead of multiplying inline 2019-11-02 14:00:24 +01:00
Noah Hilverling 042ed8b9e9 RedisWriter: Add downtime schedule history event 2019-11-02 14:00:24 +01:00
Noah Hilverling 6f0822cbe8 RedisWriter: Use ms instead of seconds for timestamps 2019-11-02 14:00:24 +01:00
Noah Hilverling 5edf3623c5 RedisWriter-History: Add event_id and event_type to history entries 2019-11-02 14:00:24 +01:00
Alexander A. Klimov fb6d31fcde RedisWriter: populate icinga:history:stream:*:flapping 2019-11-02 14:00:24 +01:00
Alexander A. Klimov 81873248e1 RedisWriter: populate icinga:history:stream:*:comment 2019-11-02 14:00:24 +01:00
Alexander A. Klimov 6c536c97e8 RedisWriter: populate icinga:history:stream:*:downtime 2019-11-02 14:00:24 +01:00
Alexander A. Klimov feeae9d518 RedisWriter: populate icinga:history:stream:*:state 2019-11-02 14:00:24 +01:00
Alexander A. Klimov d0165773d2 RedisWriter: populate icinga:history:stream:*:notification 2019-11-02 14:00:24 +01:00
Noah Hilverling 33bdc8b5c3 RedisWriter: Rename check_period to check_timeperiod 2019-11-02 14:00:24 +01:00
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 a7873da89d.
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
Jean Flach 03a61347cd Fix Service's name 2019-11-02 14:00:23 +01:00
Jean Flach 037357aea5 Add severity 2019-11-02 14:00:23 +01:00
Jean Flach 57b9fc94c3 Remove is_active_check 2019-11-02 14:00:23 +01:00
Jean Flach 6705158d31 Remove unused variable 2019-11-02 14:00:23 +01:00
Jean Flach accadb5dfb Only dump relevant object types 2019-11-02 14:00:23 +01:00
Jean Flach dc5dc46364 Use ReflectionType instead of dynamic casts 2019-11-02 14:00:23 +01:00
Jean Flach 5cfd3c1ab0 Rewrite config dump 2019-11-02 14:00:23 +01:00
Jean Flach e90fb43b91 Fix empty perf data strings 2019-11-02 14:00:23 +01:00
Jean Flach 446796dadb Fix output and longOutput 2019-11-02 14:00:23 +01:00
Jean Flach 50aa0eb1d3 Fix command line string 2019-11-02 14:00:23 +01:00
Jean Flach 553f6f6ba9 Change commandline and performancedata 2019-11-02 14:00:23 +01:00
Noah Hilverling 3439ea755f Fix that state does not get synced on acknowledgement removal 2019-11-02 14:00:23 +01:00
Noah Hilverling 992727707d Redis: Encode check command 2019-11-02 14:00:23 +01:00
Jean Flach 08bfbbc070 Encode perfdata 2019-11-02 14:00:23 +01:00
Jean Flach 933de15c36 Remove TODO 2019-11-02 14:00:23 +01:00
Noah Hilverling 3fb3e8bb6d Remove dev debug log 2019-11-02 14:00:23 +01:00
Noah Hilverling 2202bde56c Add downtime handlers to state sync 2019-11-02 14:00:23 +01:00
Jean Flach af05a354fa Stop json-encoding everything 2019-11-02 14:00:23 +01:00
Jean Flach d104eb4ac1 Fix timeout 2019-11-02 14:00:23 +01:00
Jean Flach 6ce4612cd7 Export last hard/soft state dummies 2019-11-02 14:00:23 +01:00
Jean Flach e2caa47f18 Fix is_handled 2019-11-02 14:00:23 +01:00
Noah Hilverling 328adf1fc4 Add host/service state sync to acknowledgement 2019-11-02 14:00:23 +01:00
Jean Flach 916bfd20fb Update state sync 2019-11-02 14:00:23 +01:00
Noah Hilverling 9aec47efb3 Use OnStateChange instead of OnStateChanged 2019-11-02 14:00:23 +01:00
Jean Flach 02ecc3e445 Add additional fields 2019-11-02 14:00:23 +01:00
Jean Flach a7e615fbc0 Fix one unchecked checkresult access 2019-11-02 14:00:23 +01:00
Jean Flach 9b9cf6d5b0 Update sate sync
fix a crash, possibly two
2019-11-02 14:00:23 +01:00
Jean Flach d8737b238a Update state sync 2019-11-02 14:00:23 +01:00
Jean Flach 223ca6c6a0 Clean up code 2019-11-02 14:00:23 +01:00
Jean Flach f68ad634b2 Rename state stream keys 2019-11-02 14:00:23 +01:00
Jean Flach 3def496b62 Update state sync
Makes state serialization its own function to be used also when writing
out the initial state
2019-11-02 14:00:23 +01:00
Jean Flach fcb3752973 Remove debug log message 2019-11-02 14:00:23 +01:00
Jean Flach 3da4cef1e6 Update state sync 2019-11-02 14:00:23 +01:00
Jean Flach 2215e9e16f Implement minimal state sync 2019-11-02 14:00:23 +01:00
Jean Flach c825a3f4b5 Remove unnecessary parameter 2019-11-02 14:00:23 +01:00
Jean Flach 5f64d809d7 Check if RedisConnection exists before checking connection 2019-11-02 14:00:23 +01:00
Jean Flach a056e14834 Fix another RedisWriter crash
Same as the other fix, this makes us lose events
2019-11-02 14:00:23 +01:00
Jean Flach eec1928a0b Fix segfault on startup 2019-11-02 14:00:23 +01:00
Jean Flach 67208c4f07 Handle runtime config updates
fixes #37
2019-11-02 14:00:23 +01:00
Noah Hilverling f4145579ca Add missing include 2019-11-02 14:00:23 +01:00
Jean Flach 47905a25e8 Improve event payload
Adds host/service_id Acknowledgement events. AcknowledgementSet events also send the comment_id.

fixes #29
2019-11-02 14:00:23 +01:00
Jean Flach e889de966e Publish dump event
fixes #34
2019-11-02 14:00:23 +01:00
Jean Flach 5e3e114a16 Handle icingadb- / icinga-type mismatches
fixes servicedowntimes being written to hostdowntimes (and vice versa)
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 77ce8f67bd Add downtimes sync 2019-11-02 14:00:23 +01:00
Jean Flach 36588ce31a Code formatting 2019-11-02 14:00:23 +01:00
Jean Flach 1d21626b30 Code style 2019-11-02 14:00:23 +01:00
Jean Flach 0634e27d6d Add new connection handling 2019-11-02 14:00:23 +01:00
Jean Flach f89e649871 Add recursive callback to manage auth and db select 2019-11-02 14:00:23 +01:00
Jean Flach b59189b8d3 Simplify vector usage
Also leak less memory ;)
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 64515b81e3 Add disconnect 2019-11-02 14:00:23 +01:00
Jean Flach d96dcf869e Add RedisConnection object
This works using an async Redis connection. Multiple connections are not
possible. The connection is fed from a workqueue filled with
RedisCommands in the way of a vector of strings.
2019-11-02 14:00:23 +01:00
Jean Flach 0456298c58 Reformat code
CLion is now pretty close at what we use with Icinga, other changes do
make sense to me.
2019-11-02 14:00:23 +01:00
Jean Flach 8f411c7475 Support comments for icingadb
This splits comments into Host and Service comments
2019-11-02 14:00:23 +01:00
Alexander A. Klimov ed3db5b491 Fix elephant oversight 2019-11-02 14:00:23 +01:00
Jean Flach 315e9ffad8 Stringify flat values 2019-11-02 14:00:23 +01:00
Alexander A. Klimov d0a45521a9 Unify schema structure
refs #15
2019-11-02 14:00:23 +01:00
Jean Flach c4962559ff Remove parent_checksum
parent_checksum is always the first element in all_parents_checksums
2019-11-02 14:00:23 +01:00
Jean Flach a47e16fb5b Rename command_checksums 2019-11-02 14:00:23 +01:00
Jean Flach 65c38a3958 ignore user/usergroup for property checksum 2019-11-02 14:00:23 +01:00
Alexander A. Klimov 3a8cf8d74d RedisWriter: dump missing checksums for notifications
refs #18
2019-11-02 14:00:23 +01:00
Alexander A. Klimov 4d40293217 RedisWriter: dump all_parents_checksum and all_parents_checksums for zones 2019-11-02 14:00:23 +01:00
Alexander A. Klimov cd05240624 RedisWriter: dump period_checksum for users 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
Alexander A. Klimov b04b1d954e RedisWriter: compute checksums of command arguments and env vars
refs #14
2019-11-02 14:00:23 +01:00