221 files
This commit is contained in:
@@ -14,6 +14,7 @@ from homeassistant.components.blueprint.importer import fetch_blueprint_from_url
|
||||
from homeassistant.exceptions import HomeAssistantError
|
||||
from homeassistant.helpers import config_validation as cv
|
||||
|
||||
from ....const import DOMAIN as SPOOK_DOMAIN
|
||||
from ....services import AbstractSpookAdminService
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@@ -37,17 +38,26 @@ class SpookService(AbstractSpookAdminService):
|
||||
call.data["url"],
|
||||
)
|
||||
except (TimeoutError, aiohttp.ClientError) as err:
|
||||
msg = "Error fetching blueprint from URL"
|
||||
raise HomeAssistantError(msg) from err
|
||||
raise HomeAssistantError(
|
||||
translation_domain=SPOOK_DOMAIN,
|
||||
translation_key="blueprint_fetch_failed",
|
||||
) from err
|
||||
|
||||
if imported_blueprint is None:
|
||||
msg = "This url is not supported"
|
||||
raise HomeAssistantError(msg)
|
||||
raise HomeAssistantError(
|
||||
translation_domain=SPOOK_DOMAIN,
|
||||
translation_key="blueprint_url_not_supported",
|
||||
)
|
||||
|
||||
domain_blueprints: dict[str, DomainBlueprints] = self.hass.data.get(DOMAIN, {})
|
||||
if imported_blueprint.blueprint.domain not in domain_blueprints:
|
||||
msg = f"Unsupported domain: {imported_blueprint.blueprint.domain}"
|
||||
raise HomeAssistantError(msg)
|
||||
raise HomeAssistantError(
|
||||
translation_domain=SPOOK_DOMAIN,
|
||||
translation_key="blueprint_domain_not_supported",
|
||||
translation_placeholders={
|
||||
"domain": imported_blueprint.blueprint.domain,
|
||||
},
|
||||
)
|
||||
|
||||
imported_blueprint.blueprint.update_metadata(source_url=call.data["url"])
|
||||
|
||||
@@ -59,8 +69,12 @@ class SpookService(AbstractSpookAdminService):
|
||||
imported_blueprint.suggested_filename,
|
||||
)
|
||||
except FileAlreadyExists as ex:
|
||||
msg = "File already exists"
|
||||
raise HomeAssistantError(msg) from ex
|
||||
raise HomeAssistantError(
|
||||
translation_domain=SPOOK_DOMAIN,
|
||||
translation_key="blueprint_file_exists",
|
||||
) from ex
|
||||
except OSError as err:
|
||||
msg = "Error writing file"
|
||||
raise HomeAssistantError(msg) from err
|
||||
raise HomeAssistantError(
|
||||
translation_domain=SPOOK_DOMAIN,
|
||||
translation_key="blueprint_write_failed",
|
||||
) from err
|
||||
|
||||
Reference in New Issue
Block a user