mirror of
https://github.com/home-assistant/core.git
synced 2025-07-14 00:37:13 +00:00
Fix cert expiry config flow check and update (#26638)
* Fix typo in translations * Work on bug #26619 * readd the homeassistant.start event * Remove the callback * Added the executor_job for _test_connection * Update test_config_flow.py
This commit is contained in:
parent
504b8c7685
commit
9114ed36cd
@ -21,4 +21,4 @@
|
|||||||
},
|
},
|
||||||
"title": "Certificate Expiry"
|
"title": "Certificate Expiry"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
"""The cert_expiry component."""
|
"""The cert_expiry component."""
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import EVENT_HOMEASSISTANT_START
|
|
||||||
from homeassistant.core import callback
|
|
||||||
from homeassistant.helpers.typing import HomeAssistantType
|
from homeassistant.helpers.typing import HomeAssistantType
|
||||||
|
|
||||||
|
|
||||||
@ -13,13 +11,7 @@ async def async_setup(hass, config):
|
|||||||
async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry):
|
async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry):
|
||||||
"""Load the saved entities."""
|
"""Load the saved entities."""
|
||||||
|
|
||||||
@callback
|
hass.async_create_task(
|
||||||
def async_start(_):
|
hass.config_entries.async_forward_entry_setup(entry, "sensor")
|
||||||
"""Load the entry after the start event."""
|
)
|
||||||
hass.async_create_task(
|
|
||||||
hass.config_entries.async_forward_entry_setup(entry, "sensor")
|
|
||||||
)
|
|
||||||
|
|
||||||
hass.bus.async_listen_once(EVENT_HOMEASSISTANT_START, async_start)
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
@ -38,10 +38,12 @@ class CertexpiryConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def _test_connection(self, user_input=None):
|
async def _test_connection(self, user_input=None):
|
||||||
"""Test connection to the server and try to get the certtificate."""
|
"""Test connection to the server and try to get the certtificate."""
|
||||||
try:
|
try:
|
||||||
get_cert(user_input[CONF_HOST], user_input.get(CONF_PORT, DEFAULT_PORT))
|
await self.hass.async_add_executor_job(
|
||||||
|
get_cert, user_input[CONF_HOST], user_input.get(CONF_PORT, DEFAULT_PORT)
|
||||||
|
)
|
||||||
return True
|
return True
|
||||||
except socket.gaierror:
|
except socket.gaierror:
|
||||||
self._errors[CONF_HOST] = "resolve_failed"
|
self._errors[CONF_HOST] = "resolve_failed"
|
||||||
@ -59,7 +61,7 @@ class CertexpiryConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
if self._prt_in_configuration_exists(user_input):
|
if self._prt_in_configuration_exists(user_input):
|
||||||
self._errors[CONF_HOST] = "host_port_exists"
|
self._errors[CONF_HOST] = "host_port_exists"
|
||||||
else:
|
else:
|
||||||
if self._test_connection(user_input):
|
if await self._test_connection(user_input):
|
||||||
host = user_input[CONF_HOST]
|
host = user_input[CONF_HOST]
|
||||||
name = slugify(user_input.get(CONF_NAME, DEFAULT_NAME))
|
name = slugify(user_input.get(CONF_NAME, DEFAULT_NAME))
|
||||||
prt = user_input.get(CONF_PORT, DEFAULT_PORT)
|
prt = user_input.get(CONF_PORT, DEFAULT_PORT)
|
||||||
|
@ -9,7 +9,12 @@ import voluptuous as vol
|
|||||||
import homeassistant.helpers.config_validation as cv
|
import homeassistant.helpers.config_validation as cv
|
||||||
from homeassistant.config_entries import SOURCE_IMPORT
|
from homeassistant.config_entries import SOURCE_IMPORT
|
||||||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||||
from homeassistant.const import CONF_NAME, CONF_HOST, CONF_PORT
|
from homeassistant.const import (
|
||||||
|
CONF_NAME,
|
||||||
|
CONF_HOST,
|
||||||
|
CONF_PORT,
|
||||||
|
EVENT_HOMEASSISTANT_START,
|
||||||
|
)
|
||||||
from homeassistant.helpers.entity import Entity
|
from homeassistant.helpers.entity import Entity
|
||||||
|
|
||||||
from .const import DOMAIN, DEFAULT_NAME, DEFAULT_PORT
|
from .const import DOMAIN, DEFAULT_NAME, DEFAULT_PORT
|
||||||
@ -82,6 +87,15 @@ class SSLCertificate(Entity):
|
|||||||
"""Icon to use in the frontend, if any."""
|
"""Icon to use in the frontend, if any."""
|
||||||
return self._available
|
return self._available
|
||||||
|
|
||||||
|
async def async_added_to_hass(self):
|
||||||
|
"""Once the entity is added we should update to get the initial data loaded."""
|
||||||
|
|
||||||
|
def do_update(_):
|
||||||
|
"""Run the update method when the start event was fired."""
|
||||||
|
self.update()
|
||||||
|
|
||||||
|
self.hass.bus.async_listen_once(EVENT_HOMEASSISTANT_START, do_update)
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
"""Fetch the certificate information."""
|
"""Fetch the certificate information."""
|
||||||
try:
|
try:
|
||||||
|
@ -8,7 +8,7 @@ from homeassistant.components.cert_expiry import config_flow
|
|||||||
from homeassistant.components.cert_expiry.const import DEFAULT_PORT
|
from homeassistant.components.cert_expiry.const import DEFAULT_PORT
|
||||||
from homeassistant.const import CONF_PORT, CONF_NAME, CONF_HOST
|
from homeassistant.const import CONF_PORT, CONF_NAME, CONF_HOST
|
||||||
|
|
||||||
from tests.common import MockConfigEntry
|
from tests.common import MockConfigEntry, mock_coro
|
||||||
|
|
||||||
NAME = "Cert Expiry test 1 2 3"
|
NAME = "Cert Expiry test 1 2 3"
|
||||||
PORT = 443
|
PORT = 443
|
||||||
@ -20,7 +20,7 @@ def mock_controller():
|
|||||||
"""Mock a successfull _prt_in_configuration_exists."""
|
"""Mock a successfull _prt_in_configuration_exists."""
|
||||||
with patch(
|
with patch(
|
||||||
"homeassistant.components.cert_expiry.config_flow.CertexpiryConfigFlow._test_connection",
|
"homeassistant.components.cert_expiry.config_flow.CertexpiryConfigFlow._test_connection",
|
||||||
return_value=True,
|
side_effect=lambda *_: mock_coro(True),
|
||||||
):
|
):
|
||||||
yield
|
yield
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user