Store ezviz flow data in flow handler attributes (#127171)

This commit is contained in:
Erik Montnemery 2024-10-01 11:11:21 +02:00 committed by GitHub
parent 46480c5624
commit 36df9e0464
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -93,6 +93,10 @@ class EzvizConfigFlow(ConfigFlow, domain=DOMAIN):
VERSION = 1
ip_address: str
username: str | None
password: str | None
async def _validate_and_create_camera_rtsp(self, data: dict) -> ConfigFlowResult:
"""Try DESCRIBE on RTSP camera with credentials."""
@ -166,10 +170,8 @@ class EzvizConfigFlow(ConfigFlow, domain=DOMAIN):
self._abort_if_unique_id_configured()
if user_input[CONF_URL] == CONF_CUSTOMIZE:
self.context["data"] = {
CONF_USERNAME: user_input[CONF_USERNAME],
CONF_PASSWORD: user_input[CONF_PASSWORD],
}
self.username = user_input[CONF_USERNAME]
self.password = user_input[CONF_PASSWORD]
return await self.async_step_user_custom_url()
try:
@ -222,8 +224,8 @@ class EzvizConfigFlow(ConfigFlow, domain=DOMAIN):
auth_data = {}
if user_input is not None:
user_input[CONF_USERNAME] = self.context["data"][CONF_USERNAME]
user_input[CONF_PASSWORD] = self.context["data"][CONF_PASSWORD]
user_input[CONF_USERNAME] = self.username
user_input[CONF_PASSWORD] = self.password
try:
auth_data = await self.hass.async_add_executor_job(
@ -272,7 +274,7 @@ class EzvizConfigFlow(ConfigFlow, domain=DOMAIN):
self._abort_if_unique_id_configured()
self.context["title_placeholders"] = {ATTR_SERIAL: self.unique_id}
self.context["data"] = {CONF_IP_ADDRESS: discovery_info[CONF_IP_ADDRESS]}
self.ip_address = discovery_info[CONF_IP_ADDRESS]
return await self.async_step_confirm()
@ -284,7 +286,7 @@ class EzvizConfigFlow(ConfigFlow, domain=DOMAIN):
if user_input is not None:
user_input[ATTR_SERIAL] = self.unique_id
user_input[CONF_IP_ADDRESS] = self.context["data"][CONF_IP_ADDRESS]
user_input[CONF_IP_ADDRESS] = self.ip_address
try:
return await self._validate_and_create_camera_rtsp(user_input)
@ -314,7 +316,7 @@ class EzvizConfigFlow(ConfigFlow, domain=DOMAIN):
errors=errors,
description_placeholders={
ATTR_SERIAL: self.unique_id,
CONF_IP_ADDRESS: self.context["data"][CONF_IP_ADDRESS],
CONF_IP_ADDRESS: self.ip_address,
},
)