Improve detection of lookaside packages

It is possible we only ever see a package from non-lookaside repo, but
it actually is in lookaside. This patch should check for that before
adding the package to result set.

JIRA: RCM-71946
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
This commit is contained in:
Lubomír Sedlář 2019-12-17 22:54:34 +01:00
parent 38c24b3038
commit b8bb4f7daa
1 changed files with 13 additions and 1 deletions

View File

@ -291,6 +291,18 @@ class Gather(GatherBase):
return [i for i in multilib_pkgs if i.sourcerpm == match.sourcerpm]
return [match]
def is_from_lookaside(self, pkg):
if not self.opts.lookaside_repos:
return False
pkgs = self.dnf.sack.query().filter(
name=pkg.name,
version=pkg.version,
release=pkg.release,
arch=pkg.arch,
reponame=self.opts.lookaside_repos
)
return pkg in pkgs
def _add_packages(self, packages, pulled_by=None, req=None, reason=None, dest=None):
dest = dest or self.result_binary_packages
for i in packages:
@ -306,7 +318,7 @@ class Gather(GatherBase):
self.logger.debug("Added package %s%s" % (i, pb))
dest.add(i)
# lookaside
if i.repoid in self.opts.lookaside_repos:
if self.is_from_lookaside(i):
self._set_flag(i, PkgFlag.lookaside)
if i.sourcerpm.rsplit('-', 2)[0] in self.opts.fulltree_excludes:
self._set_flag(i, PkgFlag.fulltree_exclude)