1
0
mirror of https://github.com/home-assistant/supervisor.git synced 2025-12-24 12:29:08 +00:00

Fix error handling

This commit is contained in:
Pascal Vizeli
2018-04-23 21:10:48 +02:00
parent b486883ff6
commit e5e25c895f
5 changed files with 38 additions and 17 deletions

View File

@@ -4,7 +4,7 @@ import logging
import shlex
import xml.etree.ElementTree as ET
from ..exceptions import DBusFatalError, DBusReturnError, DBusParseError
from ..exceptions import DBusFatalError, DBusFatalError, DBusParseError
_LOGGER = logging.getLogger(__name__)
@@ -47,8 +47,8 @@ class DBus:
try:
xml = ET.fromstring(data)
except ET.ParseError as err:
raise DBusParseError(
f"Can't parse introspect data: {err!s}") from None
_LOGGER.error("Can't parse introspect data: %s", err)
raise DBusParseError() from None
# Read available methods
for interface in xml.findall("/node/interface"):
@@ -91,11 +91,13 @@ class DBus:
data, _ = await proc.communicate()
except OSError as err:
raise DBusFatalError(f"DBus fatal error: {err!s}") from None
_LOGGER.error("DBus fatal error: %s", err)
raise DBusFatalError() from None
# Success?
if proc.returncode != 0:
raise DBusReturnError(f"DBus return error: {data!s}")
_LOGGER.error("DBus return error: %s", data)
raise DBusFatalError()
# End
return data.decode()