mirror of
https://github.com/home-assistant/core.git
synced 2025-07-16 17:57:11 +00:00
Add prometheus requires_auth parameter (#92964)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
This commit is contained in:
parent
40e256847c
commit
f6273bfca5
@ -52,6 +52,7 @@ API_ENDPOINT = "/api/prometheus"
|
|||||||
|
|
||||||
DOMAIN = "prometheus"
|
DOMAIN = "prometheus"
|
||||||
CONF_FILTER = "filter"
|
CONF_FILTER = "filter"
|
||||||
|
CONF_REQUIRES_AUTH = "requires_auth"
|
||||||
CONF_PROM_NAMESPACE = "namespace"
|
CONF_PROM_NAMESPACE = "namespace"
|
||||||
CONF_COMPONENT_CONFIG = "component_config"
|
CONF_COMPONENT_CONFIG = "component_config"
|
||||||
CONF_COMPONENT_CONFIG_GLOB = "component_config_glob"
|
CONF_COMPONENT_CONFIG_GLOB = "component_config_glob"
|
||||||
@ -70,6 +71,7 @@ CONFIG_SCHEMA = vol.Schema(
|
|||||||
{
|
{
|
||||||
vol.Optional(CONF_FILTER, default={}): entityfilter.FILTER_SCHEMA,
|
vol.Optional(CONF_FILTER, default={}): entityfilter.FILTER_SCHEMA,
|
||||||
vol.Optional(CONF_PROM_NAMESPACE, default=DEFAULT_NAMESPACE): cv.string,
|
vol.Optional(CONF_PROM_NAMESPACE, default=DEFAULT_NAMESPACE): cv.string,
|
||||||
|
vol.Optional(CONF_REQUIRES_AUTH, default=True): cv.boolean,
|
||||||
vol.Optional(CONF_DEFAULT_METRIC): cv.string,
|
vol.Optional(CONF_DEFAULT_METRIC): cv.string,
|
||||||
vol.Optional(CONF_OVERRIDE_METRIC): cv.string,
|
vol.Optional(CONF_OVERRIDE_METRIC): cv.string,
|
||||||
vol.Optional(CONF_COMPONENT_CONFIG, default={}): vol.Schema(
|
vol.Optional(CONF_COMPONENT_CONFIG, default={}): vol.Schema(
|
||||||
@ -90,7 +92,9 @@ CONFIG_SCHEMA = vol.Schema(
|
|||||||
|
|
||||||
def setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
def setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
||||||
"""Activate Prometheus component."""
|
"""Activate Prometheus component."""
|
||||||
hass.http.register_view(PrometheusView(prometheus_client))
|
hass.http.register_view(
|
||||||
|
PrometheusView(prometheus_client, config[DOMAIN][CONF_REQUIRES_AUTH])
|
||||||
|
)
|
||||||
|
|
||||||
conf = config[DOMAIN]
|
conf = config[DOMAIN]
|
||||||
entity_filter = conf[CONF_FILTER]
|
entity_filter = conf[CONF_FILTER]
|
||||||
@ -650,8 +654,9 @@ class PrometheusView(HomeAssistantView):
|
|||||||
url = API_ENDPOINT
|
url = API_ENDPOINT
|
||||||
name = "api:prometheus"
|
name = "api:prometheus"
|
||||||
|
|
||||||
def __init__(self, prometheus_cli):
|
def __init__(self, prometheus_cli, requires_auth: bool) -> None:
|
||||||
"""Initialize Prometheus view."""
|
"""Initialize Prometheus view."""
|
||||||
|
self.requires_auth = requires_auth
|
||||||
self.prometheus_cli = prometheus_cli
|
self.prometheus_cli = prometheus_cli
|
||||||
|
|
||||||
async def get(self, request):
|
async def get(self, request):
|
||||||
|
@ -1581,6 +1581,7 @@ async def test_full_config(hass: HomeAssistant, mock_client) -> None:
|
|||||||
"namespace": "ns",
|
"namespace": "ns",
|
||||||
"default_metric": "m",
|
"default_metric": "m",
|
||||||
"override_metric": "m",
|
"override_metric": "m",
|
||||||
|
"requires_auth": False,
|
||||||
"component_config": {"fake.test": {"override_metric": "km"}},
|
"component_config": {"fake.test": {"override_metric": "km"}},
|
||||||
"component_config_glob": {"fake.time_*": {"override_metric": "h"}},
|
"component_config_glob": {"fake.time_*": {"override_metric": "h"}},
|
||||||
"component_config_domain": {"climate": {"override_metric": "°C"}},
|
"component_config_domain": {"climate": {"override_metric": "°C"}},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user