Blank out discovery info (#56097)
This commit is contained in:
parent
64fd496932
commit
bcb3c426f4
2 changed files with 34 additions and 31 deletions
|
@ -1,6 +1,5 @@
|
||||||
"""Rest API for Home Assistant."""
|
"""Rest API for Home Assistant."""
|
||||||
import asyncio
|
import asyncio
|
||||||
from contextlib import suppress
|
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
@ -30,15 +29,12 @@ from homeassistant.const import (
|
||||||
URL_API_STATES,
|
URL_API_STATES,
|
||||||
URL_API_STREAM,
|
URL_API_STREAM,
|
||||||
URL_API_TEMPLATE,
|
URL_API_TEMPLATE,
|
||||||
__version__,
|
|
||||||
)
|
)
|
||||||
import homeassistant.core as ha
|
import homeassistant.core as ha
|
||||||
from homeassistant.exceptions import ServiceNotFound, TemplateError, Unauthorized
|
from homeassistant.exceptions import ServiceNotFound, TemplateError, Unauthorized
|
||||||
from homeassistant.helpers import template
|
from homeassistant.helpers import template
|
||||||
from homeassistant.helpers.json import JSONEncoder
|
from homeassistant.helpers.json import JSONEncoder
|
||||||
from homeassistant.helpers.network import NoURLAvailableError, get_url
|
|
||||||
from homeassistant.helpers.service import async_get_all_descriptions
|
from homeassistant.helpers.service import async_get_all_descriptions
|
||||||
from homeassistant.helpers.system_info import async_get_system_info
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -173,7 +169,11 @@ class APIConfigView(HomeAssistantView):
|
||||||
|
|
||||||
|
|
||||||
class APIDiscoveryView(HomeAssistantView):
|
class APIDiscoveryView(HomeAssistantView):
|
||||||
"""View to provide Discovery information."""
|
"""
|
||||||
|
View to provide Discovery information.
|
||||||
|
|
||||||
|
DEPRECATED: To be removed in 2022.1
|
||||||
|
"""
|
||||||
|
|
||||||
requires_auth = False
|
requires_auth = False
|
||||||
url = URL_API_DISCOVERY_INFO
|
url = URL_API_DISCOVERY_INFO
|
||||||
|
@ -181,32 +181,18 @@ class APIDiscoveryView(HomeAssistantView):
|
||||||
|
|
||||||
async def get(self, request):
|
async def get(self, request):
|
||||||
"""Get discovery information."""
|
"""Get discovery information."""
|
||||||
hass = request.app["hass"]
|
return self.json(
|
||||||
uuid = await hass.helpers.instance_id.async_get()
|
{
|
||||||
system_info = await async_get_system_info(hass)
|
ATTR_UUID: "",
|
||||||
|
ATTR_BASE_URL: "",
|
||||||
data = {
|
ATTR_EXTERNAL_URL: "",
|
||||||
ATTR_UUID: uuid,
|
ATTR_INTERNAL_URL: "",
|
||||||
ATTR_BASE_URL: None,
|
ATTR_LOCATION_NAME: "",
|
||||||
ATTR_EXTERNAL_URL: None,
|
ATTR_INSTALLATION_TYPE: "",
|
||||||
ATTR_INTERNAL_URL: None,
|
ATTR_REQUIRES_API_PASSWORD: True,
|
||||||
ATTR_LOCATION_NAME: hass.config.location_name,
|
ATTR_VERSION: "",
|
||||||
ATTR_INSTALLATION_TYPE: system_info[ATTR_INSTALLATION_TYPE],
|
}
|
||||||
# always needs authentication
|
)
|
||||||
ATTR_REQUIRES_API_PASSWORD: True,
|
|
||||||
ATTR_VERSION: __version__,
|
|
||||||
}
|
|
||||||
|
|
||||||
with suppress(NoURLAvailableError):
|
|
||||||
data["external_url"] = get_url(hass, allow_internal=False)
|
|
||||||
|
|
||||||
with suppress(NoURLAvailableError):
|
|
||||||
data["internal_url"] = get_url(hass, allow_external=False)
|
|
||||||
|
|
||||||
# Set old base URL based on external or internal
|
|
||||||
data["base_url"] = data["external_url"] or data["internal_url"]
|
|
||||||
|
|
||||||
return self.json(data)
|
|
||||||
|
|
||||||
|
|
||||||
class APIStatesView(HomeAssistantView):
|
class APIStatesView(HomeAssistantView):
|
||||||
|
|
|
@ -559,3 +559,20 @@ async def test_api_call_service_bad_data(hass, mock_api_client):
|
||||||
"/api/services/test_domain/test_service", json={"hello": 5}
|
"/api/services/test_domain/test_service", json={"hello": 5}
|
||||||
)
|
)
|
||||||
assert resp.status == 400
|
assert resp.status == 400
|
||||||
|
|
||||||
|
|
||||||
|
async def test_api_get_discovery_info(hass, mock_api_client):
|
||||||
|
"""Test the return of discovery info."""
|
||||||
|
resp = await mock_api_client.get(const.URL_API_DISCOVERY_INFO)
|
||||||
|
result = await resp.json()
|
||||||
|
|
||||||
|
assert result == {
|
||||||
|
"base_url": "",
|
||||||
|
"external_url": "",
|
||||||
|
"installation_type": "",
|
||||||
|
"internal_url": "",
|
||||||
|
"location_name": "",
|
||||||
|
"requires_api_password": True,
|
||||||
|
"uuid": "",
|
||||||
|
"version": "",
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue