change handling with arch detection

This commit is contained in:
Pascal Vizeli 2017-04-17 18:50:05 +02:00
parent c019d1f3c5
commit 2bd1636097
5 changed files with 10 additions and 11 deletions

View File

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

View File

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

View File

@ -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."""

View File

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

View File

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