X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fchangesutils.py;h=35b3d57be454634dac1fc45a29c2d3e380fc0903;hb=5d965c34b35048f8a8fab0a7a11f2943d833952d;hp=3f55fc14a2669028a624a4a0a35be0b2b184ebcb;hpb=ea8de5f8d3fe9c642f5de1c2f186485de844f7f8;p=dak.git diff --git a/daklib/changesutils.py b/daklib/changesutils.py index 3f55fc14..35b3d57b 100644 --- a/daklib/changesutils.py +++ b/daklib/changesutils.py @@ -149,24 +149,34 @@ def changes_to_queue(upload, srcqueue, destqueue, session): """Move a changes file to a different queue and mark as approved for the source queue""" - chg = session.query(DBChange).filter_by(changesname=os.path.basename(upload.pkg.changes_file)).one() - chg.approved_for = srcqueue.policy_queue_id + try: + chg = session.query(DBChange).filter_by(changesname=os.path.basename(upload.pkg.changes_file)).one() + except NoResultFound: + return False + + chg.approved_for_id = srcqueue.policy_queue_id for f in chg.files: # update the changes_pending_files row f.queue = destqueue - utils.move(os.path.join(srcqueue.path, f.filename), destqueue.path, perms=int(destqueue.perms, 8)) + # Only worry about unprocessed files + if not f.processed: + utils.move(os.path.join(srcqueue.path, f.filename), destqueue.path, perms=int(destqueue.perms, 8)) - utils.move(os.path.join(new.path, upload.pkg.changes_file), destqueue.path, perms=int(destqueue.perms, 8)) + utils.move(os.path.join(srcqueue.path, upload.pkg.changes_file), destqueue.path, perms=int(destqueue.perms, 8)) chg.in_queue = destqueue session.commit() + return True + __all__.append('changes_to_queue') -def new_accept(upload, session): +def new_accept(upload, dry_run, session): print "ACCEPT" - cnf = Config() - if not Options["No-Action"]: + + if not dry_run: + cnf = Config() + (summary, short_summary) = upload.build_summaries() # XXX: mhy: I think this is wrong as these are all attributes on the @@ -180,9 +190,14 @@ def new_accept(upload, session): else: # Just a normal upload, accept it... (summary, short_summary) = upload.build_summaries() - srcqueue = get_policy_queue('new', session) destqueue = get_policy_queue('newstage', session) + srcqueue = get_policy_queue_from_path(upload.pkg.directory, session) + + if not srcqueue: + # Assume NEW and hope for the best + srcqueue = get_policy_queue('new', session) + changes_to_queue(upload, srcqueue, destqueue, session) __all__.append('new_accept')