diff --git a/python/dnfdaemon/server/__init__.py b/python/dnfdaemon/server/__init__.py index 15b61af..452f1a4 100644 --- a/python/dnfdaemon/server/__init__.py +++ b/python/dnfdaemon/server/__init__.py @@ -203,6 +203,7 @@ def __init__(self): self._obsoletes_list = None # Cache for obsoletes self._gpg_confirm = {} # store confirmed gpg key import confirmations self._config_options = {} + self._enabled_repos = [] # this must be overloaded in the parent class def GPGImport(self, pkg_id, userid, hexkeyid, keyurl, timestamp): @@ -321,14 +322,9 @@ def get_repo(self, repo_id): def set_enabled_repos(self, repo_ids): """Enable a list of repos, disable the ones not in list""" + self._enabled_repos = repo_ids self._reset_base() self._get_base(reset=True, load_sack=False) - for repo in self.base.repos.all(): - if repo.id in repo_ids: - logger.debug(" enabled : %s ", repo.id) - repo.enable() - else: - repo.disable() self._base.setup_base() # load the sack with the current enabled repos def get_packages(self, pkg_filter, attrs): @@ -1057,6 +1053,14 @@ def _get_base(self, reset=False, load_sack=True): setattr(self._base.conf, option, value) self.logger.debug("setting cached option %s = %s" % (option, value)) + if self._enabled_repos: + for repo in self._base.repos.all(): + if repo.id in self._enabled_repos: + logger.debug(" enabled : %s ", repo.id) + repo.enable() + else: + repo.disable() + pass if load_sack: self._base.setup_base() return self._base