diff --git a/API.md b/API.md index a6fc1b6da..36ea2c474 100644 --- a/API.md +++ b/API.md @@ -771,6 +771,8 @@ return: } ``` +- POST `/dns/restart` + - GET `/dns/logs` - GET `/dns/stats` diff --git a/hassio/api/__init__.py b/hassio/api/__init__.py index dbc3decaf..2a02eaeb8 100644 --- a/hassio/api/__init__.py +++ b/hassio/api/__init__.py @@ -278,6 +278,7 @@ class RestAPI(CoreSysAttributes): web.get("/dns/logs", api_dns.logs), web.post("/dns/update", api_dns.update), web.post("/dns/options", api_dns.options), + web.post("/dns/restart", api_dns.restart), ] ) diff --git a/hassio/api/dns.py b/hassio/api/dns.py index b643a6539..b4666b9eb 100644 --- a/hassio/api/dns.py +++ b/hassio/api/dns.py @@ -54,6 +54,7 @@ class APICoreDNS(CoreSysAttributes): if ATTR_SERVERS in body: self.sys_dns.servers = body[ATTR_SERVERS] + self.sys_create_task(self.sys_dns.restart()) self.sys_dns.save_data() @@ -87,3 +88,8 @@ class APICoreDNS(CoreSysAttributes): def logs(self, request: web.Request) -> Awaitable[bytes]: """Return DNS Docker logs.""" return self.sys_dns.logs() + + @api_process + def restart(self, request: web.Request) -> Awaitable[None]: + """Restart CoreDNS plugin.""" + return asyncio.shield(self.sys_dns.restart()) diff --git a/hassio/const.py b/hassio/const.py index cb67d0f9f..3e45005a9 100644 --- a/hassio/const.py +++ b/hassio/const.py @@ -3,7 +3,7 @@ from pathlib import Path from ipaddress import ip_network -HASSIO_VERSION = "179" +HASSIO_VERSION = "180" URL_HASSIO_ADDONS = "https://github.com/home-assistant/hassio-addons" URL_HASSIO_VERSION = "https://version.home-assistant.io/{channel}.json" @@ -32,7 +32,7 @@ DOCKER_NETWORK = "hassio" DOCKER_NETWORK_MASK = ip_network("172.30.32.0/23") DOCKER_NETWORK_RANGE = ip_network("172.30.33.0/24") -DNS_SERVERS = ["dns://8.8.8.8", "dns://1.1.1.1"] +DNS_SERVERS = ["dns://1.1.1.1", "dns://9.9.9.9"] DNS_SUFFIX = "local.hass.io" LABEL_VERSION = "io.hass.version" diff --git a/hassio/data/coredns.tmpl b/hassio/data/coredns.tmpl index cc528007a..01ed22b0c 100644 --- a/hassio/data/coredns.tmpl +++ b/hassio/data/coredns.tmpl @@ -4,6 +4,8 @@ fallthrough } forward . $servers { + except local.hass.io + policy sequential health_check 10s } } diff --git a/hassio/dns.py b/hassio/dns.py index 1bb24a94d..798d2f9d9 100644 --- a/hassio/dns.py +++ b/hassio/dns.py @@ -222,6 +222,7 @@ class CoreDNS(JsonConfig, CoreSysAttributes): def _init_hosts(self) -> None: """Import hosts entry.""" # Generate Default + self.add_host(IPv4Address("127.0.0.1"), ["localhost"], write=False) self.add_host( self.sys_docker.network.supervisor, ["hassio", "supervisor"], write=False )