Use custom user agent string for aiohttp (#3033)

This commit is contained in:
Joakim Sørensen 2021-07-28 14:46:37 +02:00 committed by GitHub
parent 419f603571
commit 9497f85db9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 1 deletions

View File

@ -2,8 +2,12 @@
from enum import Enum
from ipaddress import ip_network
from pathlib import Path
from sys import version_info as systemversion
from aiohttp import __version__ as aiohttpversion
SUPERVISOR_VERSION = "DEV"
SERVER_SOFTWARE = f"HomeAssistantSupervisor/{SUPERVISOR_VERSION} aiohttp/{aiohttpversion} Python/{systemversion[0]}.{systemversion[1]}"
URL_HASSIO_ADDONS = "https://github.com/home-assistant/addons"
URL_HASSIO_APPARMOR = "https://version.home-assistant.io/apparmor.txt"

View File

@ -5,13 +5,14 @@ import asyncio
from datetime import datetime
import logging
import os
from types import MappingProxyType
from typing import TYPE_CHECKING, Any, Callable, Coroutine, Optional, TypeVar
import aiohttp
import sentry_sdk
from .config import CoreConfig
from .const import ENV_SUPERVISOR_DEV
from .const import ENV_SUPERVISOR_DEV, SERVER_SOFTWARE
from .docker import DockerAPI
from .utils.dt import UTC, get_time_zone
@ -88,6 +89,11 @@ class CoreSys:
self._jobs: Optional[JobManager] = None
self._security: Optional[Security] = None
# Set default header for aiohttp
self._websession._default_headers = MappingProxyType(
{aiohttp.hdrs.USER_AGENT: SERVER_SOFTWARE}
)
@property
def dev(self) -> bool:
"""Return True if we run dev mode."""

View File

@ -2,6 +2,8 @@
from datetime import timedelta
from aiohttp.hdrs import USER_AGENT
from supervisor.coresys import CoreSys
from supervisor.utils.dt import utcnow
@ -29,3 +31,13 @@ def test_now(coresys: CoreSys):
assert zurich != utc
assert zurich - utc <= timedelta(hours=2)
def test_custom_user_agent(coresys: CoreSys):
"""Test custom useragent."""
assert (
"HomeAssistantSupervisor/DEV"
in coresys.websession._default_headers[ # pylint: disable=protected-access
USER_AGENT
]
)