From 00e784d0c45096feb7533e3516a3f9844711bc76 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Fri, 19 May 2023 13:24:21 -0500 Subject: [PATCH] adjust --- homeassistant/components/http/__init__.py | 27 ++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/http/__init__.py b/homeassistant/components/http/__init__.py index 2d323fa9ec..4cd9796bdb 100644 --- a/homeassistant/components/http/__init__.py +++ b/homeassistant/components/http/__init__.py @@ -91,9 +91,6 @@ SAVE_DELAY: Final = 180 CONF_SERVERS = "servers" SERVER_SCHEMA = { - vol.Optional(CONF_SERVER_HOST): vol.All( - cv.ensure_list, vol.Length(min=1), [cv.string] - ), vol.Optional(CONF_SERVER_PORT, default=SERVER_PORT): cv.port, vol.Optional(CONF_SSL_CERTIFICATE): cv.isfile, vol.Optional(CONF_SSL_PEER_CERTIFICATE): cv.isfile, @@ -111,14 +108,34 @@ def _has_all_unique_ports(servers: list[dict[str, Any]]) -> list[dict[str, Any]] return servers +SERVERS_EXCLUSIVE_MESSAGE = ( + 'Configure one server at top level or configure multiple servers under "servers"' +) + HTTP_SCHEMA: Final = vol.All( cv.deprecated(CONF_BASE_URL), vol.Schema( { + vol.Exclusive( + CONF_SERVER_HOST, "servers", msg=SERVERS_EXCLUSIVE_MESSAGE + ): vol.All(cv.ensure_list, vol.Length(min=1), [cv.string]), **SERVER_SCHEMA, vol.Optional(CONF_BASE_URL): cv.string, - vol.Optional(CONF_SERVERS): vol.All( - cv.ensure_list, [vol.Schema(SERVER_SCHEMA)], _has_all_unique_ports + vol.Exclusive( + CONF_SERVERS, "servers", msg=SERVERS_EXCLUSIVE_MESSAGE + ): vol.All( + cv.ensure_list, + [ + vol.Schema( + { + vol.Optional(CONF_SERVER_HOST): vol.All( + cv.ensure_list, vol.Length(min=1), [cv.string] + ) + } + | SERVER_SCHEMA + ) + ], + _has_all_unique_ports, ), vol.Optional(CONF_CORS_ORIGINS, default=DEFAULT_CORS): vol.All( cv.ensure_list, [cv.string]