переподключение pydbus после перезагрузки цели - PullRequest
0 голосов
/ 19 декабря 2018

Я сталкиваюсь со следующей проблемой.

Я использую пакет Python pydbus для тестирования API, подключаясь к целевой машине Linux, которая находится в той же сети, с помощью переменной среды DBUS_SYSTEM_BUS_ADDRESS

При нормальных обстоятельствах это работает хорошо, я могу вызывать любой действительный API поверх созданного прокси-объекта.

Например:

import os
import pydbus
os.environ['DBUS_SYSTEM_BUS_ADDRESS'] = \
          "tcp:host=192.168.1.100,port=55556,family=ipv4"
bus = pydbus.SystemBus()
proxy = bus.get("busname", "object_path")
return_value = proxy.method-name(args)

В ходе моего тестирования моя целевая машина linux перезагружается между тем, и когда я повторно использую прокси-объект, я получаю следующую ошибку

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/harman/.local/lib/python2.7/site-packages/pydbus/proxy.py", line 47, in get
0, timeout_to_glib(timeout), None)
GLib.Error: g-io-error-quark: The connection is closed (18)

Я понимаю, что предыдущее соединение больше не существует, поэтому я попытался повторно инициализировать соединение с помощью следующего

bus = pydbus.SystemBus()
proxy = bus.get("busname", "object_path")

Я получаю ту же ошибку в операторе bus.get ().

Есть ли решение / возможное решение этой проблемы?

...