kete: bubble up the dbus vanished errors

Not much is done for now, but the shell is notified, which is a big step
pull/61/head
Benjamin Tissoires 2018-01-31 16:23:32 +01:00
parent 9b18339890
commit 501c891a12
1 changed files with 7 additions and 1 deletions

View File

@ -231,6 +231,8 @@ class TuhiKeteManager(_DBusObject):
__gsignals__ = { __gsignals__ = {
'pairable-device': 'pairable-device':
(GObject.SIGNAL_RUN_FIRST, None, (GObject.TYPE_PYOBJECT,)), (GObject.SIGNAL_RUN_FIRST, None, (GObject.TYPE_PYOBJECT,)),
'dbus-name-vanished':
(GObject.SIGNAL_RUN_FIRST, None, ()),
} }
def __init__(self): def __init__(self):
@ -320,8 +322,8 @@ class TuhiKeteManager(_DBusObject):
def _on_name_vanished(self, connection, name): def _on_name_vanished(self, connection, name):
logger.error('Tuhi daemon went away') logger.error('Tuhi daemon went away')
self.emit('dbus-name-vanished')
self.mainloop.quit() self.mainloop.quit()
# FIXME: need to bubble this up to the Worker
def __getitem__(self, btaddr): def __getitem__(self, btaddr):
return self._devices[btaddr] return self._devices[btaddr]
@ -541,12 +543,16 @@ class TuhiKeteShell(cmd.Cmd):
logger.addHandler(self._log_handler) logger.addHandler(self._log_handler)
# patching get_names to hide some functions we do not want in the help # patching get_names to hide some functions we do not want in the help
self.get_names = self._filtered_get_names self.get_names = self._filtered_get_names
manager.connect('dbus-name-vanished', self._on_name_vanished)
def _filtered_get_names(self): def _filtered_get_names(self):
names = super(TuhiKeteShell, self).get_names() names = super(TuhiKeteShell, self).get_names()
names.remove('do_EOF') names.remove('do_EOF')
return names return names
def _on_name_vanished(self, manager):
logger.debug('Tuhi daemon went away, I should stop the current workers')
def emptyline(self): def emptyline(self):
# make sure we do not re-enter the last typed command # make sure we do not re-enter the last typed command
pass pass