diff --git a/pyanaconda/modules/payloads/payload/dnf/dnf_manager.py b/pyanaconda/modules/payloads/payload/dnf/dnf_manager.py index b5e2ae5e956..2c710d6d907 100644 --- a/pyanaconda/modules/payloads/payload/dnf/dnf_manager.py +++ b/pyanaconda/modules/payloads/payload/dnf/dnf_manager.py @@ -341,6 +341,7 @@ def __init__(self): self._download_location = None self._md_hashes = {} self._enabled_system_repositories = [] + self._repositories_loaded = False self._query_environments = None self._query_groups = None @@ -422,6 +423,7 @@ def reset_base(self): self._download_location = None self._md_hashes = {} self._enabled_system_repositories = [] + self._repositories_loaded = False log.debug("The DNF base has been reset.") def configure_base(self, data: PackagesConfigurationData): @@ -1060,6 +1062,9 @@ def _create_repository(self, data: RepoConfigurationData): :param RepoConfigurationData data: a repo configuration return dnf.repo.Repo: a DNF repository """ + if self._repositories_loaded: + raise RuntimeError("Cannot create a new repository. Repositories were already loaded.") + repo_sack = self._base.get_repo_sack() repo = repo_sack.create_repo(data.name) config = simplify_config(repo.get_config()) @@ -1249,6 +1254,7 @@ def load_repositories(self): except RuntimeError as e: log.warning(str(e)) raise MetadataError(str(e)) from None + self._repositories_loaded = True log.info("Loaded repositories.") def load_repomd_hashes(self):