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:
@@ -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
|
||||
|
||||
|
||||
@@ -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']:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user