forked from rpms/leapp-repository
e5599cfda4
- Add detection of possible usage of OpenSSL IBMCA engine on IBM Z machines - Add detection of modified /etc/pki/tls/openssl.cnf file - Update the leapp upgrade data files - Fix handling of symlinks under /etc/pki with relative paths specified - Report custom actors and modifications of the upgrade tooling - Requires xfsprogs and e2fsprogs to ensure that Ext4 and XFS tools are installed - Bump leapp-repository-dependencies to 10 - Resolves: RHEL-1774, RHEL-16729
123 lines
6.6 KiB
Diff
123 lines
6.6 KiB
Diff
From e414f7c6572af4293cacadd810154677892c4028 Mon Sep 17 00:00:00 2001
|
|
From: Matej Matuska <mmatuska@redhat.com>
|
|
Date: Thu, 23 Nov 2023 17:38:35 +0100
|
|
Subject: [PATCH 55/60] pes_events_scanner: Ignore Leapp related PES events
|
|
|
|
When PES events are added for all the Leapp related packages, we need to
|
|
make sure to ignore them in `pes_events_scanner` to make sure they are
|
|
*not* taken into account during the RPM upgrade transaction as we don't
|
|
want to upgrade them or want to handle their upgrade in a different way.
|
|
|
|
Jira: OAMG-5645
|
|
---
|
|
.../libraries/pes_events_scanner.py | 16 +++++
|
|
.../tests/test_pes_event_scanner.py | 61 +++++++++++++++++++
|
|
2 files changed, 77 insertions(+)
|
|
|
|
diff --git a/repos/system_upgrade/common/actors/peseventsscanner/libraries/pes_events_scanner.py b/repos/system_upgrade/common/actors/peseventsscanner/libraries/pes_events_scanner.py
|
|
index 72dd34ec..75c3ea89 100644
|
|
--- a/repos/system_upgrade/common/actors/peseventsscanner/libraries/pes_events_scanner.py
|
|
+++ b/repos/system_upgrade/common/actors/peseventsscanner/libraries/pes_events_scanner.py
|
|
@@ -480,6 +480,21 @@ def apply_transaction_configuration(source_pkgs):
|
|
return source_pkgs_with_conf_applied
|
|
|
|
|
|
+def remove_leapp_related_events(events):
|
|
+ leapp_pkgs = [
|
|
+ 'leapp', 'leapp-deps', 'leapp-upgrade-el7toel8', 'leapp-upgrade-el8toel9',
|
|
+ 'leapp-upgrade-el7toel8-deps', 'leapp-upgrade-el8toel9-deps', 'python2-leapp',
|
|
+ 'python3-leapp', 'snactor'
|
|
+ ]
|
|
+ res = []
|
|
+ for event in events:
|
|
+ if not any(pkg.name in leapp_pkgs for pkg in event.in_pkgs):
|
|
+ res.append(event)
|
|
+ else:
|
|
+ api.current_logger().debug('Filtered out leapp related event, event id: {}'.format(event.id))
|
|
+ return res
|
|
+
|
|
+
|
|
def process():
|
|
# Retrieve data - installed_pkgs, transaction configuration, pes events
|
|
events = get_pes_events('/etc/leapp/files', 'pes-events.json')
|
|
@@ -494,6 +509,7 @@ def process():
|
|
# packages of the target system, so we can distinguish what needs to be repomapped
|
|
repoids_of_source_pkgs = {pkg.repository for pkg in source_pkgs}
|
|
|
|
+ events = remove_leapp_related_events(events)
|
|
events = remove_undesired_events(events, releases)
|
|
|
|
# Apply events - compute what packages should the target system have
|
|
diff --git a/repos/system_upgrade/common/actors/peseventsscanner/tests/test_pes_event_scanner.py b/repos/system_upgrade/common/actors/peseventsscanner/tests/test_pes_event_scanner.py
|
|
index 243f85c4..8150c164 100644
|
|
--- a/repos/system_upgrade/common/actors/peseventsscanner/tests/test_pes_event_scanner.py
|
|
+++ b/repos/system_upgrade/common/actors/peseventsscanner/tests/test_pes_event_scanner.py
|
|
@@ -402,3 +402,64 @@ def test_pkgs_are_demodularized_when_crossing_major_version(monkeypatch):
|
|
}
|
|
assert demodularized_pkgs == {Package('demodularized', 'repo', ('module-demodularized', 'stream'))}
|
|
assert target_pkgs == expected_target_pkgs
|
|
+
|
|
+
|
|
+def test_remove_leapp_related_events():
|
|
+ # these are just hypothetical and not necessarily correct
|
|
+ package_set_two_leapp = {Package('leapp-upgrade-el7toel8', 'repoid-rhel7', None),
|
|
+ Package('leapp-upgrade-el7toel8-deps', 'repoid-rhel7', None)}
|
|
+ package_set_one_leapp = {Package('leapp-upgrade-el7toel8', 'repoid-rhel7', None),
|
|
+ Package('other', 'repoid-rhel7', None)}
|
|
+ in_events = [
|
|
+ Event(1, Action.PRESENT, {Package('leapp', 'repoid-rhel7', None)},
|
|
+ {Package('leapp', 'repoid-rhel8', None)}, (7, 0), (8, 0), []),
|
|
+
|
|
+ Event(1, Action.RENAMED, {Package('leapp-deps', 'repoid-rhel7', None)},
|
|
+ {Package('leapp-deps', 'repoid-rhel8', None)}, (7, 0), (8, 0), []),
|
|
+ Event(1, Action.RENAMED, {Package('leapp-upgrade-el7toel8', 'repoid-rhel7', None)},
|
|
+ {Package('leapp-upgrade-el8toel9', 'repoid-rhel8', None)}, (7, 0), (8, 0), []),
|
|
+ Event(2, Action.RENAMED, {Package('leapp-upgrade-el7toel8-deps', 'repoid-rhel7', None)},
|
|
+ {Package('leapp-upgrade-el8toel9-deps', 'repoid-rhel8', None)}, (7, 0), (8, 0), []),
|
|
+ Event(2, Action.PRESENT, {Package('snactor', 'repoid-rhel7', None)},
|
|
+ {Package('snactor', 'repoid-rhel8', None)}, (7, 0), (8, 0), []),
|
|
+ Event(2, Action.REPLACED, {Package('python2-leapp', 'repoid-rhel7', None)},
|
|
+ {Package('python3-leapp', 'repoid-rhel8', None)},
|
|
+ (7, 0), (8, 0), []),
|
|
+
|
|
+ Event(1, Action.DEPRECATED, {Package('leapp-upgrade-el8toel9', 'repoid-rhel8', None)},
|
|
+ {Package('leapp-upgrade-el8toel9', 'repoid-rhel9', None)}, (8, 0), (9, 0), []),
|
|
+ Event(2, Action.REMOVED, {Package('leapp-upgrade-el8toel9-deps', 'repoid-rhel8', None)},
|
|
+ {}, (8, 0), (9, 0), []),
|
|
+ Event(1, Action.RENAMED, {Package('leapp-deps', 'repoid-rhel8', None)},
|
|
+ {Package('leapp-deps', 'repoid-rhel9', None)}, (8, 0), (9, 0), []),
|
|
+ Event(2, Action.PRESENT, {Package('snactor', 'repoid-rhel8', None)},
|
|
+ {Package('snactor', 'repoid-rhel9', None)}, (8, 0), (9, 0), []),
|
|
+ Event(2, Action.REMOVED, {Package('python3-leapp', 'repoid-rhel8', None)},
|
|
+ {Package('snactor', 'repoid-rhel9', None)}, (8, 0), (9, 0), []),
|
|
+
|
|
+ Event(2, Action.PRESENT, {Package('other-pkg', 'repoid-rhel8', None)},
|
|
+ {Package('other-pkg', 'repoid-rhel9', None)}, (7, 0), (8, 0), []),
|
|
+ Event(2, Action.PRESENT, {Package('other-pkg-with-leapp-in-the-name', 'repoid-rhel7', None)},
|
|
+ {Package('other-pkg-with-leapp-in-the-name', 'repoid-rhel8', None)}, (7, 0), (8, 0), []),
|
|
+
|
|
+ # multiple leapp packages in in_pkgs
|
|
+ Event(1, Action.MERGED, package_set_two_leapp, {Package('leapp-upgrade-el7toel8', 'repoid-rhel8', None)},
|
|
+ (7, 0), (8, 0), []),
|
|
+
|
|
+ # multiple leapp packages in out_pkgs
|
|
+ Event(1, Action.SPLIT, {Package('leapp-upgrade-el7toel8', 'repoid-rhel7', None)},
|
|
+ package_set_two_leapp, (7, 0), (8, 0), []),
|
|
+
|
|
+ # leapp and other pkg in in_pkgs
|
|
+ Event(1, Action.MERGED, package_set_one_leapp, {Package('leapp', 'repoid-rhel8', None)},
|
|
+ (7, 0), (8, 0), []),
|
|
+ ]
|
|
+ expected_out_events = [
|
|
+ Event(2, Action.PRESENT, {Package('other-pkg', 'repoid-rhel8', None)},
|
|
+ {Package('other-pkg', 'repoid-rhel9', None)}, (7, 0), (8, 0), []),
|
|
+ Event(2, Action.PRESENT, {Package('other-pkg-with-leapp-in-the-name', 'repoid-rhel7', None)},
|
|
+ {Package('other-pkg-with-leapp-in-the-name', 'repoid-rhel8', None)}, (7, 0), (8, 0), []),
|
|
+ ]
|
|
+
|
|
+ out_events = pes_events_scanner.remove_leapp_related_events(in_events)
|
|
+ assert out_events == expected_out_events
|
|
--
|
|
2.43.0
|
|
|