mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-19 23:26:29 +00:00
Read version from AWS (#488)
* Read version from AWS * Update const.py * Update updater.py * Update updater.py * Update updater.py * Update updater.py * Update updater.py * Update const.py * Update updater.py
This commit is contained in:
parent
124e487ef7
commit
fe155a4ff0
@ -4,10 +4,9 @@ from ipaddress import ip_network
|
|||||||
|
|
||||||
HASSIO_VERSION = '105'
|
HASSIO_VERSION = '105'
|
||||||
|
|
||||||
URL_HASSIO_VERSION = ('https://raw.githubusercontent.com/home-assistant/'
|
URL_HASSIO_ADDONS = "https://github.com/home-assistant/hassio-addons"
|
||||||
'hassio/{}/version.json')
|
URL_HASSIO_VERSION = \
|
||||||
|
"https://s3.amazonaws.com/hassio-version/{channel}.json"
|
||||||
URL_HASSIO_ADDONS = 'https://github.com/home-assistant/hassio-addons'
|
|
||||||
|
|
||||||
HASSIO_DATA = Path("/data")
|
HASSIO_DATA = Path("/data")
|
||||||
|
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
"""Fetch last versions from webserver."""
|
"""Fetch last versions from webserver."""
|
||||||
import asyncio
|
import asyncio
|
||||||
|
from contextlib import suppress
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import aiohttp
|
import aiohttp
|
||||||
import async_timeout
|
|
||||||
|
|
||||||
from .const import (
|
from .const import (
|
||||||
URL_HASSIO_VERSION, FILE_HASSIO_UPDATER, ATTR_HOMEASSISTANT, ATTR_HASSIO,
|
URL_HASSIO_VERSION, FILE_HASSIO_UPDATER, ATTR_HOMEASSISTANT, ATTR_HASSIO,
|
||||||
ATTR_CHANNEL, CHANNEL_STABLE, CHANNEL_BETA, CHANNEL_DEV)
|
ATTR_CHANNEL)
|
||||||
from .coresys import CoreSysAttributes
|
from .coresys import CoreSysAttributes
|
||||||
from .utils import AsyncThrottle
|
from .utils import AsyncThrottle
|
||||||
from .utils.json import JsonConfig
|
from .utils.json import JsonConfig
|
||||||
@ -17,12 +17,6 @@ from .validate import SCHEMA_UPDATER_CONFIG
|
|||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
CHANNEL_TO_BRANCH = {
|
|
||||||
CHANNEL_STABLE: 'master',
|
|
||||||
CHANNEL_BETA: 'rc',
|
|
||||||
CHANNEL_DEV: 'dev',
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class Updater(JsonConfig, CoreSysAttributes):
|
class Updater(JsonConfig, CoreSysAttributes):
|
||||||
"""Fetch last versions from version.json."""
|
"""Fetch last versions from version.json."""
|
||||||
@ -65,12 +59,11 @@ class Updater(JsonConfig, CoreSysAttributes):
|
|||||||
|
|
||||||
Is a coroutine.
|
Is a coroutine.
|
||||||
"""
|
"""
|
||||||
url = URL_HASSIO_VERSION.format(CHANNEL_TO_BRANCH[self.channel])
|
url = URL_HASSIO_VERSION.format(channel=self.channel)
|
||||||
try:
|
try:
|
||||||
_LOGGER.info("Fetch update data from %s", url)
|
_LOGGER.info("Fetch update data from %s", url)
|
||||||
with async_timeout.timeout(10):
|
async with self.sys_websession.get(url, timeout=10) as request:
|
||||||
async with self.sys_websession.get(url) as request:
|
data = await request.json(content_type=None)
|
||||||
data = await request.json(content_type=None)
|
|
||||||
|
|
||||||
except (aiohttp.ClientError, asyncio.TimeoutError, KeyError) as err:
|
except (aiohttp.ClientError, asyncio.TimeoutError, KeyError) as err:
|
||||||
_LOGGER.warning("Can't fetch versions from %s: %s", url, err)
|
_LOGGER.warning("Can't fetch versions from %s: %s", url, err)
|
||||||
@ -81,11 +74,18 @@ class Updater(JsonConfig, CoreSysAttributes):
|
|||||||
return
|
return
|
||||||
|
|
||||||
# data valid?
|
# data valid?
|
||||||
if not data:
|
if not data or data.get(ATTR_CHANNEL) != self.channel:
|
||||||
_LOGGER.warning("Invalid data from %s", url)
|
_LOGGER.warning("Invalid data from %s", url)
|
||||||
return
|
return
|
||||||
|
|
||||||
# update versions
|
# update supervisor versions
|
||||||
self._data[ATTR_HOMEASSISTANT] = data.get('homeassistant')
|
with suppress(KeyError):
|
||||||
self._data[ATTR_HASSIO] = data.get('hassio')
|
self._data[ATTR_HASSIO] = data['supervisor']
|
||||||
|
|
||||||
|
# update Home Assistant version
|
||||||
|
machine = self.sys_machine or 'default'
|
||||||
|
with suppress(KeyError):
|
||||||
|
self._data[ATTR_HOMEASSISTANT] = \
|
||||||
|
data['homeassistant'][machine]
|
||||||
|
|
||||||
self.save_data()
|
self.save_data()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user