Alexander A. Klimov
fd2e068de6
Sync timeperiods as well
2021-03-22 14:07:52 +01:00
Alexander A. Klimov
7ab45082ad
Sync notifications as well
2021-03-22 14:06:51 +01:00
Alexander A. Klimov
3ec88ac53d
Sync comments as well
2021-03-22 14:04:58 +01:00
Alexander A. Klimov
b90bc86bb4
Sync zones as well
2021-03-22 14:03:46 +01:00
Eric Lippmann
49d50a779e
Merge pull request #12 from lippserd/feature/downtime
...
Sync downtimes as well
2021-03-22 13:37:35 +01:00
Eric Lippmann
dd1fad4b13
Merge pull request #10 from lippserd/feature/command
...
Sync commands as well
2021-03-22 13:36:46 +01:00
Eric Lippmann
9f936eba95
Merge pull request #7 from lippserd/feature/groups
...
Sync groups as well
2021-03-22 13:36:12 +01:00
Alexander A. Klimov
13c672ce6e
Sync downtimes as well
2021-03-18 13:56:07 +01:00
Alexander A. Klimov
a56d312c81
Sync commands as well
2021-03-18 13:51:33 +01:00
Alexander A. Klimov
248e5ed0a8
Introduce Int
2021-03-18 13:50:55 +01:00
Alexander A. Klimov
e91f2a7aa5
Introduce String
2021-03-18 13:50:55 +01:00
Eric Lippmann
e4539d90fc
Merge pull request #8 from lippserd/feature/endpoint
...
Sync endpoints as well
2021-03-18 13:42:20 +01:00
Alexander A. Klimov
71d1b4a9f4
Sync endpoints as well
2021-03-18 12:32:09 +01:00
Alexander A. Klimov
055e63e272
Sync groups as well
2021-03-18 12:31:11 +01:00
Alexander A. Klimov
0dd5e54b14
Sync users as well
2021-03-18 12:19:23 +01:00
Alexander A. Klimov
3a66f0372c
Introduce CustomvarMeta
2021-03-18 12:19:20 +01:00
Alexander A. Klimov
66d155cdb3
Group related types
2021-03-18 12:15:12 +01:00
Eric Lippmann
c2fe0dfe7c
Merge pull request #16 from lippserd/feature/channels
...
Make channels more specific
2021-03-17 10:03:24 +01:00
Eric Lippmann
f9648b00c5
Merge pull request #14 from lippserd/feature/url
...
Sync URLs as well
2021-03-17 10:02:20 +01:00
Eric Lippmann
c5f1b88c0c
Merge pull request #4 from lippserd/feature/initer
...
Make NameCiMeta an Initer
2021-03-17 09:56:10 +01:00
Eric Lippmann
dfd904b064
Merge pull request #1 from lippserd/ha
...
HA improvements
2021-03-16 10:12:23 +01:00
Alexander A. Klimov
4dffbad76e
Make channels more specific
2021-03-15 16:34:58 +01:00
Alexander A. Klimov
aa3dfc2afc
Sync URLs as well
2021-03-12 16:44:19 +01:00
Alexander A. Klimov
02b15e01a3
Host: re-use Checkable
2021-03-12 10:59:40 +01:00
Alexander A. Klimov
cf2fdfe381
New*(): don't re-do Init()
2021-03-12 10:55:28 +01:00
Alexander A. Klimov
ecf3dd74ae
Make NameCiMeta an Initer
2021-03-12 10:55:09 +01:00
Julian Brost
6ccbc7d091
HA: only execute query to remove old instances once
2021-03-08 13:01:52 +01:00
Julian Brost
a474c83651
Replace persisted instance ID with a random one and remove old rows from icingadb_instance
2021-03-08 13:01:52 +01:00
Julian Brost
ab268bfbb6
Always write HA heartbeat
2021-03-08 13:01:52 +01:00
Julian Brost
4293a51c88
Only signal HA takeover if a takeover was attempted
2021-03-08 13:01:52 +01:00
Julian Brost
476d2bc20e
Insert endpoint_id into icingadb_instance
2021-03-08 13:01:52 +01:00
Eric Lippmann
41cfa9e0df
Add first set of types to sync
2021-03-04 00:49:23 +01:00
Eric Lippmann
34603b5e1d
Introduce meta types
2021-03-04 00:49:23 +01:00
Eric Lippmann
bb9a2b0251
Implement sync
2021-03-04 00:49:23 +01:00
Eric Lippmann
262749c575
Add type icingadb.HA
2021-03-04 00:49:23 +01:00
Eric Lippmann
77267fa60c
Introducte type icingaredis.Heartbeat
2021-03-04 00:49:23 +01:00
Eric Lippmann
50b3b6ea30
Add types necessary for heartbeat and HA
2021-03-04 00:49:23 +01:00
Eric Lippmann
5f12ca9b82
Add type icingaredis.Client
...
icingaredisClient is a wrapper around redis.Client with streaming
and logging capabilities.
2021-03-03 21:04:50 +01:00
Eric Lippmann
facfc16958
Introduce pkg com
...
pkg com provides concurrency and channel related utilities.
2021-03-03 15:59:52 +01:00
Eric Lippmann
a696157f47
Introduce flatten
...
Flatten creates flat, one-dimensional maps from arbitrarily nested
values, e.g. JSON.
2021-03-03 15:55:54 +01:00
Eric Lippmann
4131290641
Auto-reconnect database conns
2021-03-03 15:30:51 +01:00
Eric Lippmann
61f8e7f915
Introduce retry functionality
...
With exponential backoff and context support.
2021-03-03 15:27:20 +01:00
Eric Lippmann
a35eaefae9
Increase timeout to 60s for database connections
2021-03-03 15:20:27 +01:00
Eric Lippmann
6cd2c20e22
Add type icingadb.DB
...
DB is a wrapper around sqlx.DB with bulk execution,
statement building, streaming and logging capabilities.
2021-03-03 15:20:27 +01:00
Eric Lippmann
af89b2652b
Add config utils
...
This commit introduces utility functions for parsing and validating
CLI flags and YAML configuration files.
2021-03-03 15:20:27 +01:00
Eric Lippmann
140f46af0e
Add type config.Redis
...
Redis defines Redis client configuration.
2021-03-03 15:20:27 +01:00
Eric Lippmann
03f26b5b18
Add type config.Database
...
Database defines database client configuration.
2021-03-03 15:20:27 +01:00
Eric Lippmann
53f51a053d
Add type types.Bool
...
Bool represents a bool for ENUM ('y', 'n'), which can be NULL.
2021-03-03 15:20:27 +01:00
Eric Lippmann
eecc9bf528
Add type types.UnixMilli
...
UnixMilli is a nullable millisecond UNIX timestamp in databases and
JSON. We work with milliseconds throughout the Icinga DB, so this
should be the type for every timestamp.
2021-03-03 15:20:27 +01:00
Eric Lippmann
cbdde4b15f
Add type types.Binary
...
Binary is a nullable byte string used for IDs and checksums or
keys in general in databases and Redis. For JSON, Binary is
represented as hex.
2021-03-03 15:20:27 +01:00
Eric Lippmann
03e6e9d0f3
Add utils
...
This commit introduces various utility functions.
2021-03-03 15:20:27 +01:00
Eric Lippmann
5f5028e637
Add contracts
...
This commit introduces the abstract type Entity and related components.
Entity has to be implemented by all types that Icinga DB should
synchronize.
2021-03-03 15:19:55 +01:00