diff --git a/python/spacewalk.changes.nodeg.context_manager_fix_reposync b/python/spacewalk.changes.nodeg.context_manager_fix_reposync new file mode 100644 index 000000000000..7e242809fb16 --- /dev/null +++ b/python/spacewalk.changes.nodeg.context_manager_fix_reposync @@ -0,0 +1 @@ +- fix `AttributeError: ENABLE_NVREA` for reposyncing (bsc#1226273) diff --git a/python/spacewalk/server/importlib/backend.py b/python/spacewalk/server/importlib/backend.py index a7f576536fbd..953c27ad0372 100644 --- a/python/spacewalk/server/importlib/backend.py +++ b/python/spacewalk/server/importlib/backend.py @@ -26,7 +26,7 @@ from uyuni.common.usix import raise_with_tb from uyuni.common import rhn_rpm -from spacewalk.common.rhnConfig import CFG +from spacewalk.common.rhnConfig import cfg_component from spacewalk.common.rhnException import rhnFault from spacewalk.common.rhnLog import log_debug from spacewalk.satellite_tools import syncLib @@ -171,11 +171,9 @@ def processCapabilities(self, capabilityHash): # pylint: disable-next=invalid-name def processChangeLog(self, changelogHash): - if ( - CFG.has_key("package_import_skip_changelog") - and CFG.package_import_skip_changelog - ): - return + with cfg_component(None) as cfg: + if cfg.get("package_import_skip_changelog"): + return None if not changelogHash: return @@ -1123,12 +1121,9 @@ def processPackages( "susePackageEula": "package_id", "rhnPackageExtraTag": "package_id", } - - if ( - CFG.has_key("package_import_skip_changelog") - and CFG.package_import_skip_changelog - ): - del childTables["rhnPackageChangeLogRec"] + with cfg_component(None) as cfg: + if cfg.get("package_import_skip_changelog"): + del childTables["rhnPackageChangeLogRec"] for package in packages: if not isinstance(package, Package): @@ -1206,11 +1201,13 @@ def update_channels_affected_by_errata(self, dml): affected_errata_ids = {} for op_type in ["insert", "update", "delete"]: op_values = getattr(dml, op_type) - for table_name, values_hash in list(op_values.items()): + for table_name, values_hash in op_values.items(): if table_name == "rhnErrata": field = "id" elif "errata_id" in values_hash: field = "errata_id" + else: + continue # Now we know in which field to look for changes for erratum_id in values_hash[field]: @@ -3295,10 +3292,11 @@ def _do_diff(self, data, table_name, uq_fields, fields): def validate_pks(self): # If nevra is enabled use checksum as primary key tbs = self.tables["rhnPackage"] - if not CFG.ENABLE_NVREA: - # remove checksum from a primary key if nevra is disabled. - if "checksum_id" in tbs.pk: - tbs.pk.remove("checksum_id") + with cfg_component("server") as cfg: + if not cfg.ENABLE_NVREA: + # remove checksum from a primary key if nevra is disabled. + if "checksum_id" in tbs.pk: + tbs.pk.remove("checksum_id") # Returns a tuple for the hash's values