Пишу ходилку телнетом по железякам. Ходить она будет параллельно. Количество железяк 50+ .
Делаю на python (либа telnetlib3 на asincio )
Вот пример клиента telnet из документации:
import asyncio, telnetlib3
@asyncio.coroutine
def shell(reader, writer):
while True:
# read stream until '?' mark is found
outp = yield from reader.read(1024)
if not outp:
# End of File
break
elif '?' in outp:
# reply all questions with 'y'.
writer.write('y')
# display all server output
print(outp, flush=True)
# EOF
print()
loop = asyncio.get_event_loop()
coro = telnetlib3.open_connection('localhost', 6023, shell=shell)
reader, writer = loop.run_until_complete(coro)
loop.run_until_complete(writer.protocol.waiter_closed)
Подскажите, пожалуйста, как правильно вернуть результат работы асинхронной функции shell в синхронный код в конце после run_until_complete.
Через rerutn не подходит, т.к. open_connection возвращает reader, writer