From 458f3d4d13823093aa91a939de7fa42ab859d989 Mon Sep 17 00:00:00 2001 From: Maikel Punie Date: Wed, 26 Oct 2022 13:53:41 +0200 Subject: [PATCH] Use a unique cache folder per Velbus config entry (#79792) --- homeassistant/components/velbus/__init__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/velbus/__init__.py b/homeassistant/components/velbus/__init__.py index 67a4652d5e5..66d9fef71a3 100644 --- a/homeassistant/components/velbus/__init__.py +++ b/homeassistant/components/velbus/__init__.py @@ -2,6 +2,7 @@ from __future__ import annotations import logging +import shutil from velbusaio.controller import Velbus import voluptuous as vol @@ -12,6 +13,7 @@ from homeassistant.core import HomeAssistant, ServiceCall from homeassistant.helpers import device_registry import homeassistant.helpers.config_validation as cv from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.storage import STORAGE_DIR from .const import ( CONF_INTERFACE, @@ -64,7 +66,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: controller = Velbus( entry.data[CONF_PORT], - cache_dir=hass.config.path(".storage/velbuscache/"), + cache_dir=hass.config.path(STORAGE_DIR, f"velbuscache-{entry.entry_id}"), ) hass.data[DOMAIN][entry.entry_id] = {} hass.data[DOMAIN][entry.entry_id]["cntrl"] = controller @@ -138,6 +140,10 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS) await hass.data[DOMAIN][entry.entry_id]["cntrl"].stop() hass.data[DOMAIN].pop(entry.entry_id) + await hass.async_add_executor_job( + shutil.rmtree, + hass.config.path(STORAGE_DIR, f"velbuscache-{entry.entry_id}"), + ) if not hass.data[DOMAIN]: hass.data.pop(DOMAIN) hass.services.async_remove(DOMAIN, SERVICE_SCAN)