Jarrod Johnson
cbb52739d3
Fix a number of issues with async rework
...
Have util retain tasks that are 'fire and forget', to avoid
garbage collection trying to delete the background tasks.
Move some utilities explicitly over to asynclient/asynctlvdata that
had previously been reworked.
Implement terminal resize in new asyncssh backend.
2024-05-30 13:59:14 -04:00
Jarrod Johnson
4ba82b7ef4
Merge branch 'master' into async
2024-05-30 09:29:24 -04:00
Jarrod Johnson
bb414524ad
Add fallback if timedatectl can't run.
2024-05-30 08:14:58 -04:00
Jarrod Johnson
c5405f832c
Advance state of async shellserver
...
Can successfully run ssh sessions through
confluent with async now
2024-05-29 20:18:07 -04:00
Jarrod Johnson
4c3f93765f
Have async and traditional client
...
Since a lot of the traditional client did not need async,
make life easier by just having them in parallel for now.
The server must use the async client, but the client applications can
stick with the somewhat more straightforward synchronous client.
2024-05-29 12:23:05 -04:00
Jarrod Johnson
b4ae6012c5
Remove eventlet from PXE support
2024-05-20 16:27:11 -04:00
Jarrod Johnson
782991aea3
Switch to asyncio usage of pysnmnp
...
This requires pysnm 6, the edition that should become the official one,
maintained by lextudio
2024-05-20 11:48:53 -04:00
Jarrod Johnson
6e751c811e
Begin rework of macmap.py
...
Redo offload to asyncio subprocess, and
replace eventlet Events with futures for
messaging.
2024-05-17 17:07:18 -04:00
Jarrod Johnson
c03aa728cc
Properly detect killed leader
...
If leader closes connection, then have get_next_msg return None
as it did before.
2024-05-17 16:03:37 -04:00
Jarrod Johnson
207cc3471e
Fix closing sockets in various contexts
...
With asyncio, we must close the writer half of a pair
Also rework the get_next_msg to work better.
Still need to allow stop_following to interrupt get_next_msg
2024-05-16 15:40:43 -04:00
Jarrod Johnson
c0bcc3791d
Fix handling some eatonpdu return values
2024-05-15 12:30:36 -04:00
Jarrod Johnson
5a9f608451
Fix handling some eatonpdu return values
2024-05-15 12:30:13 -04:00
Jarrod Johnson
90b90ade9c
Remove disused iovec
...
iovec is no longer used due to migration from relevant
recvmsg ctypes call.
2024-05-09 09:49:56 -04:00
Jarrod Johnson
2e30f7fb86
Prune unneeded ctypes material from pxe
...
Moving to .recvmsg from python socket eliminates
most of the ctypes requirement. Still using it for sendto.
2024-05-09 09:46:01 -04:00
Jarrod Johnson
e1e3244af6
Port PXE to asyncio and re-enable
2024-05-09 09:40:03 -04:00
Jarrod Johnson
5fd0cf2b0b
Begin conversion of pxe to asyncio
...
Also convert to 'natural' recvmsg now that we are requiring
python high enough to have it.
2024-05-08 17:18:07 -04:00
Jarrod Johnson
bd2f08d3ad
Reactive SSDP in discovery core
...
Also, fix a getaddrinfo call to be async.
2024-05-08 13:18:38 -04:00
Jarrod Johnson
b9a2c9a3ae
Convert more XCC handling to asyncio
2024-05-08 13:18:05 -04:00
Jarrod Johnson
42b7cbe421
Implement SSDP asyncio
...
This covers SSDP devices as well as confluent deployment
discovery.
2024-05-08 13:17:43 -04:00
Jarrod Johnson
62be16442c
Fix passive detection of SLP devices (e.g. SMM)
...
A mistake in the python3 port caused passive SLP
detection to break. Remedy that mistake.
2024-05-08 11:51:00 -04:00
Jarrod Johnson
a3506cf0bf
Correct misrouting in slp
...
IPv4 scan responses were lost as
the reader was passed IPv6 socket
no matter what.
Also, remove some needless verbosity.
2024-05-08 11:48:46 -04:00
Jarrod Johnson
25d4d13a96
Finish conversion of slp to asyncio.
...
Make process_peer async, with socket connection being async,
and dependency.
Have getaddrinfo use the asyncio version.
Rework the snoop to be more effective.
Rework the scan to be less convoluted.
2024-05-08 11:35:33 -04:00
Jarrod Johnson
23658680a5
Have slp mostly work
...
Advance the SLP discovery code and core discovery
to mostly work.
2024-05-07 17:02:51 -04:00
Jarrod Johnson
2089f5e7e6
Deal with normal generator from a plugin
2024-05-07 17:01:04 -04:00
Jarrod Johnson
b3e0117944
Fix getpeername invocation in async
2024-05-07 17:00:43 -04:00
Jarrod Johnson
5e222041bf
Merge branch 'master' into async
2024-05-03 10:27:31 -04:00
Jarrod Johnson
b7a5101a34
Provide extra warning about redoing SSH materials
2024-05-03 10:27:01 -04:00
Jarrod Johnson
ee6f869cea
Port utilities to asyncio, selfcheck and osdeploy
...
confluent_selfcheck removes eventlet dependency,
osdeploy reworked to use async methods to work with new client.
2024-04-30 14:30:01 -04:00
Jarrod Johnson
b967c552fd
Migrate intra-collective requests to asyncio
...
Update dispatch to be asyncio based, remove eventlet from core
Clean up some overly verbose print statements.
2024-04-30 13:56:00 -04:00
Jarrod Johnson
553916340e
Advanced asyncio port progress
...
Offer a function in core to normalize plugin return.
A plugin might return an async generator, a traditional generator,
or might even return an awaitable wrapping a traditional generator.
Replace eventlet spawn with util spawn in discover core
Have node attribute update await the set_node_attributes appropriately
2024-04-30 10:44:43 -04:00
Jarrod Johnson
a5dc10debf
Fix attribute synchronization
...
Specify a finite read to actually return from the buffer.
Convert some functions to async/await as appropriate.
2024-04-29 10:54:30 -04:00
Jarrod Johnson
d2edcb62c6
Begin implementation of asyncio collective
...
The config synchronization is in progress.
2024-04-26 15:48:14 -04:00
Jarrod Johnson
560ec60c12
Merge branch 'master' into async
2024-04-17 15:18:58 -04:00
Jarrod Johnson
10f0fabb8c
Fix nodegroup retrieval
...
nodegroup information was broken by clear warning support.
2024-04-17 15:18:45 -04:00
Jarrod Johnson
e890276bf6
Advance state of collective in asyncio
...
Eventlet is nominally removed from collective manager, however the join process still
needs to be reworked, and a lot more flows need to be adjusted.
2024-04-16 16:53:45 -04:00
Jarrod Johnson
e8110551db
Port some of the collective management to asyncio
2024-04-15 17:19:27 -04:00
Jarrod Johnson
bfe7529d21
Merge branch 'master' into async
2024-04-15 10:04:19 -04:00
Jarrod Johnson
3ba3394a54
Fix None return by exec_on_leader with warnings
2024-04-12 17:32:13 -04:00
Jarrod Johnson
a6a2f2f2de
Fixes for attribute clear warning behavior
...
Correct collective behavior for failing to clear on followers.
Also, connect the warnings from the leader to the member issuing the
RPC.
2024-04-12 11:46:17 -04:00
Jarrod Johnson
c3cafd9bf8
Purge eventlet and greenlet and long-polling support
...
Rather than try to support long deprecated http api behavior,
purge it for simpler code and remove eventlet/greenlet from the http
stack.
2024-04-11 09:09:02 -04:00
Jarrod Johnson
fb8ac158cb
Merge branch 'master' into async
2024-04-11 08:14:20 -04:00
Jarrod Johnson
8e5ee6c9d8
Make orphaned sync runner retire on new sync request
2024-04-10 13:54:06 -04:00
Jarrod Johnson
ceaf641c1a
Keep reap loop going on error
2024-04-09 16:18:24 -04:00
Jarrod Johnson
01722c18c4
Fix location of idle sleep in syncfiles cleaner
2024-04-09 15:40:40 -04:00
Jarrod Johnson
8fb889ba73
Correct syntax error
2024-04-09 15:27:20 -04:00
Jarrod Johnson
eaffb342b2
Reap stale sync runners after a minute dead
...
If the client never claims the result, delete the sync task.
2024-04-09 15:19:38 -04:00
Jarrod Johnson
8ca9a44476
Provide more interesting response body to syncfileclient
2024-04-09 14:27:00 -04:00
Jarrod Johnson
9d828f0998
Merge branch 'master' into async
2024-04-09 13:37:09 -04:00
Jarrod Johnson
33271451d7
Support SHA384 if used as fingerprint
2024-04-09 13:17:19 -04:00
Jarrod Johnson
f68f9f4693
Make syncfile step robust or pause
...
If syncfiles fails, keep it retrying.
Also, slow down sync checking to avoid hammering the system.
Further, randomized delay to spread highly synchronized requestors.
Block attempts to do multiple concurrent syncfile runs.
2024-04-09 11:07:11 -04:00