From dc66c8556f8e414db35db40d9473d66f8a35f780 Mon Sep 17 00:00:00 2001 From: Weisson Date: Thu, 8 Dec 2022 15:57:12 +0800 Subject: [PATCH] Migrear grub2 entry recovery is supported. Signed-off-by: Weisson --- 0034-migrear-grub2-entry-recovery.patch | 54 +++++++++++++++++++++++++ leapp-repository.spec | 6 ++- 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 0034-migrear-grub2-entry-recovery.patch diff --git a/0034-migrear-grub2-entry-recovery.patch b/0034-migrear-grub2-entry-recovery.patch new file mode 100644 index 0000000..969f5c9 --- /dev/null +++ b/0034-migrear-grub2-entry-recovery.patch @@ -0,0 +1,54 @@ +From 525785a2ecda253dbb745a104435edec192ec2f8 Mon Sep 17 00:00:00 2001 +From: Weisson +Date: Thu, 8 Dec 2022 15:47:19 +0800 +Subject: [PATCH] migrear grub2 entry recovery. + +Signed-off-by: Weisson +--- + .../actors/dnfupgradetransaction/actor.py | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/repos/system_upgrade/el7toel8/actors/dnfupgradetransaction/actor.py b/repos/system_upgrade/el7toel8/actors/dnfupgradetransaction/actor.py +index 73e5a83..63bb273 100644 +--- a/repos/system_upgrade/el7toel8/actors/dnfupgradetransaction/actor.py ++++ b/repos/system_upgrade/el7toel8/actors/dnfupgradetransaction/actor.py +@@ -13,6 +13,8 @@ from leapp.models import ( + UsedTargetRepositories, + ) + from leapp.tags import IPUWorkflowTag, RPMUpgradePhaseTag ++import subprocess ++import re + + + class DnfUpgradeTransaction(Actor): +@@ -47,10 +49,27 @@ class DnfUpgradeTransaction(Actor): + tasks = next(self.consume(FilteredRpmTransactionTasks), FilteredRpmTransactionTasks()) + target_userspace_info = next(self.consume(TargetUserSpaceInfo), None) + ++ output = subprocess.check_output("grubby --info=ALL", shell=True).strip() ++ grub_entries = output.split('index=') ++ ++ migrear_entries = [] ++ for entry in grub_entries: ++ if 'title=MigReaR-' in entry: ++ items = re.findall(r"kernel=(.*)\nargs=(.*)\ninitrd=(.*)\ntitle=(.*)\n", entry) ++ if len(items) == 1: ++ migrear_entries += [dict(zip(("kernel", "args", "initrd", "title"), items[0]))] ++ + dnfplugin.perform_transaction_install( + tasks=tasks, used_repos=used_repos, storage_info=storage_info, target_userspace_info=target_userspace_info, + plugin_info=plugin_info + ) ++ ++ for entry in migrear_entries: ++ try: ++ subprocess.check_call("grubby --add-kernel %s --initrd %s --args=%s --title=%s" % (entry['kernel'], entry['initrd'], entry['args'], entry['title']), shell=True) ++ except Exception as e: ++ self.log.info(" ".join(["Failed restore migrear entry", str(entry), "Exception:", str(e)]), exc_info=True) ++ + self.produce(TransactionCompleted()) + userspace = next(self.consume(TargetUserSpaceInfo), None) + if userspace: +-- +2.30.1 (Apple Git-130) + diff --git a/leapp-repository.spec b/leapp-repository.spec index 1f1360b..978d3a3 100644 --- a/leapp-repository.spec +++ b/leapp-repository.spec @@ -11,7 +11,7 @@ }\ py2_byte_compile "%1" "%2"} -%define anolis_release 9 +%define anolis_release 10 Name: leapp-repository Version: 0.13.0 @@ -59,6 +59,7 @@ Patch30: 0030-fix-subprocess-check_output-method-for-backup-service-confi Patch31: 0031-Deal-with-EPEL-repositories-create-by-user-mannally.patch Patch32: 0032-Keep-PermitRootLogin-authentication-behavior-after-m.patch Patch33: 0033-Read-the-driver-list-supported-by-ANCK.patch +Patch34: 0034-migrear-grub2-entry-recovery.patch BuildArch: noarch BuildRequires: python-devel @@ -181,6 +182,9 @@ done; # no files here %changelog +* Thu Dec 8 2022 Weisson - 0.13.0-2.10 +- Migrear grub2 entry recovery is supported. + * Thu Nov 15 2022 Bitao Hu - 0.13.0-2.9 - Read the driver list supported by ANCK to determine driver compatibility problem, when migrating to Anolis8 with ANCK. -- Gitee