diff --git a/hassio/addons/data.py b/hassio/addons/data.py index 28a7dc08f..4400a21f6 100644 --- a/hassio/addons/data.py +++ b/hassio/addons/data.py @@ -141,13 +141,18 @@ class AddonsData(Config): return set(self._system_data.keys()) @property - def list_all(self): - """Return a list of all addons.""" + def data_all(self): + """Return a dict of all addons.""" return { **self._system_data, **self._addons_cache } + @property + def data_installed(self): + """Return a dict of installed addons.""" + return self._system_data.copy() + def list_startup(self, start_type): """Get list of installed addon with need start by type.""" addon_list = set() diff --git a/hassio/api/supervisor.py b/hassio/api/supervisor.py index c3049c5df..76891d26e 100644 --- a/hassio/api/supervisor.py +++ b/hassio/api/supervisor.py @@ -36,12 +36,17 @@ class APISupervisor(object): self.addons = addons self.host_control = host_control - def _addons_list(self, only_installed): + def _addons_list(self, only_installed=False): """Return a list of addons.""" - data = [] detached = self.addons.list_detached - for addon, values in self.addons.list_all.items(): + if only_installed: + addons = self.addons.data_installed + else: + addons = self.addons.data_all + + data = [] + for addon, values in addons: i_version = self.addons.version_installed(addon) data.append({ @@ -92,7 +97,7 @@ class APISupervisor(object): async def available_addons(self, request): """Return information for all available addons.""" return { - ATTR_ADDONS: self._addons_list(only_installed=False), + ATTR_ADDONS: self._addons_list(), ATTR_REPOSITORIES: self._repositories_list(), }