mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-18 22:56:31 +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'
|
||||
|
||||
URL_HASSIO_VERSION = ('https://raw.githubusercontent.com/home-assistant/'
|
||||
'hassio/{}/version.json')
|
||||
|
||||
URL_HASSIO_ADDONS = 'https://github.com/home-assistant/hassio-addons'
|
||||
URL_HASSIO_ADDONS = "https://github.com/home-assistant/hassio-addons"
|
||||
URL_HASSIO_VERSION = \
|
||||
"https://s3.amazonaws.com/hassio-version/{channel}.json"
|
||||
|
||||
HASSIO_DATA = Path("/data")
|
||||
|
||||
|
@ -1,15 +1,15 @@
|
||||
"""Fetch last versions from webserver."""
|
||||
import asyncio
|
||||
from contextlib import suppress
|
||||
from datetime import timedelta
|
||||
import json
|
||||
import logging
|
||||
|
||||
import aiohttp
|
||||
import async_timeout
|
||||
|
||||
from .const import (
|
||||
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 .utils import AsyncThrottle
|
||||
from .utils.json import JsonConfig
|
||||
@ -17,12 +17,6 @@ from .validate import SCHEMA_UPDATER_CONFIG
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
CHANNEL_TO_BRANCH = {
|
||||
CHANNEL_STABLE: 'master',
|
||||
CHANNEL_BETA: 'rc',
|
||||
CHANNEL_DEV: 'dev',
|
||||
}
|
||||
|
||||
|
||||
class Updater(JsonConfig, CoreSysAttributes):
|
||||
"""Fetch last versions from version.json."""
|
||||
@ -65,12 +59,11 @@ class Updater(JsonConfig, CoreSysAttributes):
|
||||
|
||||
Is a coroutine.
|
||||
"""
|
||||
url = URL_HASSIO_VERSION.format(CHANNEL_TO_BRANCH[self.channel])
|
||||
url = URL_HASSIO_VERSION.format(channel=self.channel)
|
||||
try:
|
||||
_LOGGER.info("Fetch update data from %s", url)
|
||||
with async_timeout.timeout(10):
|
||||
async with self.sys_websession.get(url) as request:
|
||||
data = await request.json(content_type=None)
|
||||
async with self.sys_websession.get(url, timeout=10) as request:
|
||||
data = await request.json(content_type=None)
|
||||
|
||||
except (aiohttp.ClientError, asyncio.TimeoutError, KeyError) as err:
|
||||
_LOGGER.warning("Can't fetch versions from %s: %s", url, err)
|
||||
@ -81,11 +74,18 @@ class Updater(JsonConfig, CoreSysAttributes):
|
||||
return
|
||||
|
||||
# data valid?
|
||||
if not data:
|
||||
if not data or data.get(ATTR_CHANNEL) != self.channel:
|
||||
_LOGGER.warning("Invalid data from %s", url)
|
||||
return
|
||||
|
||||
# update versions
|
||||
self._data[ATTR_HOMEASSISTANT] = data.get('homeassistant')
|
||||
self._data[ATTR_HASSIO] = data.get('hassio')
|
||||
# update supervisor versions
|
||||
with suppress(KeyError):
|
||||
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()
|
||||
|
Loading…
x
Reference in New Issue
Block a user