[dak/master 07/11] Make policy queues work and remove print debugging
Signed-off-by: Mark Hymers <mhy@debian.org>
---
dak/process_policy.py | 33 ++++++++++++++-------------------
dak/process_upload.py | 2 +-
daklib/changesutils.py | 10 ++++++++--
3 files changed, 23 insertions(+), 22 deletions(-)
diff --git a/dak/process_policy.py b/dak/process_policy.py
index 1dc42af..c23a3cd 100755
--- a/dak/process_policy.py
+++ b/dak/process_policy.py
@@ -52,20 +52,17 @@ Logger = None
def do_comments(dir, srcqueue, opref, npref, line, fn, session):
for comm in [ x for x in os.listdir(dir) if x.startswith(opref) ]:
- print comm
lines = open("%s/%s" % (dir, comm)).readlines()
if len(lines) == 0 or lines[0] != line + "\n": continue
changes_files = [ x for x in os.listdir(".") if x.startswith(comm[7:]+"_")
and x.endswith(".changes") ]
- print changes_files
changes_files = sort_changes(changes_files, session)
for f in changes_files:
- print " Changes file: %s" % f
+ print "Processing changes file: %s" % f
f = utils.validate_changes_file_arg(f, 0)
if not f:
print "Couldn't validate changes file %s" % f
continue
- print "\n" + f
fn(f, srcqueue, "".join(lines[1:]), session)
if opref != npref and not Options["No-Action"]:
@@ -75,8 +72,6 @@ def do_comments(dir, srcqueue, opref, npref, line, fn, session):
################################################################################
def comment_accept(changes_file, srcqueue, comments, session):
- print "*** Accept for %s (%s)" % (changes_file, comments)
-
u = Upload()
u.pkg.changes_file = changes_file
u.load_changes(changes_file)
@@ -84,15 +79,14 @@ def comment_accept(changes_file, srcqueue, comments, session):
if not Options["No-Action"]:
destqueue = get_policy_queue('newstage', session)
- changes_to_queue(u, srcqueue, destqueue, session)
-
- Logger.log(["Policy Queue Accept: %s: %s" % (srcqueue.queue_name, u.pkg.changes_file)])
+ if changes_to_queue(u, srcqueue, destqueue, session):
+ Logger.log(["Policy Queue ACCEPT: %s: %s" % (srcqueue.queue_name, u.pkg.changes_file)])
+ else:
+ print "E: Failed to migrate %s" % u.pkg.changes_file
################################################################################
def comment_reject(changes_file, srcqueue, comments, session):
- print "Reject for %s (%s)" % (changes_file, comments)
-
u = Upload()
u.pkg.changes_file = changes_file
u.load_changes(changes_file)
@@ -100,12 +94,11 @@ def comment_reject(changes_file, srcqueue, comments, session):
u.rejects.append(comments)
- print "REJECT\n" + '\n'.join(u.rejects)
if not Options["No-Action"]:
u.do_reject(manual=0, reject_message='\n'.join(u.rejects))
u.pkg.remove_known_changes(session=session)
- Logger.log(["Policy Queue Reject: %s: %s" % (srcqueue.queue_name, u.pkg.changes_file)])
+ Logger.log(["Policy Queue REJECT: %s: %s" % (srcqueue.queue_name, u.pkg.changes_file)])
################################################################################
@@ -138,7 +131,7 @@ def main():
if not Options["No-Action"]:
try:
- Logger = daklog.Logger(cnf, "process-new")
+ Logger = daklog.Logger(cnf, "process-policy")
except CantOpenError, e:
Logger = None
@@ -147,15 +140,17 @@ def main():
try:
pq = session.query(PolicyQueue).filter_by(queue_name=queue_name).one()
- commentsdir = os.path.join(pq.path, 'COMMENTS')
- # The comments stuff relies on being in the right directory
- os.chdir(pq.path)
- do_comments(commentsdir, pq, "ACCEPT.", "ACCEPTED.", "OK", comment_accept, session)
- do_comments(commentsdir, pq, "REJECT.", "REJECTED.", "NOTOK", comment_reject, session)
except NoResultFound:
print "E: Cannot find policy queue %s" % queue_name
sys.exit(1)
+ commentsdir = os.path.join(pq.path, 'COMMENTS')
+ # The comments stuff relies on being in the right directory
+ os.chdir(pq.path)
+ do_comments(commentsdir, pq, "ACCEPT.", "ACCEPTED.", "OK", comment_accept, session)
+ do_comments(commentsdir, pq, "REJECT.", "REJECTED.", "NOTOK", comment_reject, session)
+
+
################################################################################
if __name__ == '__main__':
diff --git a/dak/process_upload.py b/dak/process_upload.py
index f408e17..4d1cbc2 100755
--- a/dak/process_upload.py
+++ b/dak/process_upload.py
@@ -258,7 +258,7 @@ def action(u, session):
for s in u.pkg.changes["distribution"].keys():
suite = get_suite(s, session)
if suite.policy_queue:
- if not chg or chg.approved_for_id != su.policy_queue.policy_queue_id:
+ if not chg or chg.approved_for_id != suite.policy_queue.policy_queue_id:
# This routine will check whether the upload is a binary
# upload when the source is already in the target suite. If
# so, we skip the policy queue, otherwise we go there.
diff --git a/daklib/changesutils.py b/daklib/changesutils.py
index 6099b48..0aca121 100644
--- a/daklib/changesutils.py
+++ b/daklib/changesutils.py
@@ -149,8 +149,12 @@ def changes_to_queue(upload, srcqueue, destqueue, session):
"""Move a changes file to a different queue and mark as approved for the
source queue"""
- chg = session.query(DBChange).filter_by(changesname=os.path.basename(upload.pkg.changes_file)).one()
- chg.approved_for = srcqueue.policy_queue_id
+ try:
+ chg = session.query(DBChange).filter_by(changesname=os.path.basename(upload.pkg.changes_file)).one()
+ except NoResultFound:
+ return False
+
+ chg.approved_for_id = srcqueue.policy_queue_id
for f in chg.files:
# update the changes_pending_files row
@@ -161,6 +165,8 @@ def changes_to_queue(upload, srcqueue, destqueue, session):
chg.in_queue = destqueue
session.commit()
+ return True
+
__all__.append('changes_to_queue')
def new_accept(upload, dry_run, session):
--
1.6.3.3
Reply to: