Jarrod Johnson
4f73ddc41e
Start setting the stage for leader change on restart
...
Have connect() have a way to recover if leader is dead.
Also these will be involved in configmanager detected loss of leader
2018-05-14 16:22:27 -04:00
Jarrod Johnson
7a912b31cb
Fix transaction count in collective
...
Slave members were not persisting the value to disk
2018-05-14 15:35:44 -04:00
Jarrod Johnson
297513bba7
Correct scope of currentleader
2018-05-11 15:03:41 -04:00
Jarrod Johnson
aa2be98dc3
Fix not having currentleader set
...
A slave node now recognizes itself as such.
2018-05-11 15:00:18 -04:00
Jarrod Johnson
3cc9ee1a17
Block some early startup problems in collective
2018-05-11 14:49:46 -04:00
Jarrod Johnson
173f1eaf7e
Include absent devices in the json of nodeinventory
2018-05-11 14:24:47 -04:00
Jarrod Johnson
0d4b1a4213
Amend json output
...
Have the nodeinventory json output in a bit more directly useful format,
rather than regarding the API structured JSON...
2018-05-11 14:18:04 -04:00
Jarrod Johnson
58155a47b5
Add --json to nodeinventory
...
Have nodeinventory have an option to output in json.
2018-05-11 13:49:54 -04:00
Jarrod Johnson
7fa431dbc9
Persist the transactioncount
...
Needed for eventually ascertaining the viability in selecting leader.
2018-05-11 11:53:45 -04:00
Jarrod Johnson
e98ecd9867
Correct spelling error
2018-05-10 16:46:29 -04:00
Jarrod Johnson
5087c8bed5
Try to persist name as myname
...
hostname may not agree with the name chosen by user, in such a case
persist the name and use that, falling back to gethostname()
as needed.
2018-05-10 16:40:13 -04:00
Jarrod Johnson
0477ab7d85
Check and try to start collective on startup
...
Not yet good enough for a leader to rejoin, but enough for a follower
to rejoin automatically.
2018-05-10 16:19:46 -04:00
Jarrod Johnson
267d83e6e4
Have attrib set wait on all collective members
...
This will mean that it is reliable that a nodeattrib ; <command>
in delegation scenarios is guaranteed to execute in order.
2018-05-09 17:01:23 -04:00
Jarrod Johnson
c962d10222
Allow slave collective drones to set
...
It works (once), but needs xid fix.
2018-05-08 16:53:59 -04:00
Jarrod Johnson
e5f553801b
Fix reuse of channel for receiving changes
2018-05-08 13:35:30 -04:00
Jarrod Johnson
d11c716b6a
Succeed in pushing config to followers from leader
...
Still more work to be done for multiple transactions.
2018-05-08 11:33:42 -04:00
Jarrod Johnson
aec4e746e9
Apply changes from leader subscription
2018-05-04 16:12:53 -04:00
Jarrod Johnson
a78aa6816c
Rough draft for ongoing syncronization
...
Putting thoughts down on how xmit will work, will add recv and relay,
do some testing, and then decide how much can be done to apply it neatly
to the various points.
2018-05-04 15:16:30 -04:00
Jarrod Johnson
5abaddfe63
Clear configuration prior to sync
2018-05-04 12:19:45 -04:00
Jarrod Johnson
ecfc56efde
Actually execute replicate-on-connect
...
This creates a duplicate of the leader.
2018-05-03 14:03:56 -04:00
Jarrod Johnson
ecfb4d68c5
Add self to collective database
...
Database would omit initial leader otherwise.
2018-05-03 13:27:48 -04:00
Jarrod Johnson
855241a043
Fixes to the connect draft
...
Needed to track it's own name, skip the banner and auth message...
2018-05-03 13:18:08 -04:00
Jarrod Johnson
ce4c72eae2
For enroll, track the remote cert special
...
For reconnect, we will have collective objects. However at
enroll time, we need to be special.
2018-05-03 11:18:02 -04:00
Jarrod Johnson
c8961377ed
Fix missing import of eventlet
...
Unable to spawn the connect thread due to missing import.
2018-05-01 16:51:57 -04:00
Jarrod Johnson
1b17c42cae
Fix backup of globals
...
Globals failed to open the backup file as writable, causing failure if
a global had been set.
2018-05-01 16:18:31 -04:00
Jarrod Johnson
196e8d0d58
Draft for starting the databse replication
...
Does not actually heed the data, or implement ongoing relay of data back and forth.
2018-04-30 16:20:49 -04:00
Jarrod Johnson
dbb50f0807
Add hooks for collective mode and refactor
...
In support of config replication, need configmanager to do a few things
2018-04-30 16:09:28 -04:00
Jarrod Johnson
1200f7b7a1
Add function to check address equivalence
...
As we start needing to compare addresses, provide a central function
to handle the various oddities associated with that.
2018-04-30 16:08:15 -04:00
Jarrod Johnson
a2a0b5de2c
Rename 'joinchallenge' to 'enroll'
...
Seems like a better word to use.
2018-04-30 11:37:23 -04:00
Jarrod Johnson
c7b01e00b6
Begin the 'connect' collective operation
...
First check if we are current leader, reject if not, then if cert
is invalid, reject, then comes the TODO.
2018-04-26 16:34:54 -04:00
Jarrod Johnson
06fdc648b8
Add collective info to DB backup
...
Now persisted to disk *and* accessible to backup.
2018-04-26 16:03:03 -04:00
Jarrod Johnson
de89803b9c
Persint collective info to disk
...
Additionally, simplify the concluding steps of the join conversation.
2018-04-26 15:48:15 -04:00
Jarrod Johnson
d38d9204a7
Ensure the invitation works out to even multiple of 3 bytes
...
It's cosmetic, but a nice way to avoid '=' in the tokens.
2018-04-26 11:35:06 -04:00
Jarrod Johnson
1deb44021f
Fix encoding of the response proof
...
The response was not decoded, causing it to always fail.
2018-04-25 20:49:08 -04:00
Jarrod Johnson
619bbbca96
Provide more feedback and fix some flow issues
2018-04-25 16:47:42 -04:00
Jarrod Johnson
8246ebdd2b
Fix invite process and unicode
...
Unicode strings do not fit with our world view, make them bytes.
2018-04-25 14:21:12 -04:00
Jarrod Johnson
a94a724fe0
Rename swarm to collective in setup.py.tmpl
2018-04-25 13:31:26 -04:00
Jarrod Johnson
6b9aed3722
Afetr some feedback, rename it 'collective'
2018-04-25 13:01:59 -04:00
Jarrod Johnson
a3de8b9374
Add swarm to setup.py
...
Make sure the swarm content is actually installed.
2018-04-24 15:58:40 -04:00
Jarrod Johnson
c8e5808daf
Further advance the swarm concept
...
This marks the start of attempting to connect the invitation
to sockets and using the invitation to measure the certificates as
well as proving client knowledge of an invitation token.
2018-04-24 14:44:45 -04:00
Jarrod Johnson
f3a0ccbff8
Migrate 'multimanager' to 'swarm'
...
It's easier to say 'swarm' and conveys the sense without confusion
of 'cluster' mode.
2018-04-24 12:59:24 -04:00
Jarrod Johnson
27c1355a4f
Add ability to get client certificates
...
Unfortunately, to pull off the target user experience, we
must register a custom client certificate validation to allow
us to not require a CA.
2018-04-24 11:00:23 -04:00
Jarrod Johnson
97d38efb29
Merge branch 'master' into clustertime
2018-04-23 11:13:22 -04:00
Jarrod Johnson
14ff33a44a
Only activate the remote API socket if user makes cert
...
This prevents the useless networking socket from being opened
when it cannot be used. This means most implementations will not
have an extra port to explain unless the user goes through the work
and knows what it would be.
2018-04-20 19:30:15 -04:00
Jarrod Johnson
78bdac474f
Merge branch 'master' into clustertime
2018-04-20 13:25:16 -04:00
Jarrod Johnson
0481f7889b
Make macmap api case insensitive
...
This helps usability of the api.
2018-04-20 13:25:02 -04:00
Jarrod Johnson
123a1a9dc1
Merge branch 'clustertime' of github.com:jjohnson42/confluent into clustertime
2018-04-17 11:10:13 -04:00
Jarrod Johnson
fa24622704
Merge branch 'master' into clustertime
2018-04-17 11:09:59 -04:00
Jarrod Johnson
a1156097d2
Add facility to disable autosense
...
discovery autosense at scale may produce undesirable performance.
Provide an interface to turn off the autosense.
If autosense is off, manual scan can still be performed.
2018-04-13 16:54:27 -04:00
Jarrod Johnson
af72d0e71a
Update the discovery lookup tables on node add/remove
...
This will mitigate stale mappings in the discovery process.
2018-04-12 17:05:06 -04:00