commit 37da192bf57401ff04dd7635c67f8f993c2e0d62
parent 30ffb3d4dca5a0f42473d8e2bd065049d5943e50
Author: SomberNight <somber.night@protonmail.com>
Date: Sun, 26 May 2019 17:01:01 +0200
wizard/hw: less spammy logs when hw library unavailable
closes #5380
Diffstat:
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/electrum/base_wizard.py b/electrum/base_wizard.py
@@ -42,7 +42,7 @@ from .storage import (WalletStorage, STO_EV_USER_PW, STO_EV_XPUB_PW,
from .i18n import _
from .util import UserCancelled, InvalidPassword, WalletFileException
from .simple_config import SimpleConfig
-from .plugin import Plugins
+from .plugin import Plugins, HardwarePluginLibraryUnavailable
from .logging import Logger
if TYPE_CHECKING:
@@ -255,7 +255,8 @@ class BaseWizard(Logger):
def failed_getting_device_infos(name, e):
nonlocal debug_msg
- self.logger.info(f'error getting device infos for {name}: {e}')
+ err_str_oneline = ' // '.join(str(e).splitlines())
+ self.logger.warning(f'error getting device infos for {name}: {err_str_oneline}')
indented_error_msg = ' '.join([''] + str(e).splitlines(keepends=True))
debug_msg += f' {name}: (error getting device infos)\n{indented_error_msg}\n'
@@ -281,6 +282,9 @@ class BaseWizard(Logger):
# FIXME: side-effect: unpaired_device_info sets client.handler
device_infos = devmgr.unpaired_device_infos(None, plugin, devices=scanned_devices,
include_failing_clients=True)
+ except HardwarePluginLibraryUnavailable as e:
+ failed_getting_device_infos(name, e)
+ continue
except BaseException as e:
self.logger.exception('')
failed_getting_device_infos(name, e)
diff --git a/electrum/plugin.py b/electrum/plugin.py
@@ -283,6 +283,7 @@ class BasePlugin(Logger):
class DeviceNotFoundError(Exception): pass
class DeviceUnpairableError(Exception): pass
+class HardwarePluginLibraryUnavailable(Exception): pass
class Device(NamedTuple):
@@ -502,7 +503,7 @@ class DeviceMgr(ThreadJob):
unpaired device accepted by the plugin.'''
if not plugin.libraries_available:
message = plugin.get_library_not_available_message()
- raise Exception(message)
+ raise HardwarePluginLibraryUnavailable(message)
if devices is None:
devices = self.scan_devices()
devices = [dev for dev in devices if not self.xpub_by_id(dev.id_)]