X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fprocess_policy.py;h=d1377b97097debe4c19be69f91eaa566d8527175;hb=e92bd768962e2d6145907ccc01962c36934975b7;hp=1dc42af99183d7c9281cc11b994b0732196ce1ba;hpb=1bd2bb874e25a236215fd4367fafb8eecdc79490;p=dak.git diff --git a/dak/process_policy.py b/dak/process_policy.py index 1dc42af9..d1377b97 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,15 @@ 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): + print " ACCEPT" + 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 +95,20 @@ def comment_reject(changes_file, srcqueue, comments, session): u.rejects.append(comments) - print "REJECT\n" + '\n'.join(u.rejects) + 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() - Logger.log(["Policy Queue Reject: %s: %s" % (srcqueue.queue_name, u.pkg.changes_file)]) + print " REJECT" + Logger.log(["Policy Queue REJECT: %s: %s" % (srcqueue.queue_name, u.pkg.changes_file)]) ################################################################################ @@ -138,7 +141,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 +150,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__':