2
0
mirror of https://github.com/xcat2/confluent.git synced 2025-01-17 13:13:18 +00:00

1332 Commits

Author SHA1 Message Date
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
Jarrod Johnson
008f8e22ae Abort traversing gap in SMM chain
Once there is a gap, the next hop in the chain will be ambiguous.
Discovery must always precede from the front-most chassis.
2018-04-12 15:45:07 -04:00
Jarrod Johnson
39ee0da879 Fix makesetup for confluent_client
Fixing the redundant __init__.py led to no __init__.py, fix
that mistake.
2018-04-10 16:11:14 -04:00
Jarrod Johnson
fc7b26eaf7 Remove __init__.py from tracking in client 2018-04-10 16:09:26 -04:00
Jarrod Johnson
91238f1dcb Clean up pure python packaging
Fix __init__.py redundancy, update requirements to current state
of affairs.
2018-04-10 16:06:37 -04:00
Jarrod Johnson
7f29d3a48f Merge branch 'master' into clustertime 2018-04-10 15:11:59 -04:00
Jarrod Johnson
76a4a91351 Fix pyparsing rpm name
Accept another likely formulation of an rpm name for
the package.
2018-04-10 15:11:20 -04:00
Jarrod Johnson
5ca52ff03b Handle interruptions to select such as resize
Resize can cause an interrupted operation on stdin, handle that.
2018-04-09 10:48:06 -04:00
Jarrod Johnson
bd40f2f4a6 Fix mistake in indexing of url 2018-03-27 17:11:35 -04:00
Jarrod Johnson
66e8ce2dde Merge branch 'master' of github.com:jjohnson42/confluent 2018-03-27 16:35:31 -04:00
Jarrod Johnson
3dd86c71fd Add bmc.hostname to nodeconfig 2018-03-27 16:32:37 -04:00
Jarrod Johnson
f97c39cea4 Add hostname to api
The hostname of the BMC is added to the api.
2018-03-27 15:51:14 -04:00
Jarrod Johnson
6671b9aad3 Provide cleaner behavior on timeouts
If a timeout occurred outside of a keeplaive, provide
a more consistent message about the situation.
2018-03-23 08:27:27 -04:00
Jarrod Johnson
f88e0bca4c Fix nodeshell hang on incomplete lines
readline would hang because the filehandle was really not ready.
2018-03-19 08:45:13 -04:00
Jarrod Johnson
afd366f134 Create invitation management module
This facilitates the generation of invitations and logistics of proving
knowledge of the invitation and the integrity of the certificates.
peercert is to be gotten through getpeercert(binary_form=True) and
local cert through the util function to load from file, since we don't
have another way of getting local certificate.
2018-03-15 19:22:03 -04:00