Remove AdGuard version check (#38326)

This commit is contained in:
Franck Nijhof 2020-07-28 17:51:35 +02:00 committed by GitHub
parent e8c9734f3a
commit 2c6686c5e1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 5 additions and 85 deletions

View file

@ -1,5 +1,4 @@
"""Support for AdGuard Home.""" """Support for AdGuard Home."""
from distutils.version import LooseVersion
import logging import logging
from typing import Any, Dict from typing import Any, Dict
@ -11,7 +10,6 @@ from homeassistant.components.adguard.const import (
DATA_ADGUARD_CLIENT, DATA_ADGUARD_CLIENT,
DATA_ADGUARD_VERION, DATA_ADGUARD_VERION,
DOMAIN, DOMAIN,
MIN_ADGUARD_HOME_VERSION,
SERVICE_ADD_URL, SERVICE_ADD_URL,
SERVICE_DISABLE_URL, SERVICE_DISABLE_URL,
SERVICE_ENABLE_URL, SERVICE_ENABLE_URL,
@ -67,16 +65,10 @@ async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry) -> bool
hass.data.setdefault(DOMAIN, {})[DATA_ADGUARD_CLIENT] = adguard hass.data.setdefault(DOMAIN, {})[DATA_ADGUARD_CLIENT] = adguard
try: try:
version = await adguard.version() await adguard.version()
except AdGuardHomeConnectionError as exception: except AdGuardHomeConnectionError as exception:
raise ConfigEntryNotReady from exception raise ConfigEntryNotReady from exception
if version and LooseVersion(MIN_ADGUARD_HOME_VERSION) > LooseVersion(version):
_LOGGER.error(
"This integration requires AdGuard Home v0.99.0 or higher to work correctly"
)
raise ConfigEntryNotReady
for component in "sensor", "switch": for component in "sensor", "switch":
hass.async_create_task( hass.async_create_task(
hass.config_entries.async_forward_entry_setup(entry, component) hass.config_entries.async_forward_entry_setup(entry, component)

View file

@ -1,12 +1,11 @@
"""Config flow to configure the AdGuard Home integration.""" """Config flow to configure the AdGuard Home integration."""
from distutils.version import LooseVersion
import logging import logging
from adguardhome import AdGuardHome, AdGuardHomeConnectionError from adguardhome import AdGuardHome, AdGuardHomeConnectionError
import voluptuous as vol import voluptuous as vol
from homeassistant import config_entries from homeassistant import config_entries
from homeassistant.components.adguard.const import DOMAIN, MIN_ADGUARD_HOME_VERSION from homeassistant.components.adguard.const import DOMAIN
from homeassistant.config_entries import ConfigFlow from homeassistant.config_entries import ConfigFlow
from homeassistant.const import ( from homeassistant.const import (
CONF_HOST, CONF_HOST,
@ -79,20 +78,11 @@ class AdGuardHomeFlowHandler(ConfigFlow):
) )
try: try:
version = await adguard.version() await adguard.version()
except AdGuardHomeConnectionError: except AdGuardHomeConnectionError:
errors["base"] = "connection_error" errors["base"] = "connection_error"
return await self._show_setup_form(errors) return await self._show_setup_form(errors)
if version and LooseVersion(MIN_ADGUARD_HOME_VERSION) > LooseVersion(version):
return self.async_abort(
reason="adguard_home_outdated",
description_placeholders={
"current_version": version,
"minimal_version": MIN_ADGUARD_HOME_VERSION,
},
)
return self.async_create_entry( return self.async_create_entry(
title=user_input[CONF_HOST], title=user_input[CONF_HOST],
data={ data={
@ -160,20 +150,11 @@ class AdGuardHomeFlowHandler(ConfigFlow):
) )
try: try:
version = await adguard.version() await adguard.version()
except AdGuardHomeConnectionError: except AdGuardHomeConnectionError:
errors["base"] = "connection_error" errors["base"] = "connection_error"
return await self._show_hassio_form(errors) return await self._show_hassio_form(errors)
if LooseVersion(MIN_ADGUARD_HOME_VERSION) > LooseVersion(version):
return self.async_abort(
reason="adguard_home_addon_outdated",
description_placeholders={
"current_version": version,
"minimal_version": MIN_ADGUARD_HOME_VERSION,
},
)
return self.async_create_entry( return self.async_create_entry(
title=self._hassio_discovery["addon"], title=self._hassio_discovery["addon"],
data={ data={

View file

@ -7,8 +7,6 @@ DATA_ADGUARD_VERION = "adguard_version"
CONF_FORCE = "force" CONF_FORCE = "force"
MIN_ADGUARD_HOME_VERSION = "v0.99.0"
SERVICE_ADD_URL = "add_url" SERVICE_ADD_URL = "add_url"
SERVICE_DISABLE_URL = "disable_url" SERVICE_DISABLE_URL = "disable_url"
SERVICE_ENABLE_URL = "enable_url" SERVICE_ENABLE_URL = "enable_url"

View file

@ -19,8 +19,6 @@
}, },
"error": { "connection_error": "Failed to connect." }, "error": { "connection_error": "Failed to connect." },
"abort": { "abort": {
"adguard_home_outdated": "This integration requires AdGuard Home {minimal_version} or higher, you have {current_version}.",
"adguard_home_addon_outdated": "This integration requires AdGuard Home {minimal_version} or higher, you have {current_version}. Please update your Hass.io AdGuard Home add-on.",
"existing_instance_updated": "Updated existing configuration.", "existing_instance_updated": "Updated existing configuration.",
"single_instance_allowed": "Only a single configuration of AdGuard Home is allowed." "single_instance_allowed": "Only a single configuration of AdGuard Home is allowed."
} }

View file

@ -4,7 +4,7 @@ import aiohttp
from homeassistant import config_entries, data_entry_flow from homeassistant import config_entries, data_entry_flow
from homeassistant.components.adguard import config_flow from homeassistant.components.adguard import config_flow
from homeassistant.components.adguard.const import DOMAIN, MIN_ADGUARD_HOME_VERSION from homeassistant.components.adguard.const import DOMAIN
from homeassistant.const import ( from homeassistant.const import (
CONF_HOST, CONF_HOST,
CONF_PASSWORD, CONF_PASSWORD,
@ -229,52 +229,3 @@ async def test_hassio_connection_error(hass, aioclient_mock):
assert result["type"] == data_entry_flow.RESULT_TYPE_FORM assert result["type"] == data_entry_flow.RESULT_TYPE_FORM
assert result["step_id"] == "hassio_confirm" assert result["step_id"] == "hassio_confirm"
assert result["errors"] == {"base": "connection_error"} assert result["errors"] == {"base": "connection_error"}
async def test_outdated_adguard_version(hass, aioclient_mock):
"""Test we show abort when connecting with unsupported AdGuard version."""
aioclient_mock.get(
f"{'https' if FIXTURE_USER_INPUT[CONF_SSL] else 'http'}"
f"://{FIXTURE_USER_INPUT[CONF_HOST]}"
f":{FIXTURE_USER_INPUT[CONF_PORT]}/control/status",
json={"version": "v0.98.0"},
headers={"Content-Type": "application/json"},
)
flow = config_flow.AdGuardHomeFlowHandler()
flow.hass = hass
result = await flow.async_step_user(user_input=None)
assert result["type"] == data_entry_flow.RESULT_TYPE_FORM
assert result["step_id"] == "user"
result = await flow.async_step_user(user_input=FIXTURE_USER_INPUT)
assert result["type"] == data_entry_flow.RESULT_TYPE_ABORT
assert result["reason"] == "adguard_home_outdated"
assert result["description_placeholders"] == {
"current_version": "v0.98.0",
"minimal_version": MIN_ADGUARD_HOME_VERSION,
}
async def test_outdated_adguard_addon_version(hass, aioclient_mock):
"""Test we show abort when connecting with unsupported AdGuard add-on version."""
aioclient_mock.get(
"http://mock-adguard:3000/control/status",
json={"version": "v0.98.0"},
headers={"Content-Type": "application/json"},
)
result = await hass.config_entries.flow.async_init(
"adguard",
data={"addon": "AdGuard Home Addon", "host": "mock-adguard", "port": 3000},
context={"source": "hassio"},
)
result = await hass.config_entries.flow.async_configure(result["flow_id"], {})
assert result["type"] == data_entry_flow.RESULT_TYPE_ABORT
assert result["reason"] == "adguard_home_addon_outdated"
assert result["description_placeholders"] == {
"current_version": "v0.98.0",
"minimal_version": MIN_ADGUARD_HOME_VERSION,
}