twizard/hw: less spammy logs when hw library unavailable - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 37da192bf57401ff04dd7635c67f8f993c2e0d62 DIR parent 30ffb3d4dca5a0f42473d8e2bd065049d5943e50 HTML 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: M electrum/base_wizard.py | 8 ++++++-- M electrum/plugin.py | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) --- DIR diff --git a/electrum/base_wizard.py b/electrum/base_wizard.py t@@ -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: t@@ -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' t@@ -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) DIR diff --git a/electrum/plugin.py b/electrum/plugin.py t@@ -283,6 +283,7 @@ class BasePlugin(Logger): class DeviceNotFoundError(Exception): pass class DeviceUnpairableError(Exception): pass +class HardwarePluginLibraryUnavailable(Exception): pass class Device(NamedTuple): t@@ -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_)]