X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fprocess_policy.py;h=e401a3bd630956f1c1397adc8b6d0fbda2297fb5;hb=2bf549a8b6e6bb374d52ae0ea9bf329b91ab41a8;hp=c23a3cdc24e7a186d46ef2a1d2e097ebd85d5995;hpb=3f2b87f4f4cae93e27c6e1b9fc5ff9dc3577e9d8;p=dak.git diff --git a/dak/process_policy.py b/dak/process_policy.py index c23a3cdc..e401a3bd 100755 --- a/dak/process_policy.py +++ b/dak/process_policy.py @@ -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)]) @@ -116,7 +126,7 @@ def main(): if not cnf.has_key("Process-Policy::Options::%s" % (i)): cnf["Process-Policy::Options::%s" % (i)] = "" - queue_name = apt_pkg.ParseCommandLine(cnf.Cnf,Arguments,sys.argv) + queue_name = apt_pkg.parse_commandline(cnf.Cnf,Arguments,sys.argv) if len(queue_name) != 1: print "E: Specify exactly one policy queue" @@ -124,15 +134,15 @@ def main(): queue_name = queue_name[0] - Options = cnf.SubTree("Process-Policy::Options") + Options = cnf.subtree("Process-Policy::Options") if Options["Help"]: usage() 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)