[PATCH 3/3] DNFPayload: error handling and logging cleanups.
Ales Kozumplik
akozumpl at redhat.com
Fri Oct 11 12:38:38 UTC 2013
From: Ales Kozumplik <ales at redhat.com>
---
pyanaconda/packaging/dnfpayload.py | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/pyanaconda/packaging/dnfpayload.py b/pyanaconda/packaging/dnfpayload.py
index a9900e6..fe84e7f 100644
--- a/pyanaconda/packaging/dnfpayload.py
+++ b/pyanaconda/packaging/dnfpayload.py
@@ -80,7 +80,7 @@ def do_transaction(base, queue):
except BaseException as e:
log.error('The transaction process has ended abruptly')
log.info(e)
- queue.put('quit', str(e))
+ queue.put(('quit', str(e)))
class DNFPayload(packaging.PackagePayload):
def __init__(self, data):
@@ -104,10 +104,12 @@ class DNFPayload(packaging.PackagePayload):
repo.sslverify = not (ksrepo.noverifyssl or flags.noverifyssl)
repo.enable()
self._base.repos.add(repo)
+ log.info("added repo: '%s'", ksrepo.name)
def _apply_selections(self):
self._select_group('core')
for pkg_name in self.data.packages.packageList:
+ log.info("selecting package: '%s'", pkg_name)
try:
self._install_package(pkg_name)
except packaging.NoSuchPackage as e:
@@ -263,10 +265,9 @@ class DNFPayload(packaging.PackagePayload):
self._base.reset(goal=True)
self._apply_selections()
- log.info("checking dependencies")
try:
if self._base.build_transaction():
- log.debug("success")
+ log.debug("checking dependencies: success.")
else:
log.debug("empty transaction")
except dnf.exceptions.DepsolveError as e:
@@ -346,15 +347,19 @@ class DNFPayload(packaging.PackagePayload):
queue = multiprocessing.Queue()
process = multiprocessing.Process(target=do_transaction,
- args=(self._base,queue))
+ args=(self._base, queue))
process.start()
(token, msg) = queue.get()
- while token != 'post':
+ while token not in ('post', 'quit'):
if token == 'install':
msg = _("Installing %s") % msg
progressQ.send_message(msg)
(token, msg) = queue.get()
+ if token == 'quit':
+ progressQ.send_quit(1)
+ sys.exit(1)
+
post_msg = _("Performing post-installation setup tasks")
progressQ.send_message(post_msg)
process.join()
--
1.8.3.1
More information about the anaconda-patches
mailing list