forked from rpms/leapp-repository
75c9028095
- Enable new upgrade path for RHEL 8.10 -> RHEL 9.4 (including RHEL with SAP HANA) - Introduce generic transition of systemd services states during the IPU - Introduce possibility to upgrade with local repositories - Improve possibilities of upgrade when a proxy is configured in DNF configutation file - Fix handling of symlinks under /etc/pki when managing certificates - Fix the upgrade with custom https repositories - Default to the NO_RHSM mode when subscription-manager is not installed - Detect customized configuration of dynamic linker - Drop the invalid `tuv` target channel for the --channel option - Fix the issue of going out of bounds in the isccfg parser - Fix traceback when saving the rhsm facts results and the /etc/rhsm/facts directory doesn’t exist yet - Load all rpm repository substitutions that dnf knows about, not just "releasever" only - Simplify handling of upgrades on systems using RHUI, reducing the maintenance burden for cloud providers - Detect possible unexpected RPM GPG keys has been installed during RPM transaction - Resolves: RHEL-16729
191 lines
8.8 KiB
Diff
191 lines
8.8 KiB
Diff
From bea0f89bd858736418a535de37ddcfeef0ec4d31 Mon Sep 17 00:00:00 2001
|
|
From: Matej Matuska <mmatuska@redhat.com>
|
|
Date: Wed, 15 Mar 2023 16:35:35 +0100
|
|
Subject: [PATCH 19/38] Remove obsoleted enablersyncdservice actor
|
|
|
|
The `transitionsystemdservicesstates` actor now handles all such
|
|
services generically, which makes this actor obsolete.
|
|
---
|
|
.../transitionsystemdservicesstates.py | 10 +++---
|
|
.../test_transitionsystemdservicesstates.py | 33 +++++++++++++++----
|
|
.../actors/enablersyncdservice/actor.py | 21 ------------
|
|
.../libraries/enablersyncdservice.py | 21 ------------
|
|
.../tests/test_enablersyncdservice.py | 24 --------------
|
|
5 files changed, 32 insertions(+), 77 deletions(-)
|
|
delete mode 100644 repos/system_upgrade/el7toel8/actors/enablersyncdservice/actor.py
|
|
delete mode 100644 repos/system_upgrade/el7toel8/actors/enablersyncdservice/libraries/enablersyncdservice.py
|
|
delete mode 100644 repos/system_upgrade/el7toel8/actors/enablersyncdservice/tests/test_enablersyncdservice.py
|
|
|
|
diff --git a/repos/system_upgrade/common/actors/systemd/transitionsystemdservicesstates/libraries/transitionsystemdservicesstates.py b/repos/system_upgrade/common/actors/systemd/transitionsystemdservicesstates/libraries/transitionsystemdservicesstates.py
|
|
index 494271ae..b487366b 100644
|
|
--- a/repos/system_upgrade/common/actors/systemd/transitionsystemdservicesstates/libraries/transitionsystemdservicesstates.py
|
|
+++ b/repos/system_upgrade/common/actors/systemd/transitionsystemdservicesstates/libraries/transitionsystemdservicesstates.py
|
|
@@ -130,8 +130,8 @@ def _report_kept_enabled(tasks):
|
|
)
|
|
if tasks:
|
|
summary += (
|
|
- "The following services were originally disabled on the upgraded system"
|
|
- " and Leapp attempted to enable them:{}{}"
|
|
+ "The following services were originally disabled by preset on the"
|
|
+ " upgraded system and Leapp attempted to enable them:{}{}"
|
|
).format(FMT_LIST_SEPARATOR, FMT_LIST_SEPARATOR.join(sorted(tasks.to_enable)))
|
|
# TODO(mmatuska): When post-upgrade reports are implemented in
|
|
# `setsystemdservicesstates actor, add a note here to check the reports
|
|
@@ -193,9 +193,9 @@ def process():
|
|
presets_source = _expect_message(SystemdServicesPresetInfoSource).presets
|
|
presets_target = _expect_message(SystemdServicesPresetInfoTarget).presets
|
|
|
|
- services_source = dict((p.name, p.state) for p in services_source)
|
|
- presets_source = dict((p.service, p.state) for p in presets_source)
|
|
- presets_target = dict((p.service, p.state) for p in presets_target)
|
|
+ services_source = {p.name: p.state for p in services_source}
|
|
+ presets_source = {p.service: p.state for p in presets_source}
|
|
+ presets_target = {p.service: p.state for p in presets_target}
|
|
|
|
services_target = _filter_services(services_source, services_target)
|
|
|
|
diff --git a/repos/system_upgrade/common/actors/systemd/transitionsystemdservicesstates/tests/test_transitionsystemdservicesstates.py b/repos/system_upgrade/common/actors/systemd/transitionsystemdservicesstates/tests/test_transitionsystemdservicesstates.py
|
|
index a19afc7f..e0611859 100644
|
|
--- a/repos/system_upgrade/common/actors/systemd/transitionsystemdservicesstates/tests/test_transitionsystemdservicesstates.py
|
|
+++ b/repos/system_upgrade/common/actors/systemd/transitionsystemdservicesstates/tests/test_transitionsystemdservicesstates.py
|
|
@@ -177,17 +177,38 @@ def test_tasks_produced_reports_created(monkeypatch):
|
|
assert api.produce.model_instances[0].to_disable == expected_tasks.to_disable
|
|
|
|
|
|
-def test_report_kept_enabled(monkeypatch):
|
|
+@pytest.mark.parametrize(
|
|
+ "tasks, expect_extended_summary",
|
|
+ (
|
|
+ (
|
|
+ SystemdServicesTasks(
|
|
+ to_enable=["test.service", "other.service"],
|
|
+ to_disable=["another.service"],
|
|
+ ),
|
|
+ True,
|
|
+ ),
|
|
+ (None, False),
|
|
+ ),
|
|
+)
|
|
+def test_report_kept_enabled(monkeypatch, tasks, expect_extended_summary):
|
|
created_reports = create_report_mocked()
|
|
monkeypatch.setattr(reporting, "create_report", created_reports)
|
|
|
|
- tasks = SystemdServicesTasks(
|
|
- to_enable=["test.service", "other.service"], to_disable=["another.service"]
|
|
- )
|
|
transitionsystemdservicesstates._report_kept_enabled(tasks)
|
|
|
|
+ extended_summary_str = (
|
|
+ "The following services were originally disabled by preset on the"
|
|
+ " upgraded system and Leapp attempted to enable them"
|
|
+ )
|
|
+
|
|
assert created_reports.called
|
|
- assert all([s in created_reports.report_fields["summary"] for s in tasks.to_enable])
|
|
+ if expect_extended_summary:
|
|
+ assert extended_summary_str in created_reports.report_fields["summary"]
|
|
+ assert all(
|
|
+ [s in created_reports.report_fields["summary"] for s in tasks.to_enable]
|
|
+ )
|
|
+ else:
|
|
+ assert extended_summary_str not in created_reports.report_fields["summary"]
|
|
|
|
|
|
def test_get_newly_enabled():
|
|
@@ -205,7 +226,7 @@ def test_get_newly_enabled():
|
|
newly_enabled = transitionsystemdservicesstates._get_newly_enabled(
|
|
services_source, desired_states
|
|
)
|
|
- assert newly_enabled == ['test.service']
|
|
+ assert newly_enabled == ["test.service"]
|
|
|
|
|
|
def test_report_newly_enabled(monkeypatch):
|
|
diff --git a/repos/system_upgrade/el7toel8/actors/enablersyncdservice/actor.py b/repos/system_upgrade/el7toel8/actors/enablersyncdservice/actor.py
|
|
deleted file mode 100644
|
|
index bdf2e63e..00000000
|
|
--- a/repos/system_upgrade/el7toel8/actors/enablersyncdservice/actor.py
|
|
+++ /dev/null
|
|
@@ -1,21 +0,0 @@
|
|
-from leapp.actors import Actor
|
|
-from leapp.libraries.actor import enablersyncdservice
|
|
-from leapp.models import SystemdServicesInfoSource, SystemdServicesTasks
|
|
-from leapp.tags import ChecksPhaseTag, IPUWorkflowTag
|
|
-
|
|
-
|
|
-class EnableDeviceCioFreeService(Actor):
|
|
- """
|
|
- Enables rsyncd.service systemd service if it is enabled on source system
|
|
-
|
|
- After an upgrade this service ends up disabled even if it was enabled on
|
|
- the source system.
|
|
- """
|
|
-
|
|
- name = 'enable_rsyncd_service'
|
|
- consumes = (SystemdServicesInfoSource,)
|
|
- produces = (SystemdServicesTasks,)
|
|
- tags = (ChecksPhaseTag, IPUWorkflowTag)
|
|
-
|
|
- def process(self):
|
|
- enablersyncdservice.process()
|
|
diff --git a/repos/system_upgrade/el7toel8/actors/enablersyncdservice/libraries/enablersyncdservice.py b/repos/system_upgrade/el7toel8/actors/enablersyncdservice/libraries/enablersyncdservice.py
|
|
deleted file mode 100644
|
|
index 216ebca9..00000000
|
|
--- a/repos/system_upgrade/el7toel8/actors/enablersyncdservice/libraries/enablersyncdservice.py
|
|
+++ /dev/null
|
|
@@ -1,21 +0,0 @@
|
|
-from leapp.exceptions import StopActorExecutionError
|
|
-from leapp.libraries.stdlib import api
|
|
-from leapp.models import SystemdServicesInfoSource, SystemdServicesTasks
|
|
-
|
|
-SERVICE_NAME = "rsyncd.service"
|
|
-
|
|
-
|
|
-def _service_enabled_source(service_info, name):
|
|
- service_file = next((s for s in service_info.service_files if s.name == name), None)
|
|
- return service_file and service_file.state == "enabled"
|
|
-
|
|
-
|
|
-def process():
|
|
- service_info_source = next(api.consume(SystemdServicesInfoSource), None)
|
|
- if not service_info_source:
|
|
- raise StopActorExecutionError(
|
|
- "Expected SystemdServicesInfoSource message, but didn't get any"
|
|
- )
|
|
-
|
|
- if _service_enabled_source(service_info_source, SERVICE_NAME):
|
|
- api.produce(SystemdServicesTasks(to_enable=[SERVICE_NAME]))
|
|
diff --git a/repos/system_upgrade/el7toel8/actors/enablersyncdservice/tests/test_enablersyncdservice.py b/repos/system_upgrade/el7toel8/actors/enablersyncdservice/tests/test_enablersyncdservice.py
|
|
deleted file mode 100644
|
|
index 34a25afe..00000000
|
|
--- a/repos/system_upgrade/el7toel8/actors/enablersyncdservice/tests/test_enablersyncdservice.py
|
|
+++ /dev/null
|
|
@@ -1,24 +0,0 @@
|
|
-import pytest
|
|
-
|
|
-from leapp.libraries.actor import enablersyncdservice
|
|
-from leapp.libraries.common.testutils import CurrentActorMocked, produce_mocked
|
|
-from leapp.libraries.stdlib import api
|
|
-from leapp.models import SystemdServiceFile, SystemdServicesInfoSource, SystemdServicesTasks
|
|
-
|
|
-
|
|
-@pytest.mark.parametrize('service_file, should_produce', [
|
|
- (SystemdServiceFile(name='rsyncd.service', state='enabled'), True),
|
|
- (SystemdServiceFile(name='rsyncd.service', state='disabled'), False),
|
|
- (SystemdServiceFile(name='not-rsyncd.service', state='enabled'), False),
|
|
- (SystemdServiceFile(name='not-rsyncd.service', state='disabled'), False),
|
|
-])
|
|
-def test_task_produced(monkeypatch, service_file, should_produce):
|
|
- service_info = SystemdServicesInfoSource(service_files=[service_file])
|
|
- monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(msgs=[service_info]))
|
|
- monkeypatch.setattr(api, "produce", produce_mocked())
|
|
-
|
|
- enablersyncdservice.process()
|
|
-
|
|
- assert api.produce.called == should_produce
|
|
- if should_produce:
|
|
- assert api.produce.model_instances[0].to_enable == ['rsyncd.service']
|
|
--
|
|
2.41.0
|
|
|