Fix error if a wlan scan is allready running (#2238)

* Fix error if a wlan scan is allready running

* fix other messages too
This commit is contained in:
Pascal Vizeli 2020-11-11 13:48:50 +01:00 committed by GitHub
parent c4847ad10d
commit 280d423bfe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 4 deletions

View File

@ -225,6 +225,10 @@ class DBusParseError(DBusError):
"""DBus parse error.""" """DBus parse error."""
class DBusProgramError(DBusError):
"""DBus application error."""
# util/apparmor # util/apparmor

View File

@ -22,6 +22,7 @@ from ..dbus.payloads.generate import interface_update_payload
from ..exceptions import ( from ..exceptions import (
DBusError, DBusError,
DBusNotConnectedError, DBusNotConnectedError,
DBusProgramError,
HostNetworkError, HostNetworkError,
HostNetworkNotFound, HostNetworkNotFound,
HostNotSupportedError, HostNotSupportedError,
@ -140,9 +141,19 @@ class NetworkManager(CoreSysAttributes):
_LOGGER.error("Can only scan with wireless card - %s", interface.name) _LOGGER.error("Can only scan with wireless card - %s", interface.name)
raise HostNotSupportedError() raise HostNotSupportedError()
# Request Scan
try:
await inet.wireless.request_scan() await inet.wireless.request_scan()
except DBusProgramError as err:
if (
"GDBus.Error:org.freedesktop.NetworkManager.Device.NotAllowed"
not in str(err)
):
raise HostNetworkError() from err
else:
await asyncio.sleep(5) await asyncio.sleep(5)
# Process AP
accesspoints: List[AccessPoint] = [] accesspoints: List[AccessPoint] = []
for ap_object in (await inet.wireless.get_all_accesspoints())[0]: for ap_object in (await inet.wireless.get_all_accesspoints())[0]:
accesspoint = NetworkWirelessAP(ap_object) accesspoint = NetworkWirelessAP(ap_object)

View File

@ -17,6 +17,7 @@ from ..exceptions import (
DBusInterfaceError, DBusInterfaceError,
DBusNotConnectedError, DBusNotConnectedError,
DBusParseError, DBusParseError,
DBusProgramError,
) )
_LOGGER: logging.Logger = logging.getLogger(__name__) _LOGGER: logging.Logger = logging.getLogger(__name__)
@ -250,8 +251,8 @@ class DBus:
raise exception() raise exception()
# General # General
_LOGGER.error("D-Bus return: %s", error.strip()) _LOGGER.debug("D-Bus return: %s", error.strip())
raise DBusFatalError() raise DBusProgramError(error.strip())
def attach_signals(self, filters=None): def attach_signals(self, filters=None):
"""Generate a signals wrapper.""" """Generate a signals wrapper."""