[entropy.server] refactor dependencies_test() and _deps_tester()

This commit is contained in:
Fabio Erculiani
2013-07-24 15:30:42 +02:00
parent 52bb429773
commit af0acdbaf4
+17 -24
View File
@@ -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(