40 lines
1.4 KiB
Diff
40 lines
1.4 KiB
Diff
|
From 46aeabda1980621ca0f87528e0a81b4f59d886f0 Mon Sep 17 00:00:00 2001
|
||
|
From: Jan Kolarik <jkolarik@redhat.com>
|
||
|
Date: Thu, 20 Apr 2023 10:10:14 +0000
|
||
|
Subject: [PATCH] automatic: Return an error when transaction fails
|
||
|
(RhBug:2170093)
|
||
|
|
||
|
In case of no global error occurred within the transaction, we still need to check state of individual transaction items for any failure.
|
||
|
|
||
|
This is matching the logic in `BaseCli.do_transaction` method, where the error is emitted after printing the transaction summary.
|
||
|
|
||
|
= changelog =
|
||
|
msg: automatic: Return an error when transaction fails
|
||
|
type: bugfix
|
||
|
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2170093
|
||
|
---
|
||
|
dnf/automatic/main.py | 7 +++++++
|
||
|
1 file changed, 7 insertions(+)
|
||
|
|
||
|
diff --git a/dnf/automatic/main.py b/dnf/automatic/main.py
|
||
|
index 93ce13cc..ccd9ab64 100644
|
||
|
--- a/dnf/automatic/main.py
|
||
|
+++ b/dnf/automatic/main.py
|
||
|
@@ -346,6 +346,13 @@ def main(args):
|
||
|
|
||
|
gpgsigcheck(base, trans.install_set)
|
||
|
base.do_transaction()
|
||
|
+
|
||
|
+ # In case of no global error occurred within the transaction,
|
||
|
+ # we need to check state of individual transaction items.
|
||
|
+ for tsi in trans:
|
||
|
+ if tsi.state == libdnf.transaction.TransactionItemState_ERROR:
|
||
|
+ raise dnf.exceptions.Error(_('Transaction failed'))
|
||
|
+
|
||
|
emitters.notify_applied()
|
||
|
emitters.commit()
|
||
|
except dnf.exceptions.Error as exc:
|
||
|
--
|
||
|
2.40.1
|
||
|
|