]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/changesutils.py
missing the chg parameter
[dak.git] / daklib / changesutils.py
index 0aca121a9f3ec24e03f74ea5a978b733785c2147..b268add58810c7e7242d09ca72c04eb769ef753a 100644 (file)
@@ -84,7 +84,7 @@ def sg_compare (a, b):
 
 __all__.append('sg_compare')
 
 
 __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."""
     """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()
     # 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]
         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
     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
 
     utils.move(os.path.join(srcqueue.path, upload.pkg.changes_file), destqueue.path, perms=int(destqueue.perms, 8))
     chg.in_queue = destqueue
@@ -188,9 +190,14 @@ def new_accept(upload, dry_run, session):
         else:
             # Just a normal upload, accept it...
             (summary, short_summary) = upload.build_summaries()
         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)
 
             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')
             changes_to_queue(upload, srcqueue, destqueue, session)
 
 __all__.append('new_accept')