Remove support of UniFi device tracker configuration import (#26587)

This commit is contained in:
Robert Svensson 2019-09-11 21:35:30 +02:00 committed by Paulus Schoutsen
parent 0f204b34fa
commit 0221d136de
3 changed files with 7 additions and 78 deletions

View File

@ -1,4 +1,4 @@
"""Config flow for Unifi.""" """Config flow for UniFi."""
import voluptuous as vol import voluptuous as vol
from homeassistant import config_entries from homeassistant import config_entries
@ -164,20 +164,6 @@ class UnifiFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
errors=errors, errors=errors,
) )
async def async_step_import(self, import_config):
"""Import from UniFi device tracker config."""
config = {
CONF_HOST: import_config[CONF_HOST],
CONF_USERNAME: import_config[CONF_USERNAME],
CONF_PASSWORD: import_config[CONF_PASSWORD],
CONF_PORT: import_config.get(CONF_PORT),
CONF_VERIFY_SSL: import_config.get(CONF_VERIFY_SSL),
}
self.desc = import_config[CONF_SITE_ID]
return await self.async_step_user(user_input=config)
class UnifiOptionsFlowHandler(config_entries.OptionsFlow): class UnifiOptionsFlowHandler(config_entries.OptionsFlow):
"""Handle Unifi options.""" """Handle Unifi options."""

View File

@ -1,36 +1,20 @@
"""Support for Unifi WAP controllers.""" """Track devices using UniFi controllers."""
from datetime import timedelta
import logging import logging
import voluptuous as vol import voluptuous as vol
from homeassistant import config_entries
from homeassistant.components.unifi.config_flow import get_controller_from_config_entry from homeassistant.components.unifi.config_flow import get_controller_from_config_entry
from homeassistant.components.device_tracker import DOMAIN, PLATFORM_SCHEMA from homeassistant.components.device_tracker import DOMAIN, PLATFORM_SCHEMA
from homeassistant.components.device_tracker.config_entry import ScannerEntity from homeassistant.components.device_tracker.config_entry import ScannerEntity
from homeassistant.components.device_tracker.const import SOURCE_TYPE_ROUTER from homeassistant.components.device_tracker.const import SOURCE_TYPE_ROUTER
from homeassistant.core import callback from homeassistant.core import callback
from homeassistant.const import (
CONF_HOST,
CONF_USERNAME,
CONF_PASSWORD,
CONF_PORT,
CONF_VERIFY_SSL,
)
from homeassistant.helpers import entity_registry from homeassistant.helpers import entity_registry
from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC
from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_registry import DISABLED_CONFIG_ENTRY from homeassistant.helpers.entity_registry import DISABLED_CONFIG_ENTRY
import homeassistant.helpers.config_validation as cv
import homeassistant.util.dt as dt_util import homeassistant.util.dt as dt_util
from .const import ( from .const import ATTR_MANUFACTURER
ATTR_MANUFACTURER,
CONF_CONTROLLER,
CONF_SITE_ID,
DOMAIN as UNIFI_DOMAIN,
)
LOGGER = logging.getLogger(__name__) LOGGER = logging.getLogger(__name__)
@ -55,51 +39,11 @@ DEVICE_ATTRIBUTES = [
"vlan", "vlan",
] ]
CONF_DT_SITE_ID = "site_id" PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({}, extra=vol.ALLOW_EXTRA)
DEFAULT_HOST = "localhost"
DEFAULT_PORT = 8443
DEFAULT_VERIFY_SSL = True
DEFAULT_DETECTION_TIME = timedelta(seconds=300)
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{
vol.Optional(CONF_HOST, default=DEFAULT_HOST): cv.string,
vol.Optional(CONF_DT_SITE_ID, default="default"): cv.string,
vol.Required(CONF_PASSWORD): cv.string,
vol.Required(CONF_USERNAME): cv.string,
vol.Required(CONF_PORT, default=DEFAULT_PORT): cv.port,
vol.Optional(CONF_VERIFY_SSL, default=DEFAULT_VERIFY_SSL): vol.Any(
cv.boolean, cv.isfile
),
},
extra=vol.ALLOW_EXTRA,
)
async def async_setup_scanner(hass, config, sync_see, discovery_info): async def async_setup_scanner(hass, config, sync_see, discovery_info):
"""Set up the Unifi integration.""" """Set up the Unifi integration."""
config[CONF_SITE_ID] = config.pop(CONF_DT_SITE_ID) # Current from legacy
exist = False
for entry in hass.config_entries.async_entries(UNIFI_DOMAIN):
if (
config[CONF_HOST] == entry.data[CONF_CONTROLLER][CONF_HOST]
and config[CONF_SITE_ID] == entry.data[CONF_CONTROLLER][CONF_SITE_ID]
):
exist = True
break
if not exist:
hass.async_create_task(
hass.config_entries.flow.async_init(
UNIFI_DOMAIN,
context={"source": config_entries.SOURCE_IMPORT},
data=config,
)
)
return True return True

View File

@ -1,4 +1,4 @@
"""The tests for the Unifi WAP device tracker platform.""" """The tests for the UniFi device tracker platform."""
from collections import deque from collections import deque
from copy import copy from copy import copy
from unittest.mock import Mock from unittest.mock import Mock
@ -32,7 +32,6 @@ from homeassistant.helpers import entity_registry
from homeassistant.setup import async_setup_component from homeassistant.setup import async_setup_component
import homeassistant.components.device_tracker as device_tracker import homeassistant.components.device_tracker as device_tracker
import homeassistant.components.unifi.device_tracker as unifi_dt
import homeassistant.util.dt as dt_util import homeassistant.util.dt as dt_util
DEFAULT_DETECTION_TIME = timedelta(seconds=300) DEFAULT_DETECTION_TIME = timedelta(seconds=300)
@ -275,14 +274,14 @@ async def test_restoring_client(hass, mock_controller):
registry = await entity_registry.async_get_registry(hass) registry = await entity_registry.async_get_registry(hass)
registry.async_get_or_create( registry.async_get_or_create(
device_tracker.DOMAIN, device_tracker.DOMAIN,
unifi_dt.UNIFI_DOMAIN, unifi.DOMAIN,
"{}-mock-site".format(CLIENT_1["mac"]), "{}-mock-site".format(CLIENT_1["mac"]),
suggested_object_id=CLIENT_1["hostname"], suggested_object_id=CLIENT_1["hostname"],
config_entry=config_entry, config_entry=config_entry,
) )
registry.async_get_or_create( registry.async_get_or_create(
device_tracker.DOMAIN, device_tracker.DOMAIN,
unifi_dt.UNIFI_DOMAIN, unifi.DOMAIN,
"{}-mock-site".format(CLIENT_2["mac"]), "{}-mock-site".format(CLIENT_2["mac"]),
suggested_object_id=CLIENT_2["hostname"], suggested_object_id=CLIENT_2["hostname"],
config_entry=config_entry, config_entry=config_entry,