From 9c34a5d3af3ac21b208c90f424e404b4bf68837b Mon Sep 17 00:00:00 2001
From: Jaroslav Mracek <jmracek@redhat.com>
Date: Tue, 25 Jun 2019 11:44:37 +0200
Subject: [PATCH] Add detailed debug login for swdb/rpm transaction
---
dnf/util.py | 25 +++++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/dnf/util.py b/dnf/util.py
index 9d0288e..71f61ab 100644
--- a/dnf/util.py
+++ b/dnf/util.py
@@ -396,6 +396,23 @@ def _te_nevra(te):
return nevra + te.V() + '-' + te.R() + '.' + te.A()
+def _log_rpm_trans_with_swdb(rpm_transaction, swdb_transaction):
+ logger.debug("Logging transaction elements")
+ for rpm_el in rpm_transaction:
+ tsi = rpm_el.Key()
+ tsi_state = None
+ if tsi is not None:
+ tsi_state = tsi.state
+ msg = "RPM element: '{}', Key(): '{}', Key state: '{}', Failed() '{}': ".format(
+ _te_nevra(rpm_el), tsi, tsi_state, rpm_el.Failed())
+ logger.debug(msg)
+ for tsi in swdb_transaction:
+ msg = "SWDB element: '{}', State: '{}', Action: '{}', From repo: '{}', Reason: '{}', " \
+ "Get reason: '{}'".format(str(tsi), tsi.state, tsi.action, tsi.from_repo, tsi.reason,
+ tsi.get_reason())
+ logger.debug(msg)
+
+
def _sync_rpm_trans_with_swdb(rpm_transaction, swdb_transaction):
revert_actions = {libdnf.transaction.TransactionItemAction_DOWNGRADED,
libdnf.transaction.TransactionItemAction_OBSOLETED,
@@ -426,10 +443,14 @@ def _sync_rpm_trans_with_swdb(rpm_transaction, swdb_transaction):
error = True
else:
tsi.state = libdnf.transaction.TransactionItemState_DONE
+ for tsi in cached_tsi:
+ if tsi.state == libdnf.transaction.TransactionItemState_UNKNOWN:
+ logger.critical(_("TransactionSWDBItem not found for key: {}").format(str(tsi)))
+ el_not_found = True
if error:
logger.debug(_('Errors occurred during transaction.'))
-
- return el_not_found
+ if el_not_found:
+ _log_rpm_trans_with_swdb(rpm_transaction, cached_tsi)
class tmpdir(object):
--
libgit2 0.27.8