X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fchangesutils.py;h=3a4c6dd77a292582592a51072df8688d07fcf589;hb=c8dddd950800e46332cd82ed8ad8706a88597886;hp=0aca121a9f3ec24e03f74ea5a978b733785c2147;hpb=4c7eee9642e82b6286f807ad92a93e7ef30288e6;p=dak.git diff --git a/daklib/changesutils.py b/daklib/changesutils.py old mode 100644 new mode 100755 index 0aca121a..3a4c6dd7 --- a/daklib/changesutils.py +++ b/daklib/changesutils.py @@ -84,7 +84,7 @@ def sg_compare (a, b): __all__.append('sg_compare') -def sort_changes(changes_files, session): +def sort_changes(changes_files, session, binaries = None): """Sort into source groups, then sort each source group by version, have source, filename. Finally, sort the source groups by have note, time of oldest upload of each source upload.""" @@ -116,7 +116,7 @@ def sort_changes(changes_files, session): # Determine oldest time and have note status for each source group for source in per_source.keys(): q = session.query(DBSource).filter_by(source = source).all() - per_source[source]["source_in_database"] = len(q)>0 + per_source[source]["source_in_database"] = binaries and -(len(q)>0) or len(q)>0 source_list = per_source[source]["list"] first = source_list[0] oldest = os.stat(first["filename"])[stat.ST_MTIME] @@ -159,7 +159,9 @@ def changes_to_queue(upload, srcqueue, destqueue, session): 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(srcqueue.path, upload.pkg.changes_file), destqueue.path, perms=int(destqueue.perms, 8)) chg.in_queue = destqueue @@ -176,21 +178,14 @@ def new_accept(upload, dry_run, session): cnf = Config() (summary, short_summary) = upload.build_summaries() + destqueue = get_policy_queue('newstage', session) - # XXX: mhy: I think this is wrong as these are all attributes on the - # build and policy queues now - if cnf.FindB("Dinstall::SecurityQueueHandling"): - upload.dump_vars(cnf["Dir::Queue::Embargoed"]) - upload.move_to_queue(get_policy_queue('embargoed')) - upload.queue_build("embargoed", cnf["Dir::Queue::Embargoed"]) - # Check for override disparities - upload.Subst["__SUMMARY__"] = summary - else: - # Just a normal upload, accept it... - (summary, short_summary) = upload.build_summaries() + 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) - destqueue = get_policy_queue('newstage', session) - changes_to_queue(upload, srcqueue, destqueue, session) + changes_to_queue(upload, srcqueue, destqueue, session) __all__.append('new_accept')