mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-22 08:36:30 +00:00
Fix version conflict
This commit is contained in:
commit
6cab017042
@ -41,12 +41,12 @@ class Addon(object):
|
|||||||
self.data = data
|
self.data = data
|
||||||
self._id = slug
|
self._id = slug
|
||||||
|
|
||||||
self.addon_docker = DockerAddon(config, loop, dock, self)
|
self.docker = DockerAddon(config, loop, dock, self)
|
||||||
|
|
||||||
async def load(self):
|
async def load(self):
|
||||||
"""Async initialize of object."""
|
"""Async initialize of object."""
|
||||||
if self.is_installed:
|
if self.is_installed:
|
||||||
await self.addon_docker.attach()
|
await self.docker.attach()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def slug(self):
|
def slug(self):
|
||||||
@ -434,7 +434,7 @@ class Addon(object):
|
|||||||
self.path_data.mkdir()
|
self.path_data.mkdir()
|
||||||
|
|
||||||
version = version or self.last_version
|
version = version or self.last_version
|
||||||
if not await self.addon_docker.install(version):
|
if not await self.docker.install(version):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
self._set_install(version)
|
self._set_install(version)
|
||||||
@ -443,7 +443,7 @@ class Addon(object):
|
|||||||
@check_installed
|
@check_installed
|
||||||
async def uninstall(self):
|
async def uninstall(self):
|
||||||
"""Remove a addon."""
|
"""Remove a addon."""
|
||||||
if not await self.addon_docker.remove():
|
if not await self.docker.remove():
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if self.path_data.is_dir():
|
if self.path_data.is_dir():
|
||||||
@ -459,7 +459,7 @@ class Addon(object):
|
|||||||
if not self.is_installed:
|
if not self.is_installed:
|
||||||
return STATE_NONE
|
return STATE_NONE
|
||||||
|
|
||||||
if await self.addon_docker.is_running():
|
if await self.docker.is_running():
|
||||||
return STATE_STARTED
|
return STATE_STARTED
|
||||||
return STATE_STOPPED
|
return STATE_STOPPED
|
||||||
|
|
||||||
@ -469,7 +469,7 @@ class Addon(object):
|
|||||||
|
|
||||||
Return a coroutine.
|
Return a coroutine.
|
||||||
"""
|
"""
|
||||||
return self.addon_docker.run()
|
return self.docker.run()
|
||||||
|
|
||||||
@check_installed
|
@check_installed
|
||||||
def stop(self):
|
def stop(self):
|
||||||
@ -477,22 +477,26 @@ class Addon(object):
|
|||||||
|
|
||||||
Return a coroutine.
|
Return a coroutine.
|
||||||
"""
|
"""
|
||||||
return self.addon_docker.stop()
|
return self.docker.stop()
|
||||||
|
|
||||||
@check_installed
|
@check_installed
|
||||||
async def update(self, version=None):
|
async def update(self, version=None):
|
||||||
"""Update addon."""
|
"""Update addon."""
|
||||||
version = version or self.last_version
|
version = version or self.last_version
|
||||||
|
last_state = await self.state()
|
||||||
|
|
||||||
if version == self.version_installed:
|
if version == self.version_installed:
|
||||||
_LOGGER.warning(
|
_LOGGER.warning(
|
||||||
"Addon %s is already installed in %s", self._id, version)
|
"Addon %s is already installed in %s", self._id, version)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if not await self.addon_docker.update(version):
|
if not await self.docker.update(version):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
self._set_update(version)
|
self._set_update(version)
|
||||||
|
|
||||||
|
# restore state
|
||||||
|
if last_state == STATE_STARTED:
|
||||||
|
return await self.docker.run()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@check_installed
|
@check_installed
|
||||||
@ -501,7 +505,7 @@ class Addon(object):
|
|||||||
|
|
||||||
Return a coroutine.
|
Return a coroutine.
|
||||||
"""
|
"""
|
||||||
return self.addon_docker.restart()
|
return self.docker.restart()
|
||||||
|
|
||||||
@check_installed
|
@check_installed
|
||||||
def logs(self):
|
def logs(self):
|
||||||
@ -509,7 +513,7 @@ class Addon(object):
|
|||||||
|
|
||||||
Return a coroutine.
|
Return a coroutine.
|
||||||
"""
|
"""
|
||||||
return self.addon_docker.logs()
|
return self.docker.logs()
|
||||||
|
|
||||||
@check_installed
|
@check_installed
|
||||||
async def snapshot(self, tar_file):
|
async def snapshot(self, tar_file):
|
||||||
@ -517,7 +521,7 @@ class Addon(object):
|
|||||||
with TemporaryDirectory(dir=str(self.config.path_tmp)) as temp:
|
with TemporaryDirectory(dir=str(self.config.path_tmp)) as temp:
|
||||||
# store local image
|
# store local image
|
||||||
if self.need_build and not await \
|
if self.need_build and not await \
|
||||||
self.addon_docker.export_image(Path(temp, "image.tar")):
|
self.docker.export_image(Path(temp, "image.tar")):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
@ -582,15 +586,15 @@ class Addon(object):
|
|||||||
|
|
||||||
# check version / restore image
|
# check version / restore image
|
||||||
version = data[ATTR_VERSION]
|
version = data[ATTR_VERSION]
|
||||||
if version != self.addon_docker.version:
|
if version != self.docker.version:
|
||||||
image_file = Path(temp, "image.tar")
|
image_file = Path(temp, "image.tar")
|
||||||
if image_file.is_file():
|
if image_file.is_file():
|
||||||
await self.addon_docker.import_image(image_file, version)
|
await self.docker.import_image(image_file, version)
|
||||||
else:
|
else:
|
||||||
if await self.addon_docker.install(version):
|
if await self.docker.install(version):
|
||||||
await self.addon_docker.cleanup()
|
await self.docker.cleanup()
|
||||||
else:
|
else:
|
||||||
await self.addon_docker.stop()
|
await self.docker.stop()
|
||||||
|
|
||||||
# restore data
|
# restore data
|
||||||
def _restore_data():
|
def _restore_data():
|
||||||
|
@ -48,7 +48,8 @@ class GitRepo(object):
|
|||||||
try:
|
try:
|
||||||
_LOGGER.info("Clone addon %s repository", self.url)
|
_LOGGER.info("Clone addon %s repository", self.url)
|
||||||
self.repo = await self.loop.run_in_executor(
|
self.repo = await self.loop.run_in_executor(
|
||||||
None, git.Repo.clone_from, self.url, str(self.path))
|
None, git.Repo.clone_from, self.url, str(self.path),
|
||||||
|
recursive=True)
|
||||||
|
|
||||||
except (git.InvalidGitRepositoryError, git.NoSuchPathError,
|
except (git.InvalidGitRepositoryError, git.NoSuchPathError,
|
||||||
git.GitCommandError) as err:
|
git.GitCommandError) as err:
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
"""Const file for HassIO."""
|
"""Const file for HassIO."""
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
HASSIO_VERSION = '0.52'
|
HASSIO_VERSION = '0.53'
|
||||||
|
|
||||||
URL_HASSIO_VERSION = ('https://raw.githubusercontent.com/home-assistant/'
|
URL_HASSIO_VERSION = ('https://raw.githubusercontent.com/home-assistant/'
|
||||||
'hassio/{}/version.json')
|
'hassio/{}/version.json')
|
||||||
|
@ -251,8 +251,6 @@ class DockerBase(object):
|
|||||||
|
|
||||||
Need run inside executor.
|
Need run inside executor.
|
||||||
"""
|
"""
|
||||||
was_running = self._is_running()
|
|
||||||
|
|
||||||
_LOGGER.info(
|
_LOGGER.info(
|
||||||
"Update docker %s with %s:%s", self.version, self.image, tag)
|
"Update docker %s with %s:%s", self.version, self.image, tag)
|
||||||
|
|
||||||
@ -260,10 +258,7 @@ class DockerBase(object):
|
|||||||
if not self._install(tag):
|
if not self._install(tag):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# run or cleanup container
|
# container
|
||||||
if was_running:
|
|
||||||
self._run()
|
|
||||||
else:
|
|
||||||
self._stop()
|
self._stop()
|
||||||
|
|
||||||
# cleanup images
|
# cleanup images
|
||||||
|
@ -121,7 +121,10 @@ class HomeAssistant(JsonConfig):
|
|||||||
_LOGGER.warning("Version %s is already installed", version)
|
_LOGGER.warning("Version %s is already installed", version)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
try:
|
||||||
return await self.docker.update(version)
|
return await self.docker.update(version)
|
||||||
|
finally:
|
||||||
|
await self.docker.run()
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
"""Run HomeAssistant docker.
|
"""Run HomeAssistant docker.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"hassio": "0.52",
|
"hassio": "0.53",
|
||||||
"homeassistant": "0.51.2",
|
"homeassistant": "0.51.2",
|
||||||
"resinos": "1.0",
|
"resinos": "1.0",
|
||||||
"resinhup": "0.3",
|
"resinhup": "0.3",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user