Remove AdGuard version check (#38326)
This commit is contained in:
parent
e8c9734f3a
commit
2c6686c5e1
5 changed files with 5 additions and 85 deletions
|
@ -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)
|
||||||
|
|
|
@ -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={
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,
|
|
||||||
}
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue