diff --git a/hassio/addons/__init__.py b/hassio/addons/__init__.py index 96255a648..84889fbf9 100644 --- a/hassio/addons/__init__.py +++ b/hassio/addons/__init__.py @@ -24,8 +24,10 @@ class AddonManager(AddonsData): self.repo = AddonsRepo(config, loop) self.dockers = {} - async def prepare(self): + async def prepare(self, arch): """Startup addon management.""" + self.arch = arch + # load addon repository if await self.repo.load(): self.read_addons_repo() diff --git a/hassio/addons/data.py b/hassio/addons/data.py index 95a6f16f4..0ca361b58 100644 --- a/hassio/addons/data.py +++ b/hassio/addons/data.py @@ -52,6 +52,7 @@ class AddonsData(Config): super().__init__(FILE_HASSIO_ADDONS) self.config = config self._addons_data = {} + self.arch = None def read_addons_repo(self): """Read data from addons repository.""" @@ -195,7 +196,7 @@ class AddonsData(Config): """Return image name of addon.""" if ATTR_IMAGE not in self._addons_data[addon]: return "{}/{}-addon-{}".format( - DOCKER_REPO, self.config.hassio_arch, self.get_slug(addon)) + DOCKER_REPO, self.arch, self.get_slug(addon)) return self._addons_data[addon][ATTR_IMAGE] diff --git a/hassio/config.py b/hassio/config.py index 1f7fd6832..8f47f6079 100644 --- a/hassio/config.py +++ b/hassio/config.py @@ -4,8 +4,7 @@ import os from .const import FILE_HASSIO_CONFIG, HASSIO_SHARE from .tools import ( - fetch_current_versions, get_arch_from_image, write_json_file, - read_json_file) + fetch_current_versions, write_json_file, read_json_file) _LOGGER = logging.getLogger(__name__) @@ -88,11 +87,6 @@ class CoreConfig(Config): """Set beta upstream mode.""" self._data[UPSTREAM_BETA] = bool(value) - @property - def hassio_arch(self): - """Return arch they run.""" - return get_arch_from_image(self.homeassistant_image) - @property def homeassistant_image(self): """Return docker homeassistant repository.""" diff --git a/hassio/core.py b/hassio/core.py index d1b0bf8c3..ea9db2a05 100644 --- a/hassio/core.py +++ b/hassio/core.py @@ -15,6 +15,7 @@ from .const import ( from .scheduler import Scheduler from .dock.homeassistant import DockerHomeAssistant from .dock.supervisor import DockerSupervisor +from .tools import get_arch_from_image _LOGGER = logging.getLogger(__name__) @@ -77,7 +78,8 @@ class HassIO(object): await self._setup_homeassistant() # Load addons - await self.addons.prepare() + arch = get_arch_from_image(self.supervisor.image) + await self.addons.prepare(arch) # schedule addon update task self.scheduler.register_task( diff --git a/hassio/tools.py b/hassio/tools.py index 662211d12..2c8d44d6d 100644 --- a/hassio/tools.py +++ b/hassio/tools.py @@ -13,7 +13,7 @@ from .const import URL_HASSIO_VERSION, URL_HASSIO_VERSION_BETA _LOGGER = logging.getLogger(__name__) _RE_VERSION = re.compile(r"VERSION=(.*)") -_IMAGE_ARCH = re.compile(r"([a-z0-9]*)-hassio-supervisor") +_IMAGE_ARCH = re.compile(r".*/([a-z0-9]*)-hassio-supervisor") async def fetch_current_versions(websession, beta=False):