[Collab-qa-commits] r887 - udd/src

neronus-guest at alioth.debian.org neronus-guest at alioth.debian.org
Fri Jun 6 13:52:26 UTC 2008


Author: neronus-guest
Date: 2008-06-06 13:52:26 +0000 (Fri, 06 Jun 2008)
New Revision: 887

Modified:
   udd/src/packages_gatherer.py
   udd/src/setup-db.sql
   udd/src/sources_gatherer.py
   udd/src/srcs_and_pkgs.py
   udd/src/test.yaml
Log:
* Added unique constraints
* Added etch to test.yaml
* Moved source finding from sources_Gatherer to packages_gatherer


Modified: udd/src/packages_gatherer.py
===================================================================
--- udd/src/packages_gatherer.py	2008-06-06 11:51:51 UTC (rev 886)
+++ udd/src/packages_gatherer.py	2008-06-06 13:52:26 UTC (rev 887)
@@ -1,5 +1,5 @@
 #/usr/bin/env python
-# Last-Modified: <Fri Jun  6 09:23:59 2008>
+# Last-Modified: <Fri Jun  6 13:38:47 2008>
 
 import debian_bundle.deb822
 import gzip
@@ -21,6 +21,9 @@
 # The ID for the distribution we want to include
 distr_id = None
 
+# A mapping from source names to source ids
+srcs = {}
+
 def import_packages(conn, sequence):
   """Import the packages from the sequence into the database-connection conn.
 
@@ -29,7 +32,7 @@
   packages file."""
   global imported_all_pkgs
   # The fields that are to be read. Other fields are ignored
-  fields = ('Architecture', 'Package', 'Version')
+  fields = ('Architecture', 'Package', 'Version', 'Source')
   cur = conn.cursor()
   for control in debian_bundle.deb822.Packages.iter_paragraphs(sequence, fields):
     # Check whether packages with architectue 'all' have already been
@@ -40,9 +43,16 @@
 	continue
       imported_all_pkgs[t] = 1
 
-    #query = "INSERT INTO pkgs (name, distr_id, arch_id, version, src_id)\
-    #VALUES ('%s', %d, %d, '%s', 0);" % (control["Package"], distr_id, archs[control["Architecture"]], control["Version"])
-    query = "EXECUTE pkg_insert('%s', %d, %d, '%s')" % (control["Package"], distr_id, archs[control["Architecture"]], control["Version"])
+    if 'Source' not in control:
+      control['Source'] = control['Package']
+    else:
+      control['Source'] = control['Source'].split()[0]
+
+    if control['Source'] not in srcs:
+      print "Warning: Source " + control['Source'] + " for package " + control['Package'] + " not found!"
+      query = "EXECUTE pkg_insert('%s', %d, %d, '%s', NULL)" % (control["Package"], distr_id, archs[control["Architecture"]], control["Version"])
+    else:
+      query = "EXECUTE pkg_insert('%s', %d, %d, '%s', %d)" % (control["Package"], distr_id, archs[control["Architecture"]], control["Version"], srcs[control["Source"]])
     cur.execute(query)
 
 def main():
@@ -98,8 +108,12 @@
   archs = aux.get_archs(conn)
 
   cur = conn.cursor()
-  cur.execute("PREPARE pkg_insert AS INSERT INTO pkgs (name, distr_id, arch_id, version) VALUES ($1, $2, $3, $4);")
+  cur.execute("PREPARE pkg_insert AS INSERT INTO pkgs (name, distr_id, arch_id, version, src_id) VALUES ($1, $2, $3, $4, $5);")
 
+  cur.execute("SELECT name, src_id FROM sources WHERE distr_id = " + str(distr_id))
+  for src in cur.fetchall():
+    srcs[src[0]] = src[1]
+
   # For every part and every architecture, import the packages into the DB
   for part in src_cfg['parts']:
     for arch in src_cfg['archs']:

Modified: udd/src/setup-db.sql
===================================================================
--- udd/src/setup-db.sql	2008-06-06 11:51:51 UTC (rev 886)
+++ udd/src/setup-db.sql	2008-06-06 13:52:26 UTC (rev 887)
@@ -1,5 +1,5 @@
-CREATE TABLE pkgs (pkg_id serial, name text, distr_id int, arch_id int, version text, src_id int);
-CREATE TABLE sources (src_id serial, name text, upload_date timestamp, uploader_key int, maintainer text, version text, distr_id int);
+CREATE TABLE pkgs (pkg_id serial, name text, distr_id int, arch_id int, version text, src_id int, UNIQUE (name, distr_id, arch_id, version));
+CREATE TABLE sources (src_id serial, name text, upload_date timestamp, uploader_key int, maintainer text, version text, distr_id int, UNIQUE (name, version, distr_id));
 CREATE TABLE distr_ids (distr_id serial, name text);
 CREATE TABLE arch_ids (arch_id serial, name text);
 CREATE TABLE build_archs (src_id int, arch_id int);

Modified: udd/src/sources_gatherer.py
===================================================================
--- udd/src/sources_gatherer.py	2008-06-06 11:51:51 UTC (rev 886)
+++ udd/src/sources_gatherer.py	2008-06-06 13:52:26 UTC (rev 887)
@@ -1,5 +1,5 @@
 #/usr/bin/env python
