From 01f5570bb74aa923870e253007b76e8ed266a27f Mon Sep 17 00:00:00 2001
From: Marek Blaha <mblaha@redhat.com>
Date: Wed, 1 Jul 2020 08:52:19 +0200
Subject: [PATCH 3/5] [debug] Use standard demands.resolving for transaction
handling
Do not handle the transaction in plugin, use standard demands.resolving
instead. This ensures that transaction errors are correctly presented to
the user.
Before:
$ dnf debug-restore running-kernel-remove.txt.gz
$ echo $?
1
After the patch:
$ dnf debug-restore running-kernel-remove.txt.gz
Error:
Problem: The operation would result in removing the following protected packages: kernel-core
(try to add '--skip-broken' to skip uninstallable packages)
$ echo $?
1
---
plugins/debug.py | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/plugins/debug.py b/plugins/debug.py
index 29c5bf7..efe6bea 100644
--- a/plugins/debug.py
+++ b/plugins/debug.py
@@ -175,6 +175,8 @@ class DebugRestoreCommand(dnf.cli.Command):
self.cli.demands.sack_activation = True
self.cli.demands.available_repos = True
self.cli.demands.root_user = True
+ if not self.opts.output:
+ self.cli.demands.resolving = True
@staticmethod
def set_argparser(parser):
@@ -207,10 +209,6 @@ class DebugRestoreCommand(dnf.cli.Command):
self.process_dump(dump_pkgs, self.opts)
- if not self.opts.output:
- self.base.resolve()
- self.base.do_transaction()
-
def process_installed(self, dump_pkgs, opts):
installed = self.base.sack.query().installed()
installonly_pkgs = self.base._get_installonly_query(installed)
--
2.25.4