Skip to content

Commit

Permalink
Remember if repositories were loaded
Browse files Browse the repository at this point in the history
In libdnf5, the `repos_updated_and_loaded` bool attribute, which serves
the same purpose, is private.
  • Loading branch information
pkratoch committed Sep 30, 2024
1 parent ac5ff57 commit d34a250
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions pyanaconda/modules/payloads/payload/dnf/dnf_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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):
Expand Down Expand Up @@ -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())
Expand Down Expand Up @@ -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):
Expand Down

0 comments on commit d34a250

Please sign in to comment.