From bea0f89bd858736418a535de37ddcfeef0ec4d31 Mon Sep 17 00:00:00 2001 From: Matej Matuska 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