From: Ansgar Burchardt Date: Mon, 13 Aug 2012 10:07:03 +0000 (+0200) Subject: dak/process_upload.py: improve error message for ArchiveExceptions and Rejects X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=da3cd3ce78e9026d2356fa23955c44642afc2af4;p=dak.git dak/process_upload.py: improve error message for ArchiveExceptions and Rejects --- diff --git a/dak/process_upload.py b/dak/process_upload.py index f0705667..1dbde576 100755 --- a/dak/process_upload.py +++ b/dak/process_upload.py @@ -180,6 +180,7 @@ from daklib.textutils import fix_maintainer from daklib.regexes import * import daklib.archive +import daklib.checks import daklib.upload ############################################################################### @@ -206,17 +207,24 @@ def try_or_reject(function): """Try to call function or reject the upload if that fails """ def wrapper(directory, upload, *args, **kwargs): + reason = 'No exception caught. This should not happen.' + try: return function(directory, upload, *args, **kwargs) + except (daklib.archive.ArchiveException, daklib.checks.Reject) as e: + reason = e except Exception as e: - try: - reason = "There was an uncaught exception when processing your upload:\n{0}\nAny original reject reason follows below.".format(traceback.format_exc()) - upload.rollback() - return real_reject(directory, upload, reason=reason) - except Exception as e: - reason = "In addition there was an exception when rejecting the package:\n{0}\nPrevious reasons:\n{1}".format(traceback.format_exc(), reason) - upload.rollback() - return real_reject(directory, upload, reason=reason, notify=False) + reason = "There was an uncaught exception when processing your upload:\n{0}\nAny original reject reason follows below.".format(traceback.format_exc()) + + try: + upload.rollback() + return real_reject(directory, upload, reason=reason) + except Exception as e: + reason = "In addition there was an exception when rejecting the package:\n{0}\nPrevious reasons:\n{1}".format(traceback.format_exc(), reason) + upload.rollback() + return real_reject(directory, upload, reason=reason, notify=False) + + raise Exception('Rejecting upload failed after multiple tries. Giving up. Last reason:\n{0}'.format(reason)) return wrapper