mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-13 20:26:29 +00:00
Re-add typeerror handling to format message
This commit is contained in:
parent
5b18fb6b12
commit
0786e06eb9
@ -25,7 +25,7 @@ from ..coresys import CoreSys
|
|||||||
from ..exceptions import APIError, BackupFileNotFoundError, DockerAPIError, HassioError
|
from ..exceptions import APIError, BackupFileNotFoundError, DockerAPIError, HassioError
|
||||||
from ..utils import check_exception_chain, get_message_from_exception_chain
|
from ..utils import check_exception_chain, get_message_from_exception_chain
|
||||||
from ..utils.json import json_dumps, json_loads as json_loads_util
|
from ..utils.json import json_dumps, json_loads as json_loads_util
|
||||||
from ..utils.log_format import format_message
|
from ..utils.log_format import async_format_message
|
||||||
from . import const
|
from . import const
|
||||||
|
|
||||||
|
|
||||||
@ -139,7 +139,7 @@ def api_return_error(
|
|||||||
if error and not message:
|
if error and not message:
|
||||||
message = get_message_from_exception_chain(error)
|
message = get_message_from_exception_chain(error)
|
||||||
if check_exception_chain(error, DockerAPIError):
|
if check_exception_chain(error, DockerAPIError):
|
||||||
message = format_message(message)
|
message = async_format_message(message)
|
||||||
if not message:
|
if not message:
|
||||||
message = "Unknown error, see supervisor"
|
message = "Unknown error, see supervisor"
|
||||||
|
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
"""Custom log messages."""
|
"""Custom log messages."""
|
||||||
|
|
||||||
|
import asyncio
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
from .sentry import async_capture_exception
|
||||||
|
|
||||||
_LOGGER: logging.Logger = logging.getLogger(__name__)
|
_LOGGER: logging.Logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
RE_BIND_FAILED = re.compile(
|
RE_BIND_FAILED = re.compile(
|
||||||
@ -10,12 +13,17 @@ RE_BIND_FAILED = re.compile(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def format_message(message: str) -> str:
|
def async_format_message(message: str) -> str:
|
||||||
"""Return a formatted message if it's known."""
|
"""Return a formated message if it's known.
|
||||||
match = RE_BIND_FAILED.match(message)
|
|
||||||
if match:
|
Must be called from event loop.
|
||||||
return (
|
"""
|
||||||
f"Port '{match.group(1)}' is already in use by something else on the host."
|
try:
|
||||||
)
|
match = RE_BIND_FAILED.match(message)
|
||||||
|
if match:
|
||||||
|
return f"Port '{match.group(1)}' is already in use by something else on the host."
|
||||||
|
except TypeError as err:
|
||||||
|
_LOGGER.error("The type of message is not a string - %s", err)
|
||||||
|
asyncio.get_running_loop().create_task(async_capture_exception(err))
|
||||||
|
|
||||||
return message
|
return message
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
"""Tests for message formater."""
|
"""Tests for message formater."""
|
||||||
|
|
||||||
from supervisor.utils.log_format import format_message
|
from supervisor.utils.log_format import async_format_message
|
||||||
|
|
||||||
|
|
||||||
def test_format_message_port():
|
def test_format_message_port():
|
||||||
"""Tests for message formater."""
|
"""Tests for message formater."""
|
||||||
message = '500 Server Error: Internal Server Error: Bind for 0.0.0.0:80 failed: port is already allocated")'
|
message = '500 Server Error: Internal Server Error: Bind for 0.0.0.0:80 failed: port is already allocated")'
|
||||||
assert (
|
assert (
|
||||||
format_message(message)
|
async_format_message(message)
|
||||||
== "Port '80' is already in use by something else on the host."
|
== "Port '80' is already in use by something else on the host."
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -16,6 +16,12 @@ def test_format_message_port_alternative():
|
|||||||
"""Tests for message formater."""
|
"""Tests for message formater."""
|
||||||
message = 'Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use")'
|
message = 'Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use")'
|
||||||
assert (
|
assert (
|
||||||
format_message(message)
|
async_format_message(message)
|
||||||
== "Port '80' is already in use by something else on the host."
|
== "Port '80' is already in use by something else on the host."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
async def test_exeption():
|
||||||
|
"""Tests the exception handling."""
|
||||||
|
message = b"byte"
|
||||||
|
assert async_format_message(message) == message
|
||||||
|
Loading…
x
Reference in New Issue
Block a user