]> git.decadent.org.uk Git - dak.git/blobdiff - dak/process_policy.py
Convert exception handling to Python3 syntax.
[dak.git] / dak / process_policy.py
index c23a3cdc24e7a186d46ef2a1d2e097ebd85d5995..3f237f626b506b5cb929c4fc4ede505530cc748f 100755 (executable)
@@ -54,7 +54,7 @@ def do_comments(dir, srcqueue, opref, npref, line, fn, session):
     for comm in [ x for x in os.listdir(dir) if x.startswith(opref) ]:
         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:]+"_")
+        changes_files = [ x for x in os.listdir(".") if x.startswith(comm[len(opref):]+"_")
                                 and x.endswith(".changes") ]
         changes_files = sort_changes(changes_files, session)
         for f in changes_files:
@@ -79,9 +79,10 @@ def comment_accept(changes_file, srcqueue, comments, session):
 
     if not Options["No-Action"]:
         destqueue = get_policy_queue('newstage', session)
-       if changes_to_queue(u, srcqueue, destqueue, session):
+        if changes_to_queue(u, srcqueue, destqueue, session):
+            print "  ACCEPT"
             Logger.log(["Policy Queue ACCEPT: %s:  %s" % (srcqueue.queue_name, u.pkg.changes_file)])
-       else:
+        else:
             print "E: Failed to migrate %s" % u.pkg.changes_file
 
 ################################################################################
@@ -94,10 +95,19 @@ def comment_reject(changes_file, srcqueue, comments, session):
 
     u.rejects.append(comments)
 
+    cnf = Config()
+    bcc = "X-DAK: dak process-policy"
+    if cnf.has_key("Dinstall::Bcc"):
+        u.Subst["__BCC__"] = bcc + "\nBcc: %s" % (cnf["Dinstall::Bcc"])
+    else:
+        u.Subst["__BCC__"] = bcc
+
     if not Options["No-Action"]:
         u.do_reject(manual=0, reject_message='\n'.join(u.rejects))
         u.pkg.remove_known_changes(session=session)
+        session.commit()
 
+        print "  REJECT"
         Logger.log(["Policy Queue REJECT: %s:  %s" % (srcqueue.queue_name, u.pkg.changes_file)])
 
 
@@ -131,8 +141,8 @@ def main():
 
     if not Options["No-Action"]:
         try:
-            Logger = daklog.Logger(cnf, "process-policy")
-        except CantOpenError, e:
+            Logger = daklog.Logger("process-policy")
+        except CantOpenError as e:
             Logger = None
 
     # Find policy queue
@@ -148,6 +158,7 @@ def main():
     # 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, "ACCEPTED.", "ACCEPTED.", "OK", comment_accept, session)
     do_comments(commentsdir, pq, "REJECT.", "REJECTED.", "NOTOK", comment_reject, session)