3cd12006bb
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
38 lines
1.2 KiB
Diff
38 lines
1.2 KiB
Diff
---
|
|
smart/backends/rpm/pm.py | 10 ++++++++++
|
|
1 file changed, 10 insertions(+)
|
|
|
|
--- a/smart/backends/rpm/pm.py
|
|
+++ b/smart/backends/rpm/pm.py
|
|
@@ -283,6 +283,8 @@ class RPMPackageManager(PackageManager):
|
|
prog.setDone()
|
|
if probs and (not retry):
|
|
raise Error, "\n".join([x[0] for x in probs])
|
|
+ if cb.errors > 0:
|
|
+ raise Error, "One or more errors occurred during transaction"
|
|
prog.stop()
|
|
if retry and len(changeset):
|
|
self.commit(changeset, pkgpaths)
|
|
@@ -297,6 +299,7 @@ class RPMCallback:
|
|
self.rpmoutbuffer = ""
|
|
self.lasttopic = None
|
|
self.topic = None
|
|
+ self.errors = 0
|
|
|
|
def grabOutput(self, flag):
|
|
if flag:
|
|
@@ -415,6 +418,13 @@ class RPMCallback:
|
|
self.prog.setSubDone(subkey)
|
|
self.prog.show()
|
|
|
|
+ elif what == rpm.RPMCALLBACK_SCRIPT_ERROR:
|
|
+ self.errors += 1
|
|
+ elif what == rpm.RPMCALLBACK_UNPACK_ERROR:
|
|
+ self.errors += 1
|
|
+ elif what == rpm.RPMCALLBACK_CPIO_ERROR:
|
|
+ self.errors += 1
|
|
+
|
|
from smart.backends.rpm.base import rpm, getTS
|
|
|
|
# vim:ts=4:sw=4:et
|