[Secure-testing-commits] r16585 - lib/python

Florian Weimer fw at alioth.debian.org
Sun Apr 24 17:04:44 UTC 2011


Author: fw
Date: 2011-04-24 17:04:37 +0000 (Sun, 24 Apr 2011)
New Revision: 16585

Modified:
   lib/python/debian_support.py
   lib/python/secmaster.py
Log:
debian_support.releasecodename(): new function

Use it in secmaster.listqueue().


Modified: lib/python/debian_support.py
===================================================================
--- lib/python/debian_support.py	2011-04-24 16:57:54 UTC (rev 16584)
+++ lib/python/debian_support.py	2011-04-24 17:04:37 UTC (rev 16585)
@@ -518,8 +518,25 @@
     if _config is not None:
         return _config
     _config = json.load(file(findresource("data", "config.json")))
-    return _config    
+    return _config
 
+_releasecodename = None
+def releasecodename(dist):
+    """Converts a release name to the code name.
+    For instance, "sid" and "unstable" are turned into "sid"."""
+    global _releasecodename
+    if _releasecodename is None:
+        result = {}
+        for (codename, obj) in getconfig()["distributions"].items():
+            result[codename] = codename
+            if "release" in obj:
+                result[obj["release"]] = codename
+        _releasecodename = result
+    try:
+        return _releasecodename[dist]
+    except:
+        raise ValueError("invalid release name: " + repr(dist))
+
 def test():
     # Version
     assert Version('0') < Version('a')

Modified: lib/python/secmaster.py
===================================================================
--- lib/python/secmaster.py	2011-04-24 16:57:54 UTC (rev 16584)
+++ lib/python/secmaster.py	2011-04-24 17:04:37 UTC (rev 16585)
@@ -43,27 +43,11 @@
     if data["version"] != 1:
         raise IOError("unexpected version number: " + repr(data["version"]))
 
-    distributions = debian_support.getconfig()["distributions"]
     distdict = {}
     def normdist(dist):
-        if dist in distdict:
-            return distdict[dist]
         if dist.endswith("-security"):
-            d = dist[:-9]
-        else:
-            d = dist
-        result = None
-        if d in distributions:
-            result = d
-        else:
-            for (codename, obj) in distributions.items():
-                if obj.get("release", None) == d:
-                    result = codename
-                    break
-        if result is None:
-            raise ValueError("unknown distribution: " + repr(dist))
-        distdict[dist] = result
-        return result
+            dist = dist[:-9]
+        return debian_support.releasecodename(dist)
         
     return [(debian_support.BinaryPackage(row[0:5]),
              set(normdist(dist) for dist in row[5]))




More information about the Secure-testing-commits mailing list