X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fprocess_new.py;h=777e0791afb72dec03b5d17f0ec4e5901bc4f60f;hb=ab0b5f4dac08ae1f8f9464c6a7977686605a44c3;hp=98ad2bd3c05e0aa217f63b50d421aa2d834c9e0b;hpb=cc095d57450c4828e855608c398cc7695283a277;p=dak.git diff --git a/dak/process_new.py b/dak/process_new.py index 98ad2bd3..777e0791 100755 --- a/dak/process_new.py +++ b/dak/process_new.py @@ -54,12 +54,14 @@ import contextlib import pwd import apt_pkg, apt_inst import examine_package + from daklib import database -from daklib import logging +from daklib import daklog from daklib import queue from daklib import utils from daklib.regexes import re_no_epoch, re_default_answer, re_isanum from daklib.dak_exceptions import CantOpenError, AlreadyLockedError, CantGetLockError +from daklib.summarystats import SummaryStats # Globals Cnf = None #: Configuration, apt_pkg.Configuration @@ -225,7 +227,7 @@ def sort_changes(changes_files): mtime = os.stat(d["filename"])[stat.ST_MTIME] if mtime < oldest: oldest = mtime - have_note += (database.has_new_comment(d["source"], d["version"])) + have_note += (database.has_new_comment(d["source"], d["version"], True)) per_source[source]["oldest"] = oldest if not have_note: per_source[source]["note_state"] = 0; # none @@ -496,7 +498,8 @@ def edit_note(note): elif answer == 'Q': end() sys.exit(0) - database.add_new_comment(Upload.pkg.changes["source"], Upload.pkg.changes["version"], newnote, utils.whoami()) + + database.add_new_comment(Upload.pkg.changes["source"], Upload.pkg.changes["version"], newnote, utils.whoami(), bool(Options["Trainee"])) ################################################################################ @@ -675,19 +678,12 @@ def do_new(): print "W: [!] marked entries must be fixed before package can be processed." if note: print "W: note must be removed before package can be processed." - prompt += "Remove note, " + prompt += "RemOve all notes, Remove note, " prompt += "Edit overrides, Check, Manual reject, Note edit, Prod, [S]kip, Quit ?" while prompt.find(answer) == -1: - try: - answer = utils.our_raw_input(prompt) - except IOError, e: - if e.errno == errno.EPIPE: - utils.warn("[process_new] Caught EPIPE; skipping.") - pass - else: - raise + answer = utils.our_raw_input(prompt) m = re_default_answer.search(prompt) if answer == "": answer = m.group(1) @@ -719,6 +715,10 @@ def do_new(): confirm = utils.our_raw_input("Really clear note (y/N)? ").lower() if confirm == "y": database.delete_new_comments(changes.get("source"), changes.get("version")) + elif answer == 'O' and not Options["Trainee"]: + confirm = utils.our_raw_input("Really clear all notes (y/N)? ").lower() + if confirm == "y": + database.delete_all_new_comments(changes.get("source")) elif answer == 'S': done = 1 elif answer == 'Q': @@ -771,9 +771,9 @@ def init(): if not Options["No-Action"]: try: - Logger = Upload.Logger = logging.Logger(Cnf, "process-new") + Logger = Upload.Logger = daklog.Logger(Cnf, "process-new") except CantOpenError, e: - Options["Trainee"] = "Oh yes" + Options["Trainee"] = "True" projectB = Upload.projectB @@ -939,6 +939,10 @@ def do_accept_stableupdate(suite, q): # pretty soon. print "Binary-only upload, source in new." move_to_holding(suite, queue_dir) + elif is_source_in_queue_dir(Cnf["Dir::Queue::Newstage"]): + # It's in newstage. Accept into the holding area + print "Binary-only upload, source in newstage." + _accept() else: # No case applicable. Bail out. Return will cause the upload # to be skipped. @@ -1019,8 +1023,8 @@ def do_pkg(changes_file): ################################################################################ def end(): - accept_count = Upload.accept_count - accept_bytes = Upload.accept_bytes + accept_count = SummaryStats().accept_count + accept_bytes = SummaryStats().accept_bytes if accept_count: sets = "set"