Down or upgrade exists image on restore (#941)

This commit is contained in:
Pascal Vizeli 2019-03-08 11:36:36 +01:00 committed by GitHub
parent 714791de8f
commit 31047b9ec2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 13 deletions

View File

@ -949,7 +949,7 @@ class Addon(CoreSysAttributes):
self._id, humanize_error(data, err)) self._id, humanize_error(data, err))
return False return False
# Restore data or reload add-on # Restore local add-on informations
_LOGGER.info("Restore config for addon %s", self._id) _LOGGER.info("Restore config for addon %s", self._id)
restore_image = self._get_image(data[ATTR_SYSTEM]) restore_image = self._get_image(data[ATTR_SYSTEM])
self._restore_data(data[ATTR_USER], data[ATTR_SYSTEM], restore_image) self._restore_data(data[ATTR_USER], data[ATTR_SYSTEM], restore_image)
@ -957,7 +957,7 @@ class Addon(CoreSysAttributes):
# Check version / restore image # Check version / restore image
version = data[ATTR_VERSION] version = data[ATTR_VERSION]
if not await self.instance.exists(): if not await self.instance.exists():
_LOGGER.info("Restore image for addon %s", self._id) _LOGGER.info("Restore/Install image for addon %s", self._id)
image_file = Path(temp, 'image.tar') image_file = Path(temp, 'image.tar')
if image_file.is_file(): if image_file.is_file():
@ -965,6 +965,9 @@ class Addon(CoreSysAttributes):
else: else:
if await self.instance.install(version, restore_image): if await self.instance.install(version, restore_image):
await self.instance.cleanup() await self.instance.cleanup()
elif self.instance.version != version or self.legacy:
_LOGGER.info("Restore/Update image for addon %s", self._id)
await self.instance.update(version, restore_image)
else: else:
await self.instance.stop() await self.instance.stop()

View File

@ -8,8 +8,10 @@ URL_HASSIO_ADDONS = "https://github.com/home-assistant/hassio-addons"
URL_HASSIO_VERSION = "https://s3.amazonaws.com/hassio-version/{channel}.json" URL_HASSIO_VERSION = "https://s3.amazonaws.com/hassio-version/{channel}.json"
URL_HASSIO_APPARMOR = "https://s3.amazonaws.com/hassio-version/apparmor.txt" URL_HASSIO_APPARMOR = "https://s3.amazonaws.com/hassio-version/apparmor.txt"
URL_HASSOS_OTA = ("https://github.com/home-assistant/hassos/releases/download/" URL_HASSOS_OTA = (
"{version}/hassos_{board}-{version}.raucb") "https://github.com/home-assistant/hassos/releases/download/"
"{version}/hassos_{board}-{version}.raucb"
)
HASSIO_DATA = Path("/data") HASSIO_DATA = Path("/data")
@ -199,8 +201,11 @@ STARTUP_APPLICATION = "application"
STARTUP_ONCE = "once" STARTUP_ONCE = "once"
STARTUP_ALL = [ STARTUP_ALL = [
STARTUP_ONCE, STARTUP_INITIALIZE, STARTUP_SYSTEM, STARTUP_SERVICES, STARTUP_ONCE,
STARTUP_APPLICATION STARTUP_INITIALIZE,
STARTUP_SYSTEM,
STARTUP_SERVICES,
STARTUP_APPLICATION,
] ]
BOOT_AUTO = "auto" BOOT_AUTO = "auto"
@ -281,13 +286,7 @@ ROLE_BACKUP = "backup"
ROLE_MANAGER = "manager" ROLE_MANAGER = "manager"
ROLE_ADMIN = "admin" ROLE_ADMIN = "admin"
ROLE_ALL = [ ROLE_ALL = [ROLE_DEFAULT, ROLE_HOMEASSISTANT, ROLE_BACKUP, ROLE_MANAGER, ROLE_ADMIN]
ROLE_DEFAULT,
ROLE_HOMEASSISTANT,
ROLE_BACKUP,
ROLE_MANAGER,
ROLE_ADMIN,
]
CHAN_ID = "chan_id" CHAN_ID = "chan_id"
CHAN_TYPE = "chan_type" CHAN_TYPE = "chan_type"