]> git.decadent.org.uk Git - dak.git/commitdiff
dak/process_policy.py: process sourceful uploads first
authorAnsgar Burchardt <ansgar@debian.org>
Sun, 20 Oct 2013 12:09:18 +0000 (14:09 +0200)
committerAnsgar Burchardt <ansgar@debian.org>
Sun, 20 Oct 2013 12:09:18 +0000 (14:09 +0200)
Bug: http://bugs.debian.org/703876

dak/process_policy.py

index ddd05b7c65166f18b4011dafe47a5f82053ec7ac..7dd55a8300d3020b21bffa25597b76ad5a85604d 100755 (executable)
@@ -56,6 +56,7 @@ Logger = None
 
 def do_comments(dir, srcqueue, opref, npref, line, fn, transaction):
     session = transaction.session
+    actions = []
     for comm in [ x for x in os.listdir(dir) if x.startswith(opref) ]:
         lines = open(os.path.join(dir, comm)).readlines()
         if len(lines) == 0 or lines[0] != line + "\n": continue
@@ -75,15 +76,20 @@ def do_comments(dir, srcqueue, opref, npref, line, fn, transaction):
         uploads = session.query(PolicyQueueUpload).filter_by(policy_queue=srcqueue) \
             .join(PolicyQueueUpload.changes).filter(DBChange.changesname.startswith(changes_prefix)) \
             .order_by(PolicyQueueUpload.source_id)
-        for u in uploads:
-            print "Processing changes file: %s" % u.changes.changesname
-            fn(u, srcqueue, "".join(lines[1:]), transaction)
+        reason = "".join(lines[1:])
+        actions.extend((u, reason) for u in uploads)
 
         if opref != npref:
             newcomm = npref + comm[len(opref):]
             newcomm = utils.find_next_free(os.path.join(dir, newcomm))
             transaction.fs.move(os.path.join(dir, comm), newcomm)
 
+    actions.sort()
+
+    for u, reason in actions:
+        print("Processing changes file: {0}".format(u.changes.changesname))
+        fn(u, srcqueue, reason, transaction)
+
 ################################################################################
 
 def try_or_reject(function):