X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fprocess_new.py;h=bb7ebc7d664d4e2ea6412eaea82410b0d313b140;hb=ce92830dafad9b8d40a0e9e161a68efea8beef8f;hp=7db60f87ff7f90ef266cd865395940556868b57e;hpb=b4f651785ba44a164c12fe27d4b85ff4a0c034ad;p=dak.git diff --git a/dak/process_new.py b/dak/process_new.py index 7db60f87..bb7ebc7d 100755 --- a/dak/process_new.py +++ b/dak/process_new.py @@ -60,7 +60,7 @@ from daklib.dbconn import * from daklib.queue import * from daklib import daklog from daklib import utils -from daklib.regexes import re_no_epoch, re_default_answer, re_isanum +from daklib.regexes import re_no_epoch, re_default_answer, re_isanum, re_package from daklib.dak_exceptions import CantOpenError, AlreadyLockedError, CantGetLockError from daklib.summarystats import SummaryStats from daklib.config import Config @@ -95,7 +95,6 @@ def recheck(upload, session): if answer == 'R': upload.do_reject(manual=0, reject_message='\n'.join(upload.rejects)) - os.unlink(upload.pkg.changes_file[:-8]+".dak") return 0 elif answer == 'S': return 0 @@ -682,7 +681,6 @@ def do_new(upload, session): note=get_new_comments(changes.get("source", ""), session=session)) if not aborted: Logger.log(["NEW REJECT: %s" % (upload.pkg.changes_file)]) - os.unlink(upload.pkg.changes_file[:-8]+".dak") done = 1 elif answer == 'N': edit_note(get_new_comments(changes.get("source", ""), session=session), @@ -771,7 +769,6 @@ def do_byhand(upload, session): elif answer == 'M': Logger.log(["BYHAND REJECT: %s" % (upload.pkg.changes_file)]) upload.do_reject(manual=1, reject_message=Options["Manual-Reject"]) - os.unlink(upload.pkg.changes_file[:-8]+".dak") done = 1 elif answer == 'S': done = 1 @@ -819,36 +816,30 @@ def lock_package(package): finally: os.unlink(path) -def move_file_to_queue(to_q, f, session): - """mark a file as being in the unchecked queue""" - # update the queue_file entry for the existing queue - qf = session.query(QueueFile).filter_by(queueid=to_q.queueid, - filename=f.filename) - qf.queue = to_q - - # update the changes_pending_files row - f.queue = to_q - -def changes_to_unchecked(changes, session): +def changes_to_unchecked(upload, session): """move a changes file to unchecked""" unchecked = get_policy_queue('unchecked', session ); - changes.in_queue = unchecked - for f in changes.pkg.files: - move_file_to_queue(unchecked, f) +# changes.in_queue = unchecked + + chg = session.query(DBChange).filter_by(changesname=os.path.basename(upload.pkg.changes_file)).one() + chg.approved_for = unchecked.policy_queue_id + + for f in upload.pkg.files: + # update the changes_pending_files row + f.queue = unchecked # actually move files - changes.move_to_queue(unchecked) + upload.move_to_queue(unchecked) -def _accept(upload): +def _accept(upload, session): if Options["No-Action"]: return (summary, short_summary) = upload.build_summaries() # upload.accept(summary, short_summary, targetqueue) -# os.unlink(upload.pkg.changes_file[:-8]+".dak") - changes_to_unchecked(upload) + changes_to_unchecked(upload, session) -def do_accept(upload): +def do_accept(upload, session): print "ACCEPT" cnf = Config() if not Options["No-Action"]: @@ -862,14 +853,16 @@ def do_accept(upload): upload.Subst["__SUMMARY__"] = summary else: # Just a normal upload, accept it... - _accept(upload) + _accept(upload, session) def do_pkg(changes_file, session): new_queue = get_policy_queue('new', session ); u = Upload() u.pkg.changes_file = changes_file + (u.pkg.changes["fingerprint"], rejects) = utils.check_signature(changes_file) u.load_changes(changes_file) u.pkg.directory = new_queue.path + u.update_subst() u.logger = Logger origchanges = os.path.abspath(u.pkg.changes_file) @@ -881,14 +874,27 @@ def do_pkg(changes_file, session): u.Subst["__BCC__"] = bcc files = u.pkg.files + for deb_filename, f in files.items(): + if deb_filename.endswith(".udeb") or deb_filename.endswith(".deb"): + u.binary_file_checks(deb_filename, session) + u.check_binary_against_db(deb_filename, session) + else: + u.source_file_checks(deb_filename, session) + u.check_source_against_db(deb_filename, session) + + u.pkg.changes["suite"] = copy.copy(u.pkg.changes["distribution"]) try: with lock_package(u.pkg.changes["source"]): if not recheck(u, session): return - do_new(u,session) - + # FIXME: This does need byhand checks added! + new = determine_new(u.pkg.changes, files) + if new: + do_new(u, session) + else: + do_accept(u, session) # (new, byhand) = check_status(files) # if new or byhand: # if new: