Я использую сервис Facebook Thrift на своей машине. Я использовал пример кода, чтобы показать его работу:
import asyncio
from fbnet.command_runner.thrift_client import AsyncioThriftClient
# Import FCR Thrift Types
from fbnet.command_runner_asyncio.CommandRunner import ttypes as fcr_ttypes
# Import FCR Service Client
from fbnet.command_runner_asyncio.CommandRunner.Command import Client as FcrClient
import getpass
# Device Information
hostname = 'my_vm'
username = 'root'
password = getpass.getpass('%s Password: ' % username)
# Destination device
device = fcr_ttypes.Device(hostname=hostname, username=username, password=password)
async def run(cmd, device):
async with AsyncioThriftClient(FcrClient, 'x.x.x.x',22 ) as client:
res = await client.run(cmd, device)
# type of res is `struct CommandResult`
print(res.output)
loop = asyncio.get_event_loop()
loop.run_until_complete(run('uname -a', device))
Однако я получаю следующую ошибку:
Размер кадра 1397966893 слишком велик для трассировки THeaderProtocol (большинство
последний звонок последний):
Файл "pgm1.py", строка 28, в
loop.run_until_complete (запустить ('uname -a', устройство))
Файл "/usr/local/lib/python3.6/asyncio/base_events.py", строка 467, в run_until_complete
вернуть future.result ()
Файл "pgm1.py", строка 23, запущен
res = await client.run (cmd, device) thrift.transport.TTransport.TTransportException: Соединение закрыто
Есть идеи, как это исправить?