From 4c6211d2717aab314dbb588cf37a5d998a1a3d85 Mon Sep 17 00:00:00 2001 From: Ansgar Burchardt Date: Mon, 30 Jul 2012 15:43:21 +0200 Subject: [PATCH] indicate who rejected a package Signed-off-by: Ansgar Burchardt --- dak/process_policy.py | 9 +++++++++ daklib/policy.py | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/dak/process_policy.py b/dak/process_policy.py index 3945737f..695751c4 100755 --- a/dak/process_policy.py +++ b/dak/process_policy.py @@ -33,6 +33,7 @@ import os import datetime +import re import sys import traceback import apt_pkg @@ -232,6 +233,14 @@ def real_comment_reject(upload, srcqueue, comments, transaction, notify=True): subst = subst_for_upload(upload) subst['__MANUAL_REJECT_MESSAGE__'] = '' subst['__REJECT_MESSAGE__'] = comments + + # Try to use From: from comment file if there is one. + # This is not very elegant... + match = re.match(r"\AFrom: ([^\n]+)\n\n", comments) + if match: + subst['__REJECTOR_ADDRESS__'] = match.group(1) + subst['__REJECT_MESSAGE__'] = '\n'.join(comments.splitlines()[2:]) + message = utils.TemplateSubst(subst, os.path.join(cnf['Dir::Templates'], 'queue.rejected')) utils.send_mail(message) diff --git a/daklib/policy.py b/daklib/policy.py index 3a1cb32c..eef18a4f 100644 --- a/daklib/policy.py +++ b/daklib/policy.py @@ -20,6 +20,7 @@ from .config import Config from .dbconn import BinaryMetadata, Component, MetadataKey, Override, OverrideType, get_mapped_component from .fstransactions import FilesystemTransaction from .regexes import re_file_changes, re_file_safe +import daklib.utils as utils import errno import os @@ -180,6 +181,8 @@ class PolicyQueueUploadHandler(object): @type reason: str @param reason: reason for the rejection """ + cnf = Config() + fn1 = 'REJECT.{0}'.format(self._changes_prefix) assert re_file_safe.match(fn1) @@ -187,6 +190,7 @@ class PolicyQueueUploadHandler(object): try: fh = os.open(fn, os.O_CREAT | os.O_EXCL | os.O_WRONLY) os.write(fh, 'NOTOK\n') + os.write(fh, 'From: {0} <{1}>\n\n'.format(utils.whoami(), cnf['Dinstall::MyAdminAddress'])) os.write(fh, reason) os.close(fh) except OSError as e: -- 2.39.2