Use ClientTimeout for hassio send_command (#47957)

This commit is contained in:
Joakim Sørensen
2021-03-15 19:31:34 +01:00
committed by GitHub
parent 28c80c1133
commit 8b3dccb1b4

View File

@@ -4,7 +4,6 @@ import logging
import os
import aiohttp
import async_timeout
from homeassistant.components.http import (
CONF_SERVER_HOST,
@@ -52,7 +51,12 @@ def api_data(funct):
class HassIO:
"""Small API wrapper for Hass.io."""
def __init__(self, loop, websession, ip):
def __init__(
self,
loop: asyncio.AbstractEventLoop,
websession: aiohttp.ClientSession,
ip: str,
) -> None:
"""Initialize Hass.io API."""
self.loop = loop
self.websession = websession
@@ -187,12 +191,12 @@ class HassIO:
This method is a coroutine.
"""
try:
with async_timeout.timeout(timeout):
request = await self.websession.request(
method,
f"http://{self._ip}{command}",
json=payload,
headers={X_HASSIO: os.environ.get("HASSIO_TOKEN", "")},
timeout=aiohttp.ClientTimeout(total=timeout),
)
if request.status not in (HTTP_OK, HTTP_BAD_REQUEST):