From 340ffa055837a14cf07d3ea5b702c61ce6fa33e2 Mon Sep 17 00:00:00 2001
From: Tim Lauridsen <timlau@fedoraproject.org>
Date: Tue, 5 May 2015 19:22:40 +0200
Subject: [PATCH] fix: make fetching of available updates better

Make repo priority and other excluding work.

(Rhbug: 1217155)
---
 python/dnfdaemon/server/backend.py | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/python/dnfdaemon/server/backend.py b/python/dnfdaemon/server/backend.py
index b09d512..b91b9f1 100644
--- a/python/dnfdaemon/server/backend.py
+++ b/python/dnfdaemon/server/backend.py
@@ -145,7 +145,23 @@ class Packages:
     @property
     def updates(self):
         """Get available updates."""
-        return self.query.upgrades().latest().run()
+        pkgs = []
+        try:
+            # we have to do upgrade_all & resolve
+            # to make sure pkgs exclude by repo priority etc
+            # get handled.
+            self._base.upgrade_all()
+            self._base.resolve(allow_erasing=True)
+        except dnf.exceptions.DepsolveError as e:
+            self.logger.debug(str(e))
+            return pkgs
+        # return install/upgrade type pkgs from transaction
+        for tsi in self._base.transaction:
+            #print(tsi.op_type, tsi.installed, tsi.erased, tsi.obsoleted)
+            if tsi.op_type == dnf.transaction.UPGRADE or \
+               tsi.op_type == dnf.transaction.INSTALL:
+                pkgs.append(tsi.installed)
+        return pkgs
 
     @property
     def all(self):
-- 
GitLab