From 9998f9720f8aa96b2cfcb0a5d663857f65aaf041 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sun, 7 May 2017 18:49:25 +0200 Subject: [PATCH 1/7] pump version --- hassio/const.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hassio/const.py b/hassio/const.py index 194b54913..e18751325 100644 --- a/hassio/const.py +++ b/hassio/const.py @@ -1,7 +1,7 @@ """Const file for HassIO.""" from pathlib import Path -HASSIO_VERSION = '0.21' +HASSIO_VERSION = '0.22' URL_HASSIO_VERSION = ('https://raw.githubusercontent.com/home-assistant/' 'hassio/master/version.json') From 5896fde441d6263b37c156bbd7ab97e315186d7a Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 8 May 2017 00:19:57 +0200 Subject: [PATCH 2/7] Add support for 0.44.1 (#33) * Add support for 0.44.1 * fix lint * fix lint * fix lint --- hassio/addons/built-in.json | 12 ++++++++++++ hassio/addons/data.py | 33 ++++++++++++++++++++++++++++++++- hassio/addons/validate.py | 1 + hassio/api/addons.py | 3 ++- 4 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 hassio/addons/built-in.json diff --git a/hassio/addons/built-in.json b/hassio/addons/built-in.json new file mode 100644 index 000000000..4d0b11ac6 --- /dev/null +++ b/hassio/addons/built-in.json @@ -0,0 +1,12 @@ +{ + "local": { + "name": "Local Add-Ons", + "url": "https://home-assistant.io/hassio", + "maintainer": "By our self" + }, + "core": { + "name": "Built-in Add-Ons", + "url": "https://home-assistant.io/addons", + "maintainer": "Home Assistant authors" + } +} diff --git a/hassio/addons/data.py b/hassio/addons/data.py index 4400a21f6..819f35756 100644 --- a/hassio/addons/data.py +++ b/hassio/addons/data.py @@ -1,6 +1,7 @@ """Init file for HassIO addons.""" import copy import logging +import json from pathlib import Path, PurePath import voluptuous as vol @@ -13,7 +14,7 @@ from ..const import ( FILE_HASSIO_ADDONS, ATTR_NAME, ATTR_VERSION, ATTR_SLUG, ATTR_DESCRIPTON, ATTR_STARTUP, ATTR_BOOT, ATTR_MAP, ATTR_OPTIONS, ATTR_PORTS, BOOT_AUTO, DOCKER_REPO, ATTR_SCHEMA, ATTR_IMAGE, MAP_CONFIG, MAP_SSL, MAP_ADDONS, - MAP_BACKUP, ATTR_REPOSITORY) + MAP_BACKUP, ATTR_REPOSITORY, ATTR_URL) from ..config import Config from ..tools import read_json_file, write_json_file @@ -60,6 +61,9 @@ class AddonsData(Config): self._read_addons_folder( self.config.path_addons_local, REPOSITORY_LOCAL) + # add built-in repositories information + self._set_builtin_repositories() + # read custom git repositories for repository_element in self.config.path_addons_git.iterdir(): if repository_element.is_dir(): @@ -114,6 +118,29 @@ class AddonsData(Config): _LOGGER.warning("Can't read %s -> %s", addon, humanize_error(addon_config, ex)) + def _set_builtin_repositories(self): + """Add local built-in repository into dataset.""" + try: + builtin_file = Path(__file__).parent.joinpath('built-in.json') + builtin_data = read_json_file(builtin_file) + except (OSError, json.JSONDecodeError): + _LOGGER.warning("Can't read built-in.json!") + return + + # if core addons are available + for data in self._addons_cache.values(): + if data[ATTR_REPOSITORY] == REPOSITORY_CORE: + self._repositories_data[REPOSITORY_CORE] = \ + builtin_data[REPOSITORY_CORE] + break + + # if local addons are available + for data in self._addons_cache.values(): + if data[ATTR_REPOSITORY] == REPOSITORY_LOCAL: + self._repositories_data[REPOSITORY_LOCAL] = \ + builtin_data[REPOSITORY_LOCAL] + break + def merge_update_config(self): """Update local config if they have update. @@ -259,6 +286,10 @@ class AddonsData(Config): """Return ports of addon.""" return self._system_data[addon].get(ATTR_PORTS) + def get_url(self, addon): + """Return url of addon.""" + return self._system_data[addon].get(ATTR_URL) + def get_image(self, addon): """Return image name of addon.""" addon_data = self._system_data.get( diff --git a/hassio/addons/validate.py b/hassio/addons/validate.py index b01820e7d..264a8ba3f 100644 --- a/hassio/addons/validate.py +++ b/hassio/addons/validate.py @@ -30,6 +30,7 @@ SCHEMA_ADDON_CONFIG = vol.Schema({ vol.Optional(ATTR_MAP, default=[]): [ vol.In([MAP_CONFIG, MAP_SSL, MAP_ADDONS, MAP_BACKUP]) ], + vol.Optional(ATTR_URL): vol.Url(), vol.Required(ATTR_OPTIONS): dict, vol.Required(ATTR_SCHEMA): { vol.Coerce(str): vol.Any(ADDON_ELEMENT, [ diff --git a/hassio/api/addons.py b/hassio/api/addons.py index b1abb499f..d95fa19b7 100644 --- a/hassio/api/addons.py +++ b/hassio/api/addons.py @@ -8,7 +8,7 @@ from voluptuous.humanize import humanize_error from .util import api_process, api_process_raw, api_validate from ..const import ( ATTR_VERSION, ATTR_LAST_VERSION, ATTR_STATE, ATTR_BOOT, ATTR_OPTIONS, - STATE_STOPPED, STATE_STARTED, BOOT_AUTO, BOOT_MANUAL) + ATTR_URL, STATE_STOPPED, STATE_STARTED, BOOT_AUTO, BOOT_MANUAL) _LOGGER = logging.getLogger(__name__) @@ -53,6 +53,7 @@ class APIAddons(object): ATTR_STATE: await self.addons.state(addon), ATTR_BOOT: self.addons.get_boot(addon), ATTR_OPTIONS: self.addons.get_options(addon), + ATTR_URL: self.addons.get_url(addon), } @api_process From f199a5cf9505cdc77edf5846eaa21f8e141786dc Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 8 May 2017 00:32:45 +0200 Subject: [PATCH 3/7] Update log info --- hassio/addons/data.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hassio/addons/data.py b/hassio/addons/data.py index 819f35756..3676b086a 100644 --- a/hassio/addons/data.py +++ b/hassio/addons/data.py @@ -123,8 +123,8 @@ class AddonsData(Config): try: builtin_file = Path(__file__).parent.joinpath('built-in.json') builtin_data = read_json_file(builtin_file) - except (OSError, json.JSONDecodeError): - _LOGGER.warning("Can't read built-in.json!") + except (OSError, json.JSONDecodeError) as err: + _LOGGER.warning("Can't read built-in.json -> %s", err) return # if core addons are available From 600b32f75b94c35bb1bec5955c6732351adcd854 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 8 May 2017 00:44:07 +0200 Subject: [PATCH 4/7] add manifest (#34) --- MANIFEST.in | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 MANIFEST.in diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 000000000..34c9c023d --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,3 @@ +include LICENSE.md +graft hassio +recursive-exclude * *.py[co] From a4f74676b64f3de2a2772f9a8963f2167e81bcf4 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 8 May 2017 00:55:21 +0200 Subject: [PATCH 5/7] add slug --- hassio/addons/built-in.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hassio/addons/built-in.json b/hassio/addons/built-in.json index 4d0b11ac6..2b802f355 100644 --- a/hassio/addons/built-in.json +++ b/hassio/addons/built-in.json @@ -1,10 +1,12 @@ { "local": { + "slug": "local", "name": "Local Add-Ons", "url": "https://home-assistant.io/hassio", "maintainer": "By our self" }, "core": { + "slug": "core", "name": "Built-in Add-Ons", "url": "https://home-assistant.io/addons", "maintainer": "Home Assistant authors" From 391be6afac20afe24c3f373eea6c8804603aa6a8 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 8 May 2017 01:09:04 +0200 Subject: [PATCH 6/7] Update to hassio 0.22 and hass 0.44.1 --- version.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/version.json b/version.json index 9a07f7f35..b0b6f84f9 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { - "hassio": "0.21", - "homeassistant": "0.44", + "hassio": "0.22", + "homeassistant": "0.44.1", "resinos": "0.7", "resinhup": "0.1", "generic": "0.3" From 8833845b2e9eb041ccf11fa3bd2d5785674cd3bf Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 8 May 2017 01:20:36 +0200 Subject: [PATCH 7/7] add url to api --- API.md | 1 + 1 file changed, 1 insertion(+) diff --git a/API.md b/API.md index 84f93fbb4..5aa938acd 100644 --- a/API.md +++ b/API.md @@ -176,6 +176,7 @@ Output the raw docker log - GET `/addons/{addon}/info` ```json { + "url": "null|url of addon", "version": "VERSION", "last_version": "LAST_VERSION", "state": "started|stopped",