Fix MQTT config entry deprecation warnings (#67174)

This commit is contained in:
Franck Nijhof 2022-02-24 18:14:38 +01:00 committed by GitHub
parent fb4de7211b
commit 21f3e5ef13
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -179,19 +179,7 @@ MQTT_WILL_BIRTH_SCHEMA = vol.Schema(
required=True, required=True,
) )
CONFIG_SCHEMA_BASE = vol.Schema(
CONFIG_SCHEMA = vol.Schema(
{
DOMAIN: vol.All(
cv.deprecated(CONF_BIRTH_MESSAGE), # Deprecated in HA Core 2022.3
cv.deprecated(CONF_BROKER), # Deprecated in HA Core 2022.3
cv.deprecated(CONF_DISCOVERY), # Deprecated in HA Core 2022.3
cv.deprecated(CONF_PASSWORD), # Deprecated in HA Core 2022.3
cv.deprecated(CONF_PORT), # Deprecated in HA Core 2022.3
cv.deprecated(CONF_TLS_VERSION), # Deprecated June 2020
cv.deprecated(CONF_USERNAME), # Deprecated in HA Core 2022.3
cv.deprecated(CONF_WILL_MESSAGE), # Deprecated in HA Core 2022.3
vol.Schema(
{ {
vol.Optional(CONF_CLIENT_ID): cv.string, vol.Optional(CONF_CLIENT_ID): cv.string,
vol.Optional(CONF_KEEPALIVE, default=DEFAULT_KEEPALIVE): vol.All( vol.Optional(CONF_KEEPALIVE, default=DEFAULT_KEEPALIVE): vol.All(
@ -209,18 +197,14 @@ CONFIG_SCHEMA = vol.Schema(
CONF_CLIENT_CERT, "client_key_auth", msg=CLIENT_KEY_AUTH_MSG CONF_CLIENT_CERT, "client_key_auth", msg=CLIENT_KEY_AUTH_MSG
): cv.isfile, ): cv.isfile,
vol.Optional(CONF_TLS_INSECURE): cv.boolean, vol.Optional(CONF_TLS_INSECURE): cv.boolean,
vol.Optional( vol.Optional(CONF_TLS_VERSION, default=DEFAULT_TLS_PROTOCOL): vol.Any(
CONF_TLS_VERSION, default=DEFAULT_TLS_PROTOCOL "auto", "1.0", "1.1", "1.2"
): vol.Any("auto", "1.0", "1.1", "1.2"), ),
vol.Optional(CONF_PROTOCOL, default=DEFAULT_PROTOCOL): vol.All( vol.Optional(CONF_PROTOCOL, default=DEFAULT_PROTOCOL): vol.All(
cv.string, vol.In([PROTOCOL_31, PROTOCOL_311]) cv.string, vol.In([PROTOCOL_31, PROTOCOL_311])
), ),
vol.Optional( vol.Optional(CONF_WILL_MESSAGE, default=DEFAULT_WILL): MQTT_WILL_BIRTH_SCHEMA,
CONF_WILL_MESSAGE, default=DEFAULT_WILL vol.Optional(CONF_BIRTH_MESSAGE, default=DEFAULT_BIRTH): MQTT_WILL_BIRTH_SCHEMA,
): MQTT_WILL_BIRTH_SCHEMA,
vol.Optional(
CONF_BIRTH_MESSAGE, default=DEFAULT_BIRTH
): MQTT_WILL_BIRTH_SCHEMA,
vol.Optional(CONF_DISCOVERY, default=DEFAULT_DISCOVERY): cv.boolean, vol.Optional(CONF_DISCOVERY, default=DEFAULT_DISCOVERY): cv.boolean,
# discovery_prefix must be a valid publish topic because if no # discovery_prefix must be a valid publish topic because if no
# state topic is specified, it will be created with the given prefix. # state topic is specified, it will be created with the given prefix.
@ -228,7 +212,20 @@ CONFIG_SCHEMA = vol.Schema(
CONF_DISCOVERY_PREFIX, default=DEFAULT_PREFIX CONF_DISCOVERY_PREFIX, default=DEFAULT_PREFIX
): valid_publish_topic, ): valid_publish_topic,
} }
), )
CONFIG_SCHEMA = vol.Schema(
{
DOMAIN: vol.All(
cv.deprecated(CONF_BIRTH_MESSAGE), # Deprecated in HA Core 2022.3
cv.deprecated(CONF_BROKER), # Deprecated in HA Core 2022.3
cv.deprecated(CONF_DISCOVERY), # Deprecated in HA Core 2022.3
cv.deprecated(CONF_PASSWORD), # Deprecated in HA Core 2022.3
cv.deprecated(CONF_PORT), # Deprecated in HA Core 2022.3
cv.deprecated(CONF_TLS_VERSION), # Deprecated June 2020
cv.deprecated(CONF_USERNAME), # Deprecated in HA Core 2022.3
cv.deprecated(CONF_WILL_MESSAGE), # Deprecated in HA Core 2022.3
CONFIG_SCHEMA_BASE,
) )
}, },
extra=vol.ALLOW_EXTRA, extra=vol.ALLOW_EXTRA,
@ -619,7 +616,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Load a config entry.""" """Load a config entry."""
# If user didn't have configuration.yaml config, generate defaults # If user didn't have configuration.yaml config, generate defaults
if (conf := hass.data.get(DATA_MQTT_CONFIG)) is None: if (conf := hass.data.get(DATA_MQTT_CONFIG)) is None:
conf = CONFIG_SCHEMA({DOMAIN: dict(entry.data)})[DOMAIN] conf = CONFIG_SCHEMA_BASE(dict(entry.data))
elif any(key in conf for key in entry.data): elif any(key in conf for key in entry.data):
shared_keys = conf.keys() & entry.data.keys() shared_keys = conf.keys() & entry.data.keys()
override = {k: entry.data[k] for k in shared_keys} override = {k: entry.data[k] for k in shared_keys}
@ -811,7 +808,7 @@ class MQTT:
self = hass.data[DATA_MQTT] self = hass.data[DATA_MQTT]
if (conf := hass.data.get(DATA_MQTT_CONFIG)) is None: if (conf := hass.data.get(DATA_MQTT_CONFIG)) is None:
conf = CONFIG_SCHEMA({DOMAIN: dict(entry.data)})[DOMAIN] conf = CONFIG_SCHEMA_BASE(dict(entry.data))
self.conf = _merge_config(entry, conf) self.conf = _merge_config(entry, conf)
await self.async_disconnect() await self.async_disconnect()