]> git.decadent.org.uk Git - dak.git/blobdiff - dak/process_new.py
Merge branch 'process-new' into merge
[dak.git] / dak / process_new.py
index 8a19a6ebd3f14dc5f0967a651bdc5f8999460f56..e76fc0c74b9fa52e385d8fd7ec2e075746991194 100755 (executable)
@@ -77,7 +77,7 @@ Sections = None
 ################################################################################
 
 def recheck(upload, session):
-    upload.recheck()
+# STU: I'm not sure, but I don't thin kthis is necessary any longer:    upload.recheck(session)
     if len(upload.rejects) > 0:
         answer = "XXX"
         if Options["No-Action"] or Options["Automatic"] or Options["Trainee"]:
@@ -158,7 +158,8 @@ def sort_changes(changes_files, session):
     for filename in changes_files:
         u = Upload()
         try:
-            u.pkg.load_dot_dak(filename)
+            u.pkg.changes_file = filename
+            u.load_changes(filename)
             u.update_subst()
             cache[filename] = copy.copy(u.pkg.changes)
             cache[filename]["filename"] = filename
@@ -598,6 +599,7 @@ def prod_maintainer (note, upload):
 def do_new(upload, session):
     print "NEW\n"
     files = upload.pkg.files
+    upload.check_files(not Options["No-Action"])
     changes = upload.pkg.changes
     cnf = Config()
 
@@ -814,11 +816,34 @@ 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):
+    """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)
+
+    # actually move files
+    changes.move_to_queue(unchecked)
+
 def _accept(upload):
     if Options["No-Action"]:
         return
     (summary, short_summary) = upload.build_summaries()
-    upload.accept(summary, short_summary, targetqueue)
+#    upload.accept(summary, short_summary, targetqueue)
+#    os.unlink(upload.pkg.changes_file[:-8]+".dak")
+    changes_to_unchecked(upload)
 
 def do_accept(upload):
     print "ACCEPT"
@@ -837,9 +862,13 @@ def do_accept(upload):
             _accept(upload)
 
 def do_pkg(changes_file, session):
+    new_queue = get_policy_queue('new', session );
     u = Upload()
     u.pkg.changes_file = changes_file
     u.load_changes(changes_file)
+    u.pkg.directory = new_queue.path
+    u.logger = Logger
+    origchanges = os.path.abspath(u.pkg.changes_file)
 
     cnf = Config()
     bcc = "X-DAK: dak process-new"
@@ -855,21 +884,23 @@ def do_pkg(changes_file, session):
             if not recheck(u, session):
                 return
 
-            (new, byhand) = check_status(files)
-            if new or byhand:
-                if new:
-                    do_new(u, session)
-                if byhand:
-                    do_byhand(u, session)
-                (new, byhand) = check_status(files)
-
-            if not new and not byhand:
-                try:
-                    check_daily_lock()
-                    do_accept(u)
-                except CantGetLockError:
-                    print "Hello? Operator! Give me the number for 911!"
-                    print "Dinstall in the locked area, can't process packages, come back later"
+            do_new(u,session)
+
+#             (new, byhand) = check_status(files)
+#             if new or byhand:
+#                 if new:
+#                     do_new(u, session)
+#                 if byhand:
+#                     do_byhand(u, session)
+#                 (new, byhand) = check_status(files)
+
+#             if not new and not byhand:
+#                 try:
+#                     check_daily_lock()
+#                     do_accept(u)
+#                 except CantGetLockError:
+#                     print "Hello? Operator! Give me the number for 911!"
+#                     print "Dinstall in the locked area, cant process packages, come back later"
     except AlreadyLockedError, e:
         print "Seems to be locked by %s already, skipping..." % (e)
 
@@ -909,7 +940,8 @@ def main():
 
     changes_files = apt_pkg.ParseCommandLine(cnf.Cnf,Arguments,sys.argv)
     if len(changes_files) == 0:
-        changes_files = utils.get_changes_files(cnf["Dir::Queue::New"])
+        new_queue = get_policy_queue('new', session );
+        changes_files = utils.get_changes_files(new_queue.path)
 
     Options = cnf.SubTree("Process-New::Options")