Fix invalid secrets (#1293)

* Fix invalid secrets format

* Fix style
This commit is contained in:
Pascal Vizeli 2019-09-15 15:06:22 +02:00 committed by GitHub
parent 0a0209f81a
commit c77292439a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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))