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