move tools_update check for notif in _list_upgradable_apps helper

This commit is contained in:
axolotle 2022-12-04 15:02:32 +01:00
parent 6ae9108dec
commit 968687b512
2 changed files with 23 additions and 20 deletions

View file

@ -2397,6 +2397,27 @@ def _extract_app_from_gitrepo(
return manifest, extracted_app_folder
def _list_upgradable_apps():
upgradable_apps = list(app_list(upgradable=True)["apps"])
# Retrieve next manifest pre_upgrade notifications
for app in upgradable_apps:
absolute_app_name, _ = _parse_app_instance_name(app["id"])
manifest, extracted_app_folder = _extract_app(absolute_app_name)
current_version = version.parse(app["current_version"])
app["notifications"] = {}
if manifest["notifications"]["pre_upgrade"]:
app["notifications"]["pre_upgrade"] = _filter_and_hydrate_notifications(
manifest["notifications"]["pre_upgrade"],
current_version,
app["settings"],
)
del app["settings"]
shutil.rmtree(extracted_app_folder)
return upgradable_apps
#
# ############################### #
# Small utilities #

View file

@ -20,7 +20,6 @@ import re
import os
import subprocess
import time
import shutil
from importlib import import_module
from packaging import version
from typing import List
@ -33,9 +32,7 @@ from moulinette.utils.filesystem import read_yaml, write_to_yaml, cp, mkdir, rm,
from yunohost.app import (
app_upgrade,
app_list,
_filter_and_hydrate_notifications,
_extract_app,
_parse_app_instance_name,
_list_upgradable_apps,
)
from yunohost.app_catalog import (
_initialize_apps_catalog_system,
@ -370,22 +367,7 @@ def tools_update(target=None):
except YunohostError as e:
logger.error(str(e))
upgradable_apps = list(app_list(upgradable=True)["apps"])
# Retrieve next manifest notifications
for app in upgradable_apps:
absolute_app_name, _ = _parse_app_instance_name(app["id"])
manifest, extracted_app_folder = _extract_app(absolute_app_name)
current_version = version.parse(app["current_version"])
app["notifications"] = {
type_: _filter_and_hydrate_notifications(
manifest["notifications"][type_], current_version, app["settings"]
)
for type_ in ("pre_upgrade", "post_upgrade")
}
# FIXME Post-upgrade notifs should be hydrated with post-upgrade app settings
del app["settings"]
shutil.rmtree(extracted_app_folder)
upgradable_apps = _list_upgradable_apps()
if len(upgradable_apps) == 0 and len(upgradable_system_packages) == 0:
logger.info(m18n.n("already_up_to_date"))