2
0
mirror of https://github.com/xcat2/confluent.git synced 2026-03-29 13:43:32 +00:00

Numerous async changes

For one, simplify and make more robust normalizing iterating various things.

Add required async/await in varous other places.
This commit is contained in:
Jarrod Johnson
2026-03-20 15:09:11 -04:00
parent 36bf03d65c
commit 6dc57abe28
3 changed files with 13 additions and 20 deletions

View File

@@ -81,9 +81,10 @@ except NameError:
async def iterate_responses(responses):
# normalize plugin behaviors
# some might have an async Generator
# some might be a traditional generator
# others might return an awaitable generator
# First, take care of whatever potentially nested levels of awaitables
# Then handle async generators, generators, then just general iterable types
while inspect.isawaitable(responses):
responses = await responses
if inspect.isasyncgen(responses):
async for rsp in responses:
yield rsp
@@ -92,14 +93,6 @@ async def iterate_responses(responses):
for rsp in responses:
yield rsp
return
elif inspect.isawaitable(responses):
responses = await responses
if inspect.isasyncgen(responses):
async for rsp in responses:
yield rsp
return
if inspect.isawaitable(responses):
responses = await responses
for rsp in responses:
yield rsp

View File

@@ -532,21 +532,21 @@ class IpmiHandler:
elif self.element[1:3] == ['management_controller', 'ntp']:
return self.handle_ntp()
elif self.element[1:4] == ['management_controller', 'extended', 'all']:
return self.handle_bmcconfig()
return await self.handle_bmcconfig()
elif self.element[1:4] == ['management_controller', 'extended', 'advanced']:
return self.handle_bmcconfig(True)
return await self.handle_bmcconfig(True)
elif self.element[1:4] == ['management_controller', 'extended', 'extra']:
return self.handle_bmcconfig(advanced=False, extended=True)
return await self.handle_bmcconfig(advanced=False, extended=True)
elif self.element[1:4] == ['management_controller', 'extended', 'extra_advanced']:
return self.handle_bmcconfig(advanced=True, extended=True)
return await self.handle_bmcconfig(advanced=True, extended=True)
elif self.element[1:3] == ['system', 'all']:
return self.handle_sysconfig()
return await self.handle_sysconfig()
elif self.element[1:3] == ['system', 'advanced']:
return self.handle_sysconfig(True)
return await self.handle_sysconfig(True)
elif self.element[1:3] == ['system', 'clear']:
return self.handle_sysconfigclear()
return await self.handle_sysconfigclear()
elif self.element[1:3] == ['management_controller', 'clear']:
return self.handle_bmcconfigclear()
return await self.handle_bmcconfigclear()
elif self.element[1:3] == ['management_controller', 'licenses']:
return await self.handle_licenses()
elif self.element[1:3] == ['management_controller', 'save_licenses']:

View File

@@ -191,7 +191,7 @@ async def sync_list_to_node(sl, node, suffixes, peerip=None):
for ent in sl.appendoncemap:
stage_ent(sl.appendoncemap, ent,
os.path.join(targdir, suffixes['appendonce']), True)
sshutil.prep_ssh_key('/etc/confluent/ssh/automation')
await sshutil.prep_ssh_key('/etc/confluent/ssh/automation')
targip = node
if peerip:
targip = peerip