From 87b572b3d52445e9098ac45f25709681488b9596 Mon Sep 17 00:00:00 2001 From: Rajasi Rane Date: Mon, 15 Sep 2025 09:52:16 -0700 Subject: [PATCH] [AzL3Tdnf] Renaming TdnfPackageManager to AzL3PackageManager --- .../src/bootstrap/ConfigurationFactory.py | 8 +++---- ...geManager.py => AzL3TdnfPackageManager.py} | 22 +++++++------------ ...ager.py => Test_AzL3TdnfPackageManager.py} | 2 +- 3 files changed, 13 insertions(+), 19 deletions(-) rename src/core/src/package_managers/{TdnfPackageManager.py => AzL3TdnfPackageManager.py} (98%) rename src/core/tests/{Test_TdnfPackageManager.py => Test_AzL3TdnfPackageManager.py} (99%) diff --git a/src/core/src/bootstrap/ConfigurationFactory.py b/src/core/src/bootstrap/ConfigurationFactory.py index ad308f31..30bf7db0 100644 --- a/src/core/src/bootstrap/ConfigurationFactory.py +++ b/src/core/src/bootstrap/ConfigurationFactory.py @@ -37,7 +37,7 @@ from core.src.local_loggers.CompositeLogger import CompositeLogger from core.src.package_managers.AptitudePackageManager import AptitudePackageManager -from core.src.package_managers.TdnfPackageManager import TdnfPackageManager +from core.src.package_managers.AzL3TdnfPackageManager import AzL3TdnfPackageManager from core.src.package_managers.YumPackageManager import YumPackageManager from core.src.package_managers.ZypperPackageManager import ZypperPackageManager @@ -70,17 +70,17 @@ def __init__(self, log_file_path, events_folder, telemetry_supported): self.configurations = { 'apt_prod_config': self.new_prod_configuration(Constants.APT, AptitudePackageManager), - 'tdnf_prod_config': self.new_prod_configuration(Constants.TDNF, TdnfPackageManager), + 'tdnf_prod_config': self.new_prod_configuration(Constants.TDNF, AzL3TdnfPackageManager), 'yum_prod_config': self.new_prod_configuration(Constants.YUM, YumPackageManager), 'zypper_prod_config': self.new_prod_configuration(Constants.ZYPPER, ZypperPackageManager), 'apt_dev_config': self.new_dev_configuration(Constants.APT, AptitudePackageManager), - 'tdnf_dev_config': self.new_dev_configuration(Constants.TDNF, TdnfPackageManager), + 'tdnf_dev_config': self.new_dev_configuration(Constants.TDNF, AzL3TdnfPackageManager), 'yum_dev_config': self.new_dev_configuration(Constants.YUM, YumPackageManager), 'zypper_dev_config': self.new_dev_configuration(Constants.ZYPPER, ZypperPackageManager), 'apt_test_config': self.new_test_configuration(Constants.APT, AptitudePackageManager), - 'tdnf_test_config': self.new_test_configuration(Constants.TDNF, TdnfPackageManager), + 'tdnf_test_config': self.new_test_configuration(Constants.TDNF, AzL3TdnfPackageManager), 'yum_test_config': self.new_test_configuration(Constants.YUM, YumPackageManager), 'zypper_test_config': self.new_test_configuration(Constants.ZYPPER, ZypperPackageManager) } diff --git a/src/core/src/package_managers/TdnfPackageManager.py b/src/core/src/package_managers/AzL3TdnfPackageManager.py similarity index 98% rename from src/core/src/package_managers/TdnfPackageManager.py rename to src/core/src/package_managers/AzL3TdnfPackageManager.py index 9c380548..1dc25977 100644 --- a/src/core/src/package_managers/TdnfPackageManager.py +++ b/src/core/src/package_managers/AzL3TdnfPackageManager.py @@ -24,11 +24,11 @@ from core.src.bootstrap.Constants import Constants -class TdnfPackageManager(PackageManager): +class AzL3TdnfPackageManager(PackageManager): """Implementation of Azure Linux package management operations""" def __init__(self, env_layer, execution_config, composite_logger, telemetry_writer, status_handler): - super(TdnfPackageManager, self).__init__(env_layer, execution_config, composite_logger, telemetry_writer, status_handler) + super(AzL3TdnfPackageManager, self).__init__(env_layer, execution_config, composite_logger, telemetry_writer, status_handler) # Repo refresh self.cmd_clean_cache = "sudo tdnf clean expire-cache" self.cmd_repo_refresh = "sudo tdnf -q list updates" @@ -71,8 +71,8 @@ def __init__(self, env_layer, execution_config, composite_logger, telemetry_writ # commands for DNF Automatic updates service self.__init_constants_for_dnf_automatic() - # AzLinux3 Package Manager. - self.azl3_tdnf_packagemanager = self.AzL3TdnfPackageManager() + # Strict SDP specializations + self.TDNF_MINIMUM_VERSION_FOR_STRICT_SDP = "3.5.8-3.azl3" # minimum version of tdnf required to support Strict SDP in Azure Linux # Miscellaneous self.set_package_manager_setting(Constants.PKG_MGR_SETTING_IDENTITY, Constants.TDNF) @@ -257,16 +257,16 @@ def is_minimum_tdnf_version_for_strict_sdp_installed(self): """Check if at least the minimum required version of TDNF is installed""" self.composite_logger.log_debug("[TDNF] Checking if minimum TDNF version required for strict safe deployment is installed...") tdnf_version = self.get_tdnf_version() - minimum_tdnf_version_for_strict_sdp = self.azl3_tdnf_packagemanager.TDNF_MINIMUM_VERSION_FOR_STRICT_SDP + minimum_tdnf_version_for_strict_sdp = self.TDNF_MINIMUM_VERSION_FOR_STRICT_SDP distro_from_minimum_tdnf_version_for_strict_sdp = re.match(r".*-\d+\.([a-zA-Z0-9]+)$", minimum_tdnf_version_for_strict_sdp).group(1) if tdnf_version is None: self.composite_logger.log_error("[TDNF] Failed to get TDNF version. Cannot proceed with strict safe deployment. Defaulting to regular upgrades.") return False elif re.match(r".*-\d+\.([a-zA-Z0-9]+)$", tdnf_version).group(1) != distro_from_minimum_tdnf_version_for_strict_sdp: - self.composite_logger.log_warning("[TDNF] TDNF version installed is not from the same Azure Linux distribution as the minimum required version for strict SDP. [InstalledVersion={0}][MinimumRequiredVersion={1}]".format(tdnf_version, self.azl3_tdnf_packagemanager.TDNF_MINIMUM_VERSION_FOR_STRICT_SDP)) + self.composite_logger.log_warning("[TDNF] TDNF version installed is not from the same Azure Linux distribution as the minimum required version for strict SDP. [InstalledVersion={0}][MinimumRequiredVersion={1}]".format(tdnf_version, self.TDNF_MINIMUM_VERSION_FOR_STRICT_SDP)) return False elif not self.version_comparator.compare_versions(tdnf_version, minimum_tdnf_version_for_strict_sdp) >= 0: - self.composite_logger.log_warning("[TDNF] TDNF version installed is less than the minimum required version for strict SDP. [InstalledVersion={0}][MinimumRequiredVersion={1}]".format(tdnf_version, self.azl3_tdnf_packagemanager.TDNF_MINIMUM_VERSION_FOR_STRICT_SDP)) + self.composite_logger.log_warning("[TDNF] TDNF version installed is less than the minimum required version for strict SDP. [InstalledVersion={0}][MinimumRequiredVersion={1}]".format(tdnf_version, self.TDNF_MINIMUM_VERSION_FOR_STRICT_SDP)) return False return True @@ -289,7 +289,7 @@ def try_tdnf_update_to_meet_strict_sdp_requirements(self): # type: () -> bool """Attempt to update TDNF to meet the minimum version required for strict SDP""" self.composite_logger.log_debug("[TDNF] Attempting to update TDNF to meet strict safe deployment requirements...") - cmd = "sudo tdnf -y install tdnf-" + self.azl3_tdnf_packagemanager.TDNF_MINIMUM_VERSION_FOR_STRICT_SDP + cmd = "sudo tdnf -y install tdnf-" + self.TDNF_MINIMUM_VERSION_FOR_STRICT_SDP code, output = self.env_layer.run_command_output(cmd, no_output=True, chk_err=False) if code == 0: self.composite_logger.log_debug("[TDNF] Successfully updated TDNF for Strict SDP. [Command={0}][Code={1}]".format(cmd, code)) @@ -829,9 +829,3 @@ def separate_out_esm_packages(self, packages, package_versions): def get_package_install_expected_avg_time_in_seconds(self): return self.package_install_expected_avg_time_in_seconds - # region - AzLinux specializations - class AzL3TdnfPackageManager(object): - """AzLinux Package Manager class for TDNF package manager.""" - def __init__(self): - self.TDNF_MINIMUM_VERSION_FOR_STRICT_SDP = "3.5.8-3.azl3" # minimum version of tdnf required to support Strict SDP in Azure Linux - diff --git a/src/core/tests/Test_TdnfPackageManager.py b/src/core/tests/Test_AzL3TdnfPackageManager.py similarity index 99% rename from src/core/tests/Test_TdnfPackageManager.py rename to src/core/tests/Test_AzL3TdnfPackageManager.py index c05275de..ac3a9168 100644 --- a/src/core/tests/Test_TdnfPackageManager.py +++ b/src/core/tests/Test_AzL3TdnfPackageManager.py @@ -30,7 +30,7 @@ from core.src.external_dependencies import distro -class TestTdnfPackageManager(unittest.TestCase): +class TestAzL3TdnfPackageManager(unittest.TestCase): def setUp(self): self.runtime = RuntimeCompositor(ArgumentComposer().get_composed_arguments(), True, Constants.TDNF) self.container = self.runtime.container