]> git.decadent.org.uk Git - dak.git/blobdiff - dak/process_new.py
do not create new db views just improve older ones
[dak.git] / dak / process_new.py
index 1c69fd9e3992507f90e1662d3117b4d540ac0d0d..060fa236964d539dbc2aa7ec5b49e7929f0b6513 100755 (executable)
@@ -95,6 +95,8 @@ def recheck(upload, session):
 
         if answer == 'R':
             upload.do_reject(manual=0, reject_message='\n'.join(upload.rejects))
+            upload.pkg.remove_known_changes(session=session)
+            session.commit()
             return 0
         elif answer == 'S':
             return 0
@@ -603,6 +605,9 @@ def do_new(upload, session):
     changes = upload.pkg.changes
     cnf = Config()
 
+    # Check for a valid distribution
+    upload.check_distributions()
+
     # Make a copy of distribution we can happily trample on
     changes["suite"] = copy.copy(changes["distribution"])
 
@@ -620,10 +625,6 @@ def do_new(upload, session):
                         oinv, suite, ninv, override)
             del changes["suite"][suite]
             changes["suite"][override] = 1
-    # Validate suites
-    for suite in changes["suite"].keys():
-        if get_suite(suite, session) is None:
-            utils.fubar("%s has invalid suite '%s' (possibly overriden).  say wha?" % (changes, suite))
 
     # The main NEW processing loop
     done = 0
@@ -666,6 +667,7 @@ def do_new(upload, session):
             try:
                 check_daily_lock()
                 done = add_overrides (new, upload, session)
+                do_accept(upload, session)
                 Logger.log(["NEW ACCEPT: %s" % (upload.pkg.changes_file)])
             except CantGetLockError:
                 print "Hello? Operator! Give me the number for 911!"
@@ -675,11 +677,12 @@ def do_new(upload, session):
         elif answer == 'E' and not Options["Trainee"]:
             new = edit_overrides (new, upload, session)
         elif answer == 'M' and not Options["Trainee"]:
-            upload.pkg.remove_known_changes()
             aborted = upload.do_reject(manual=1,
                                        reject_message=Options["Manual-Reject"],
-                                       note=get_new_comments(changes.get("source", ""), session=session))
+                                       notes=get_new_comments(changes.get("source", ""), session=session))
             if not aborted:
+                upload.pkg.remove_known_changes(session=session)
+                session.commit()
                 Logger.log(["NEW REJECT: %s" % (upload.pkg.changes_file)])
                 done = 1
         elif answer == 'N':
@@ -769,6 +772,8 @@ 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"])
+            upload.pkg.remove_known_changes(session=session)
+            session.commit()
             done = 1
         elif answer == 'S':
             done = 1
@@ -837,8 +842,6 @@ def changes_to_newstage(upload, session):
     new = get_policy_queue('new', session );
     newstage = get_policy_queue('newstage', session );
 
-    # changes.in_queue = newstage
-
     chg = session.query(DBChange).filter_by(changesname=os.path.basename(upload.pkg.changes_file)).one()
     chg.approved_for = newstage.policy_queue_id
 
@@ -849,6 +852,7 @@ def changes_to_newstage(upload, session):
 
     utils.move(os.path.join(new.path, upload.pkg.changes_file), newstage.path, perms=int(newstage.perms, 8))
     chg.in_queue = newstage
+    session.commit()
 
 def _accept(upload, session):
     if Options["No-Action"]:
@@ -909,12 +913,17 @@ def do_pkg(changes_file, session):
                 if not recheck(u, session):
                     return
 
-            # 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)
+                # FIXME: This does need byhand checks added!
+                new = determine_new(u.pkg.changes, files)
+                if new:
+                    do_new(u, session)
+                else:
+                    try:
+                        check_daily_lock()
+                        do_accept(u, session)
+                    except CantGetLockError:
+                        print "Hello? Operator! Give me the number for 911!"
+                        print "Dinstall in the locked area, cant process packages, come back later"
 #             (new, byhand) = check_status(files)
 #             if new or byhand:
 #                 if new: