mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-23 09:06:29 +00:00
parent
0a0209f81a
commit
c77292439a
@ -5,12 +5,15 @@ from pathlib import Path
|
|||||||
from typing import Dict
|
from typing import Dict
|
||||||
|
|
||||||
from ruamel.yaml import YAML, YAMLError
|
from ruamel.yaml import YAML, YAMLError
|
||||||
|
import voluptuous as vol
|
||||||
|
|
||||||
from .coresys import CoreSys, CoreSysAttributes
|
from .coresys import CoreSys, CoreSysAttributes
|
||||||
from .utils import AsyncThrottle
|
from .utils import AsyncThrottle
|
||||||
|
|
||||||
_LOGGER: logging.Logger = logging.getLogger(__name__)
|
_LOGGER: logging.Logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
SECRETS_SCHEMA = vol.Schema({str: vol.Any(str, int, None, float)})
|
||||||
|
|
||||||
|
|
||||||
class SecretsManager(CoreSysAttributes):
|
class SecretsManager(CoreSysAttributes):
|
||||||
"""Manage Home Assistant secrets."""
|
"""Manage Home Assistant secrets."""
|
||||||
@ -50,8 +53,12 @@ class SecretsManager(CoreSysAttributes):
|
|||||||
# Read secrets
|
# Read secrets
|
||||||
try:
|
try:
|
||||||
yaml = YAML()
|
yaml = YAML()
|
||||||
self.secrets = await self.sys_run_in_executor(yaml.load, self.path_secrets)
|
data = await self.sys_run_in_executor(yaml.load, self.path_secrets) or {}
|
||||||
|
|
||||||
|
self.secrets = SECRETS_SCHEMA(data)
|
||||||
except YAMLError as err:
|
except YAMLError as err:
|
||||||
_LOGGER.error("Can't process Home Assistant secrets: %s", err)
|
_LOGGER.error("Can't process Home Assistant secrets: %s", err)
|
||||||
|
except vol.Invalid:
|
||||||
|
_LOGGER.warning("Home Assistant secrets have a invalid format")
|
||||||
else:
|
else:
|
||||||
_LOGGER.debug("Reload Home Assistant secrets: %s", len(self.secrets))
|
_LOGGER.debug("Reload Home Assistant secrets: %s", len(self.secrets))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user