Commit Graph

213 Commits

Author SHA1 Message Date
Adam Ierymenko
c470c6255e
Postgres code for SSO (almost certainly needs work) 2021-05-28 17:08:24 -04:00
Grant Limberg
c80843e496
Revert "remove redundant writes when changes come from Central"
This reverts commit f9396f979f.
2020-10-05 13:32:47 -07:00
Grant Limberg
f9396f979f
remove redundant writes when changes come from Central
network & member changes tagged with `"fromCentral": true` will not be rewritten to the db
2020-10-05 11:03:03 -07:00
Grant Limberg
3db263284b
not sure how this got reverted 2020-09-10 13:18:25 -07:00
Grant Limberg
43c108f077
missed a rollback 2020-08-26 15:50:36 -07:00
Grant Limberg
33cc59914a
Merge branch 'dev-redis' into dev 2020-08-26 14:52:54 -07:00
Grant Limberg
45b6d11126
Put upserts from controller into single transaction 2020-08-26 14:52:23 -07:00
Adam Ierymenko
47e9fb3ddb Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2020-08-25 08:07:23 -07:00
Grant Limberg
e7891bfcb0
Merge branch 'dev-redis' into dev 2020-08-21 16:29:13 -07:00
Grant Limberg
7f99c4a779
Sleep 10 seconds between writes to DB 2020-08-21 16:22:28 -07:00
Adam Ierymenko
06730c7d1d BSL date bump 2020-08-20 12:51:39 -07:00
Grant Limberg
c0c215c83c
single dns config per network 2020-08-12 13:08:47 -07:00
Grant Limberg
058d888311
More debug logging cleanup 2020-08-12 10:00:09 -07:00
Grant Limberg
d2708daa8e
debug output 2020-08-04 14:33:18 -07:00
Grant Limberg
2e52a1eebf
forgot a couple queries in postgres. trying to pull dns of member not network in embedded network controller
also some debug logging
2020-08-04 09:45:45 -07:00
Grant Limberg
5b700fa497
println for which notification stream the controller is listening to 2020-07-27 18:37:45 -07:00
Grant Limberg
251b06d812
revert redis for member status 2020-07-23 09:38:50 -07:00
Grant Limberg
d0aacfddb7
one more spot 2020-06-04 14:12:20 -07:00
Grant Limberg
9b92ad7772
handle case of no networks and/or no members 2020-06-04 14:06:30 -07:00
Grant Limberg
135a547889
No longer update both pgsql & redis 2020-05-28 19:22:07 -07:00
Grant Limberg
06de25a680 bump online notification pause to 100ms
also put all online notification redis commands into a single tx
2020-05-27 22:25:07 -07:00
Grant Limberg
5692402d32 A little more cleanup 2020-05-27 21:02:30 -07:00
Grant Limberg
ad7ae5a372 list of all network-node pairs 2020-05-27 20:43:31 -07:00
Grant Limberg
9794e31a64 Temporary online notification thread hack
Updates both Redis and Postgres
2020-05-27 20:43:31 -07:00
Grant Limberg
2f0f0e4f53 redis init optimization 2020-05-27 20:43:31 -07:00
Grant Limberg
7bde004c7c Replace scan of Redis with iteration of _networks map 2020-05-27 20:41:47 -07:00
Grant Limberg
39da360725
add online controller list in Redis 2020-05-22 14:16:04 -07:00
Grant Limberg
beedee4401
fix typo 2020-05-22 11:07:12 -07:00
Grant Limberg
fb0e8aebdb
keep list of active networks in redis 2020-05-22 10:07:39 -07:00
Grant Limberg
13929aee6f
reduce log chattiness 2020-05-21 09:49:55 -07:00
Grant Limberg
c2409ad6c9
fix connection to redis cluster in online notification thread 2020-05-21 09:49:41 -07:00
Grant Limberg
08cb72bdba
Temp object was being destroyed before connection was used 2020-05-21 09:33:03 -07:00
Grant Limberg
d24c8d858c
include climits for Linux 2020-05-20 16:54:18 -07:00
Grant Limberg
879ef58565
Finalize Redis integration 2020-05-20 16:28:28 -07:00
Grant Limberg
8b8399efbc
Error recovery for network & member stream watchers 2020-05-20 11:42:51 -07:00
Grant Limberg
0f17508cac
error recovery in redis online notification
If a redis cluster member fails over to the slave, we'll get an error from not specifying the key for the insert.  Recover from that instead of crashing the controller
2020-05-20 11:38:04 -07:00
Grant Limberg
7a138f963c
TIL: Creating a redis transaction without sending any commands throws an exception
So let's not do that
2020-05-19 17:47:06 -07:00
Grant Limberg
b637ced1ee
Track member status in Redis 2020-05-19 17:47:02 -07:00
Grant Limberg
8ac42b4600
controller status query fix 2020-05-19 17:40:11 -07:00
Grant Limberg
15c0c1db39
finish the RabbitMQ-ectomy 2020-05-13 09:46:41 -07:00
Grant Limberg
aab96964b6
Put debug output behind ZT_TRACE 2020-05-12 12:48:58 -07:00
Grant Limberg
c6518afa7a
Make sure the streams clean up after themselves 2020-05-12 12:37:05 -07:00
Grant Limberg
563655a1a4
Redis now usable as a message queue 2020-05-12 11:56:19 -07:00
Grant Limberg
d699116795
mac deps 2020-05-11 16:48:14 -07:00
Grant Limberg
154470b570
add original hiredis 2020-05-11 15:03:56 -07:00
Grant Limberg
73b1d57b13
rip out rabbitMQ 2020-05-11 12:29:06 -07:00
Grant Limberg
acb4ef0f12
add hiredis-vip to controller build 2020-05-11 11:48:05 -07:00
Grant Limberg
0d42108254
member ip inserts DO NOTHING on conflict 2020-03-04 09:45:45 -08:00
Grant Limberg
f6026f94a5
More fun with dupes 2020-03-03 23:52:53 -08:00
Grant Limberg
e702942041
Fix duplicate assigned IP check when adding assigned IPs to database 2020-03-03 13:34:24 -08:00
Grant Limberg
12a92fc4a1
Un-log & some production build image fixes 2020-02-24 11:02:05 -08:00
Grant Limberg
baa14a63c9
It's LOG! It's LOG!
It's big, it's heavy, it's wood
2020-02-24 10:20:47 -08:00
Grant Limberg
86abd31659
fix log line 2019-11-13 12:46:16 -08:00
Adam Ierymenko
52a166a71f
Relicense: GPLv3 -> ZeroTier BSL 1.1 2019-08-23 09:23:39 -07:00
Adam Ierymenko
5341c216a7
Comment ugly query 2019-08-08 19:20:01 -05:00
Adam Ierymenko
96a0c3d764
ugly query is ugly 2019-08-08 19:16:11 -05:00
Adam Ierymenko
783b49e383
more worky less not worky 2019-08-08 18:58:22 -05:00
Adam Ierymenko
d4dc983a01
fix bad column name 2019-08-08 18:31:41 -05:00
Adam Ierymenko
72ccd1020a
Another exception fix 2019-08-08 18:11:06 -05:00
Adam Ierymenko
28d0070ce2
Fix race in multiple DB mirroring configurations. 2019-08-08 15:29:13 -05:00
Adam Ierymenko
7bb0d9be1b
warning removal 2019-08-08 11:04:11 -05:00
Grant Limberg
87016ae815 network update to upsert 2019-08-06 15:30:50 -07:00
Adam Ierymenko
5289d3327c
Build fixes 2019-08-06 11:00:35 -05:00
Adam Ierymenko
00fb9c475e
More work on DB mirroring. 2019-08-06 10:42:54 -05:00
Adam Ierymenko
3c776675b3
Cruftectomy, work in progress on mirrorring 2019-08-06 08:51:23 -05:00
Adam Ierymenko
37d508ab96
Refactoring in prep for mirroring 2019-08-06 07:51:50 -05:00
Adam Ierymenko
a77b4ecddb Add optional function in DB change listener for member online events. 2019-08-04 19:55:52 -07:00
Grant Limberg
21467596bc Merge branch 'remove_network_status_table' into dev 2019-08-04 12:38:12 -07:00
Adam Ierymenko
f6b080b8a2 Abstract out change listener from controller itself to permit DBs to shadow changes from other DBs. 2019-07-26 17:39:00 -07:00
Grant Limberg
2ab2f68725 Add a central database schema version check to central controller startup 2019-07-16 12:15:38 -07:00
Grant Limberg
692733fffb Don't write to ztc_network_status table anymore in central controller 2019-07-15 13:00:16 -07:00
Grant Limberg
37d321afc8 dont spin as much in the onlineNotificationThread 2019-05-31 15:10:45 -07:00
Grant Limberg
6a027c9c0a amqp_consume_message now has a timeout
RabbitMQ::consume() will return an empty string if the call to amqp_consume_message times out
2019-04-18 14:57:06 -07:00
Grant Limberg
6014df2847 fix compile & sql errors 2019-04-04 15:11:01 -07:00
Grant Limberg
55a9e6e05e Queue up inserts in onlineNotificationThread() into a multiple insert statement 2019-04-04 12:40:49 -07:00
Grant Limberg
993d850f69 more logs 2019-03-08 10:50:33 -08:00
Grant Limberg
8141043560 finish up rabbitmq integration 2019-03-06 16:16:49 -08:00
Grant Limberg
fcb4221f97 rabbitMQ implementation 2019-03-05 15:11:50 -08:00
Grant Limberg
1f13374a4f added struct for rabbitmq config 2019-03-04 17:01:16 -08:00
Grant Limberg
801401a6e7 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2019-03-04 16:31:36 -08:00
Grant Limberg
de1fc43cc5 added librabbitmq library for central controller 2019-03-04 16:27:39 -08:00
Grant Limberg
7414418e2e insert/update host_port on controller start 2019-01-21 11:29:13 -08:00
Grant Limberg
2294770e56 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-01-21 11:18:25 -08:00
Grant Limberg
d98bdb5643 WIP: Pass listen port down to Postgres 2019-01-21 11:18:20 -08:00
Joseph Henry
0e597191b8 Updated licenses for 2019 2019-01-14 10:25:53 -08:00
Grant Limberg
0da2efa633 add application_name to pgbouncer connectio string 2018-12-10 12:26:20 -08:00
Grant Limberg
56a58f2b11 more logging of exits from the central controller 2018-12-06 13:26:53 -08:00
Grant Limberg
e959908c51 log message 2018-12-06 13:19:36 -08:00
Grant Limberg
6e3144370a exit controller if onlinenotification thread exits while _run == 1 2018-12-06 13:10:59 -08:00
Grant Limberg
1c86f25fab update # of threads for Postgres 2018-12-06 13:08:31 -08:00
Grant Limberg
328d08781a finish pgbouncer integration 2018-12-03 16:12:15 -08:00
Grant Limberg
c8d5215870 add handling for PGBOUNCER_CONNSTR environment variable.
alows Central controllers to connect to PGBouncer on some threads.  LISTEN threads still require a direct connection to the DB
2018-12-03 15:19:15 -08:00
Grant Limberg
ccb856749f back to plain old libpq in dev 2018-11-30 10:40:57 -08:00
Grant Limberg
e3381a4c1f fix member init query 2018-11-13 16:19:55 -08:00
Grant Limberg
882b03436d WIP: libpxx instead of libpq 2018-11-13 16:00:13 -08:00
Grant Limberg
2729db9555 exceptions 2018-11-11 22:55:53 -08:00
Grant Limberg
4c0e7aa8b0 more error checking 2018-11-11 21:08:51 -08:00
Grant Limberg
761cc5c923 remove another noisy log line 2018-10-24 13:36:07 -07:00
Grant Limberg
d87fcca176 Fully operational pgsql controller 2018-10-24 12:06:17 -07:00
Grant Limberg
1da1409db2 get rid of a noisy log line 2018-09-28 10:58:26 -07:00
Grant Limberg
417aa9547b Working controller & docker container for GKE 2018-09-28 10:55:39 -07:00
Grant Limberg
5b222d0a09 cleanup connections after errors 2018-09-25 10:17:15 -07:00
Grant Limberg
0ec6215493 Send member/network change notifications via Postgres 2018-09-06 15:14:16 -07:00
Grant Limberg
de45bdb448 quieting things down a little bit 2018-09-05 17:03:49 -07:00
Grant Limberg
7b608c6ca3 Fix testing for true/false. Dont attempt to update member status on networks that we know dont exist 2018-09-05 16:54:23 -07:00
Grant Limberg
6ff78c9c26 fix crashes 2018-09-05 16:08:06 -07:00
Grant Limberg
d701f4e331 Added some exception hadling. Dont want to live *too* dangerously here 2018-09-05 11:49:07 -07:00
Grant Limberg
92abc92463 Theoretically we have PostgreSQL support now 2018-09-05 11:30:17 -07:00
Grant Limberg
a4be9ceb5a dont insert/update creation time. Let the database handle it with the default value 2018-09-04 16:08:26 -07:00
Grant Limberg
e21b6e1daf commit thread WIP 2018-09-04 16:05:34 -07:00
Grant Limberg
2e3b03fff9 members initialized 2018-09-04 14:51:35 -07:00
Grant Limberg
cd657da431 Online Update/Notify thread 2018-09-04 14:00:02 -07:00
Grant Limberg
17af09a5cc Postgres Integration has begun 2018-08-31 14:58:15 -07:00