]> err.no Git - dak/commitdiff
* dak/process_unchecked.py: Import syck module directly, not "from
authorJoerg Jaspert <joerg@debian.org>
Tue, 11 Mar 2008 21:35:45 +0000 (22:35 +0100)
committerJoerg Jaspert <joerg@debian.org>
Tue, 11 Mar 2008 21:35:45 +0000 (22:35 +0100)
  syck import *"
  (check_transition): Do the check for sourceful upload in here
  Also adjust the syck loading commands, rename new_vers to
  expected, curvers to current, to make it more clear what they mean.
* daklib/database.py (get_suite_version): Renamed from
  get_testing_version. Also changed the cache variables name
* The above changes are based on modifications from Anthony.

ChangeLog
dak/process_unchecked.py
daklib/database.py

index 26beb097c34af91732a0cdf1f17b8de709d2368e..0767b5c79e5b851ec8cc92f8fa810fe49680cdf9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2008-03-11  Joerg Jaspert  <joerg@debian.org>
+
+       * dak/process_unchecked.py: Import syck module directly, not "from
+       syck import *"
+       (check_transition): Do the check for sourceful upload in here
+       Also adjust the syck loading commands, rename new_vers to
+       expected, curvers to current, to make it more clear what they mean.
+
+       * daklib/database.py (get_suite_version): Renamed from
+       get_testing_version. Also changed the cache variables name
+
+       * The above changes are based on modifications from Anthony.
+
 2008-03-02  Joerg Jaspert  <joerg@debian.org>
 
        * debian/control (Suggests): Add python-syck to Depends:
index fc5ca0048a01aa652956fa4995b4f8a3ddaa96b8..1e71ae00619deb83610fda4149a3683abf9a78d6 100755 (executable)
 
 import commands, errno, fcntl, os, re, shutil, stat, sys, time, tempfile, traceback
 import apt_inst, apt_pkg
+import syck
 import daklib.database
 import daklib.logging
 import daklib.queue 
 import daklib.utils
 
 from types import *
-from syck import *
 
 
 ################################################################################
@@ -1005,8 +1005,11 @@ def check_timestamps():
 
 # We reject packages if the release team defined a transition for them
 def check_transition(sourcepkg):
+    # No sourceful upload -> no need to do anything else, direct return
+    if changes["architecture"].has_key("source"):
+        return
 
-    # Only check if there is a file defined (and existant) with checks. It's a little bit
+    # Also only check if there is a file defined (and existant) with checks. It's a little bit
     # specific to Debian, not much use for others, so return early there.
     if not Cnf.has_key("Dinstall::Reject::ReleaseTransitions") or not os.path.exists("%s" % (Cnf["Dinstall::Reject::ReleaseTransitions"])):
         return
@@ -1015,10 +1018,10 @@ def check_transition(sourcepkg):
     sourcefile = file(Cnf["Dinstall::Reject::ReleaseTransitions"], 'r')
     sourcecontent = sourcefile.read()
     try:
-        transitions = load(sourcecontent)
+        transitions = syck.load(sourcecontent)
     except error, msg:
-        # This shouldn't happen, the release team has a wrapper to check the file, but better
-        # safe then sorry
+        # This shouldn't happen, there is a wrapper to edit the file which checks it, but we prefer
+        # to be safe than ending up rejecting everything.
         daklib.utils.warn("Not checking transitions, the transitions file is broken: %s." % (msg))
         return
 
@@ -1026,14 +1029,14 @@ def check_transition(sourcepkg):
     for trans in transitions:
         t = transitions[trans]
         source = t["source"]
-        new_vers = t["new"]
+        expected = t["new"]
 
         # Will be None if nothing is in testing.
-        curvers = daklib.database.get_testing_version(source)
-        if not curvers == None:
-            compare = apt_pkg.VersionCompare(curvers, new_vers)
+        current = daklib.database.get_suite_version(source, "testing")
+        if not current == None:
+            compare = apt_pkg.VersionCompare(current, expected)
 
-        if curvers == None or compare < 0:
+        if current == None or compare < 0:
             # This is still valid, the current version in testing is older than
             # the new version we wait for, or there is none in testing yet
 
@@ -1051,7 +1054,7 @@ This transition is managed by the Release Team, and %s
 is the Release-Team member responsible for it.
 Please contact %s or debian-release@lists.debian.org if you
 need further assistance.
-                """ % (sourcepkg, trans, source, curvers, new_vers, t["reason"], t["rm"], t["rm"]))
+                """ % (sourcepkg, trans, source, current, expected, t["reason"], t["rm"], t["rm"]))
                 return 0
 
 ################################################################################
@@ -1578,8 +1581,7 @@ def process_it (changes_file):
                 check_urgency()
                 check_timestamps()
                 check_signed_by_key()
-                if changes["architecture"].has_key("source"):
-                    check_transition(changes["source"])
+                check_transition(changes["source"])
         Upload.update_subst(reject_message)
         action()
     except SystemExit:
index d9fdc850c745ac234004fc94c6b643e3cbddc661..5c3626046446b9ccb5746b8edf0f6a9aae721f00 100755 (executable)
@@ -41,7 +41,7 @@ maintainer_cache = {}
 fingerprint_id_cache = {}
 queue_id_cache = {}
 uid_id_cache = {}
-testing_version_cache = {}
+suite_version_cache = {}
 
 ################################################################################
 
@@ -224,25 +224,26 @@ def get_source_id (source, version):
 
     return source_id
 
-def get_testing_version(source):
-    global testing_version_cache
+def get_suite_version(source, suite):
+    global suite_version_cache
+    cache_key = "%s_%s" % (source, suite)
 
-    if testing_version_cache.has_key(source):
-        return testing_version_cache[source]
+    if suite_version_cache.has_key(cache_key):
+        return suite_version_cache[cache_key]
 
     q = projectB.query("""
     SELECT s.version FROM source s, suite su, src_associations sa
     WHERE sa.source=s.id
       AND sa.suite=su.id
-      AND su.suite_name='testing'
+      AND su.suite_name='%s'
       AND s.source='%s'"""
-                              % (source))
+                              % (suite, source))
 
     if not q.getresult():
         return None
 
     version = q.getresult()[0][0]
-    testing_version_cache[source] = version
+    suite_version_cache[cache_key] = version
 
     return version