-# Last-Modified: <Fri Jun  6 10:07:50 2008>
+# Last-Modified: <Fri Jun  6 12:31:10 2008>
 
 import debian_bundle.deb822
 import gzip
@@ -41,11 +41,6 @@
 	query = "EXECUTE build_archs_insert(%d, %d)" % (src_id, archs[arch])
 	cur.execute(query)
 
-    # Set the source_ids for the binaries
-    for binary in control['Binary'].split(", "):
-      query = "EXECUTE pkgs_update_src_id(%d, '%s', %d)" % (src_id, binary, distr_id)
-      cur.execute(query)
-
 def main():
   global distr_id
   global archs
@@ -93,7 +88,6 @@
   cur = conn.cursor()
   cur.execute("PREPARE source_insert AS INSERT INTO sources (name, maintainer, version, distr_id) VALUES ($1,$2,$3,$4)")
   cur.execute("PREPARE build_archs_insert AS INSERT INTO build_archs (src_id, arch_id) VALUES ($1,$2)")
-  cur.execute("PREPARE pkgs_update_src_id AS UPDATE pkgs SET src_id = $1 WHERE name = $2 AND distr_id = $3")
   cur.execute("PREPARE select_src_id AS SELECT src_id FROM sources WHERE name = $1 AND version = $2")
 
   for part in src_cfg['parts']:
@@ -116,7 +110,6 @@
   cur.execute("DEALLOCATE source_insert")
   cur.execute("DEALLOCATE build_archs_insert")
   cur.execute("DEALLOCATE select_src_id")
-  cur.execute("DEALLOCATE pkgs_update_src_id")
   conn.commit()
 
 if __name__ == '__main__':

Modified: udd/src/srcs_and_pkgs.py
===================================================================
--- udd/src/srcs_and_pkgs.py	2008-06-06 11:51:51 UTC (rev 886)
+++ udd/src/srcs_and_pkgs.py	2008-06-06 13:52:26 UTC (rev 887)
@@ -2,5 +2,5 @@
 import os
 
 if __name__ == '__main__':
-  os.system("python packages_gatherer.py " + " ".join(sys.argv[1:]))
-  os.system("python sources_gatherer.py " + " ".join(sys.argv[1:]))
+  if os.system("python sources_gatherer.py " + " ".join(sys.argv[1:])) == 0:
+    os.system("python packages_gatherer.py " + " ".join(sys.argv[1:]))

Modified: udd/src/test.yaml
===================================================================
--- udd/src/test.yaml	2008-06-06 11:51:51 UTC (rev 886)
+++ udd/src/test.yaml	2008-06-06 13:52:26 UTC (rev 887)
@@ -1,5 +1,5 @@
 general:
-  dbname: udd-test
+  dbname: udd
   types:
     sources: python sources_gatherer.py
     packages: python packages_gatherer.py
@@ -41,15 +41,15 @@
   directory: /org/ftp.debian.org/dists/sid/
   parts: [main, contrib, non-free]
   distribution: debian-sid
-
-debian-sarge:
+  
+debian-etch:
   type: src-pkg
   archs: [alpha, amd64, arm, armel, hppa, hurd-i386,
           i386, i486, ia64, kfreebsd-amd64, kfreebsd-i386, m68k, mips,
           mipsel, powerpc, ppc64, s390, sparc]       
-  directory: /org/ftp.debian.org/dists/sarge/
+  directory: /org/ftp.debian.org/dists/etch/
   parts: [main, contrib, non-free]
-  distribution: debian-sarge
+  distribution: debian-etch
 
 debian-backports-etch:
   type: src-pkg
@@ -60,15 +60,6 @@
   parts: [main, contrib, non-free]
   distribution: debian-backports-etch
 
-debian-backports-sarge:
-  type: src-pkg
-  archs: [alpha, amd64, arm, armel, hppa, hurd-i386,
-          i386, i486, ia64, kfreebsd-amd64, kfreebsd-i386, m68k, mips,
-          mipsel, powerpc, ppc64, s390, sparc]       
-  directory: /org/ftp.backports.org/dists/sarge-backports/
-  parts: [main, contrib, non-free]
-  distribution: debian-backports-sarge
-
 debian-volatile-etch:
   type: src-pkg
   archs: [alpha, amd64, arm, armel, hppa, hurd-i386,
@@ -78,15 +69,6 @@
   parts: [main, contrib, non-free]
   distribution: debian-volatile-etch
 
-debian-volatile-sarge:
-  type: src-pkg
-  archs: [alpha, amd64, arm, armel, hppa, hurd-i386,
-          i386, i486, ia64, kfreebsd-amd64, kfreebsd-i386, m68k, mips,
-          mipsel, powerpc, ppc64, s390, sparc]       
-  directory: /org/volatile.debian.org/dists/sarge/volatile/
-  parts: [main, contrib, non-free]
-  distribution: debian-volatile-sarge
-
 test-src:
   type: sources
   directory: /org/ftp.debian.org/dists/lenny/




More information about the Collab-qa-commits mailing list