From af0acdbaf44179fb5bd85dd28e49526cb299a86e Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Wed, 24 Jul 2013 15:30:42 +0200 Subject: [PATCH] [entropy.server] refactor dependencies_test() and _deps_tester() --- lib/entropy/server/interfaces/main.py | 41 +++++++++++---------------- 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/lib/entropy/server/interfaces/main.py b/lib/entropy/server/interfaces/main.py index 95301f47d..5aac02458 100644 --- a/lib/entropy/server/interfaces/main.py +++ b/lib/entropy/server/interfaces/main.py @@ -4409,8 +4409,7 @@ class Server(Client): def _deps_tester(self, default_repository_id, match_repo = None): - sys_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server'] - server_repos = list(sys_set['repositories'].keys()) + server_repos = self.repositories() if match_repo is None: match_repo = server_repos installed_packages = set() @@ -4418,11 +4417,10 @@ class Server(Client): if default_repository_id: server_repos = [default_repository_id] - for repo in server_repos: - dbconn = self.open_server_repository(repo, read_only = True, - no_upload = True, do_treeupdates = False) - installed_packages |= set([(x, repo) for x in \ - dbconn.listAllPackageIds()]) + for repository_id in server_repos: + repo = self.open_repository(repository_id) + installed_packages |= set([(x, repository_id) for x in \ + repo.listAllPackageIds()]) deps_not_satisfied = set() length = str((len(installed_packages))) @@ -4430,13 +4428,12 @@ class Server(Client): mytxt = _("Checking") _deps_cache = set() - for idpackage, repo in installed_packages: + for idpackage, repository_id in installed_packages: count += 1 - dbconn = self.open_server_repository(repo, read_only = True, - no_upload = True, do_treeupdates = False) + repo = self.open_repository(repository_id) if (count%150 == 0) or (count == length) or (count == 1): - atom = dbconn.retrieveAtom(idpackage) + atom = repo.retrieveAtom(idpackage) self.output( darkgreen(mytxt)+" "+bold(atom), importance = 0, @@ -4448,7 +4445,7 @@ class Server(Client): # NOTE: this must also test build dependencies to make sure # that every packages comes out with all of them. - xdeps = dbconn.retrieveDependencies(idpackage) + xdeps = repo.retrieveDependencies(idpackage) xdeps = [x for x in xdeps if x not in _deps_cache] _deps_cache.update(xdeps) for xdep in xdeps: @@ -4978,29 +4975,25 @@ class Server(Client): header = red(" @@ ") ) - srv_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server'] - server_repos = list(srv_set['repositories'].keys()) - if match_repo is not None: - server_repo = match_repo deps_not_matched = self._deps_tester(repository_id, match_repo = match_repo) if deps_not_matched: - + repository_ids = self.repositories() crying_atoms = {} + for atom in deps_not_matched: - for repo in server_repos: - dbconn = self.open_server_repository(repo, - just_reading = True, do_treeupdates = False) - riddep = dbconn.searchDependency(atom) + for repository_id in repository_ids: + repo = self.open_repository(repository_id) + riddep = repo.searchDependency(atom) if riddep == -1: continue - ridpackages = dbconn.searchPackageIdFromDependencyId(riddep) + ridpackages = repo.searchPackageIdFromDependencyId(riddep) for i in ridpackages: - iatom = dbconn.retrieveAtom(i) + iatom = repo.retrieveAtom(i) if atom not in crying_atoms: crying_atoms[atom] = set() - crying_atoms[atom].add((iatom, repo)) + crying_atoms[atom].add((iatom, repository_id)) mytxt = blue("%s:") % (_("These are the dependencies not found"),) self.output(