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

Florian Weimer fw at costa.debian.org
Thu Sep 22 10:52:10 UTC 2005


Author: fw
Date: 2005-09-22 10:52:10 +0000 (Thu, 22 Sep 2005)
New Revision: 2084

Modified:
   lib/python/security_db.py
Log:
lib/python/security_db.py (DB.__init__):
  Create user-defined functions at an earlier point, before the schema.
(DB.initSchema):
  Add testing_status view.


Modified: lib/python/security_db.py
===================================================================
--- lib/python/security_db.py	2005-09-22 10:30:14 UTC (rev 2083)
+++ lib/python/security_db.py	2005-09-22 10:52:10 UTC (rev 2084)
@@ -94,6 +94,7 @@
         self.verbose = verbose
 
         self.schema_version = 11
+        self._initFunctions()
 
         c = self.cursor()
         for (v,) in c.execute("PRAGMA user_version"):
@@ -104,8 +105,6 @@
                     print "DB: schema version mismatch: expected %d, got %d" \
                           % (self.schema_version, v)
                 raise SchemaMismatch, `v`
-
-            self._initFunctions()
             return
         assert False
 
@@ -261,7 +260,31 @@
         cursor.execute(
             """CREATE INDEX binary_package_status_package
             ON binary_package_status(package)""")
-        
+
+        cursor.execute(
+            """CREATE VIEW testing_status AS
+            SELECT DISTINCT sp.name AS package, st.bug_name AS bug,
+            sp.archive AS section, st.urgency AS urgency,
+            (SELECT vulnerable
+            FROM source_packages AS sidp, source_package_status AS sidst
+            WHERE sidp.name = sp.name
+            AND sidp.release = 'sid' AND sidp.subrelease = ''
+            AND sidp.archive = sp.archive
+            AND sidst.bug_name = st.bug_name
+            AND sidst.package = sidp.rowid) AS unstable_vulnerable,
+            COALESCE((SELECT NOT vulnerable
+            FROM source_packages AS tsecp, source_package_status AS tsecst
+            WHERE tsecp.name = sp.name
+            AND tsecp.release = 'etch' AND tsecp.subrelease = 'security'
+            AND tsecp.archive = sp.archive
+            AND tsecst.bug_name = st.bug_name
+            AND tsecst.package = tsecp.rowid), 0) AS testing_security_fixed
+            FROM source_package_status AS st, source_packages AS sp
+            WHERE st.vulnerable AND st.urgency <> 'unimportant'
+            AND sp.rowid = st.package AND sp.release = 'etch'
+            AND sp.subrelease = ''
+            ORDER BY sp.name, urgency_to_number(st.urgency), st.bug_name""")
+
         cursor.execute("PRAGMA user_version = %d" % self.schema_version)
 
     def _initFunctions(self):




More information about the Secure-testing-commits mailing list