From c65a6e8bfd12c701b867eb974e2c54226e58428c Mon Sep 17 00:00:00 2001 From: Tom Trafford Date: Mon, 22 Jul 2024 09:54:04 +0100 Subject: [PATCH] Give the user the option to remove the install zpkgs on rootfs upgrade. --- rootfs/web-admin/admin-server.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/rootfs/web-admin/admin-server.py b/rootfs/web-admin/admin-server.py index 5ff2d94d..ab7a13ce 100644 --- a/rootfs/web-admin/admin-server.py +++ b/rootfs/web-admin/admin-server.py @@ -456,7 +456,11 @@ def post_rootfs_install(self, *path_suffix): self.p( "Rootfs copied successfully to SD card. If you restart now it " "will be installed on boot. If you have changed your mind you " - "can delete the new rootfs from the SD card and cancel.") + "can delete the new rootfs from the SD card and cancel. " + "For a major upgrade it is recommended that you remove the" + "installed zpkgs to avoid compatibility issues.") + self.t('button.html', label='Remove zpkgs, Reboot and install it now', + path='system/remove_zpkgs_reboot_rootfs') self.t('button.html', label='Delete new rootfs and cancel', path='packages/delete_rootfs') self.t('button.html', label='Reboot and install it now', @@ -469,6 +473,23 @@ def post_delete_rootfs(self): yield self.revert_rootfs_files() self.p("Rootfs upgrade successfully cancelled.") + @add_post_page("system/remove_zpkgs_reboot_rootfs") + def post_remove_zpkgs_reboot_rootfs(self): + """Removing zpkgs, Rebooting System to Install Rootfs""" + ensure_usb_key_inserted() + zpkg_list = sorted(blocking_cmd_lines('zpkg', 'list')) + pkgs = [] + if zpkg_list: + for line in zpkg_list: + pkgs.append(line.split()[0]) + yield self.zpkg("remove", *pkgs) + yield self.run_command("rm", "-f", ROOTFS_OLD) + yield self.sync() + self.p("Rebooting now, please wait. " + "This page will refresh in 60 seconds...") + self.write('') + yield self.run_command('reboot') + @add_post_page("system/reboot_rootfs") def post_reboot_rootfs(self): """Rebooting System to Install Rootfs"""