Remove old dns forwarder (#1945)

This commit is contained in:
Pascal Vizeli 2020-08-18 21:40:52 +02:00 committed by GitHub
parent 838ba7ff36
commit 3541cbff5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 1 additions and 65 deletions

View File

@ -14,8 +14,7 @@ RUN \
libffi \
libpulse \
musl \
openssl \
socat
openssl
ARG BUILD_ARCH
WORKDIR /usr/src

View File

@ -259,7 +259,6 @@ class Core(CoreSysAttributes):
self.sys_websession.close(),
self.sys_websession_ssl.close(),
self.sys_ingress.unload(),
self.sys_plugins.unload(),
self.sys_hwmonitor.unload(),
]
)

View File

@ -1,49 +0,0 @@
"""Setup the internal DNS service for host applications."""
import asyncio
from ipaddress import IPv4Address
import logging
import shlex
from typing import Optional
import async_timeout
_LOGGER: logging.Logger = logging.getLogger(__name__)
COMMAND = "socat UDP-RECVFROM:53,fork UDP-SENDTO:{!s}:53"
class DNSForward:
"""Manage DNS forwarding to internal DNS."""
def __init__(self):
"""Initialize DNS forwarding."""
self.proc: Optional[asyncio.Process] = None
async def start(self, dns_server: IPv4Address) -> None:
"""Start DNS forwarding."""
try:
self.proc = await asyncio.create_subprocess_exec(
*shlex.split(COMMAND.format(dns_server)),
stdin=asyncio.subprocess.DEVNULL,
stdout=asyncio.subprocess.DEVNULL,
stderr=asyncio.subprocess.DEVNULL,
)
except OSError as err:
_LOGGER.error("Can't start DNS forwarding: %s", err)
else:
_LOGGER.info("Start DNS port forwarding to %s", dns_server)
async def stop(self) -> None:
"""Stop DNS forwarding."""
if not self.proc:
_LOGGER.warning("DNS forwarding is not running!")
return
self.proc.kill()
try:
with async_timeout.timeout(5):
await self.proc.wait()
except asyncio.TimeoutError:
_LOGGER.warning("Stop waiting for DNS shutdown")
_LOGGER.info("Stop DNS forwarding")

View File

@ -111,10 +111,6 @@ class PluginManager(CoreSysAttributes):
]
)
async def unload(self) -> None:
"""Unload Supervisor plugin."""
await asyncio.wait([self.dns.unload()])
async def shutdown(self) -> None:
"""Shutdown Supervisor plugin."""
# Sequential to avoid issue on slow IO

View File

@ -25,7 +25,6 @@ from ..coresys import CoreSys, CoreSysAttributes
from ..docker.dns import DockerDNS
from ..docker.stats import DockerStats
from ..exceptions import CoreDNSError, CoreDNSUpdateError, DockerAPIError
from ..misc.forwarder import DNSForward
from ..utils.json import JsonConfig
from ..validate import dns_url
from .validate import SCHEMA_DNS_CONFIG
@ -53,7 +52,6 @@ class CoreDNS(JsonConfig, CoreSysAttributes):
super().__init__(FILE_HASSIO_DNS, SCHEMA_DNS_CONFIG)
self.coresys: CoreSys = coresys
self.instance: DockerDNS = DockerDNS(coresys)
self.forwarder: DNSForward = DNSForward()
self.coredns_template: Optional[jinja2.Template] = None
self.resolv_template: Optional[jinja2.Template] = None
@ -141,9 +139,6 @@ class CoreDNS(JsonConfig, CoreSysAttributes):
self.image = self.instance.image
self.save_data()
# Start DNS forwarder
self.sys_create_task(self.forwarder.start(self.sys_docker.network.dns))
# Initialize CoreDNS Template
try:
self.coredns_template = jinja2.Template(COREDNS_TMPL.read_text())
@ -164,10 +159,6 @@ class CoreDNS(JsonConfig, CoreSysAttributes):
# Update supervisor
self._write_resolv(HOST_RESOLV)
async def unload(self) -> None:
"""Unload DNS forwarder."""
await self.forwarder.stop()
async def install(self) -> None:
"""Install CoreDNS."""
_LOGGER.info("Setup CoreDNS plugin")