]> git.decadent.org.uk Git - dak.git/blobdiff - dak/dakdb/update18.py
Convert exception handling to Python3 syntax.
[dak.git] / dak / dakdb / update18.py
index b35c84b3851cf5a1674dcbb45f649f3a2fcfa124..eb8efa4a4cbc943401e1fad9afd2b3bc4edb3170 100755 (executable)
@@ -34,6 +34,7 @@ import os
 import datetime
 from daklib.dak_exceptions import DBUpdateError, InvalidDscError, ChangesUnicodeError
 from daklib.config import Config
+from daklib.changes import Changes
 from daklib.utils import parse_changes, warn, gpgv_get_status_output, process_gpgv_output
 
 ################################################################################
@@ -41,7 +42,6 @@ from daklib.utils import parse_changes, warn, gpgv_get_status_output, process_gp
 def check_signature (sig_filename, data_filename=""):
     keyrings = [
         "/home/joerg/keyring/keyrings/debian-keyring.gpg",
-        "/home/joerg/keyring/keyrings/debian-keyring.pgp",
         "/home/joerg/keyring/keyrings/debian-maintainers.gpg",
         "/home/joerg/keyring/keyrings/debian-role-keys.gpg",
         "/home/joerg/keyring/keyrings/emeritus-keyring.pgp",
@@ -117,6 +117,12 @@ def do_update(self):
         c.execute("CREATE INDEX changesdistribution_ind ON known_changes(distribution)")
         c.execute("CREATE INDEX changesurgency_ind ON known_changes(urgency)")
 
+        c.execute("GRANT ALL ON known_changes TO ftpmaster;")
+        c.execute("GRANT SELECT ON known_changes TO public;")
+
+        c.execute("UPDATE config SET value = '18' WHERE name = 'db_revision'")
+        self.db.commit()
+
         print "Done. Now looking for old changes files"
         count = 0
         failure = 0
@@ -125,37 +131,26 @@ def do_update(self):
             checkdir = cnf["Dir::Queue::%s" % (directory) ]
             if os.path.exists(checkdir):
                 print "Looking into %s" % (checkdir)
-                for dirpath, dirnames, filenames in os.walk(checkdir, topdown=False):
-                    if not filenames:
-                        # Empty directory (or only subdirectories), next
+                for filename in os.listdir(checkdir):
+                    if not filename.endswith(".changes"):
+                        # Only interested in changes files.
                         continue
-                    for changesfile in filenames:
-                        if not changesfile.endswith(".changes"):
-                            # Only interested in changes files.
-                            continue
-                        try:
-                            count += 1
-                            print "Directory %s, file %7d, failures %3d. (%s)" % (dirpath[-10:], count, failure, changesfile)
-                            changes = Changes()
-                            changes.changes_file = changesfile
-                            changesfile = os.path.join(dirpath, changesfile)
-                            changes.changes = parse_changes(changesfile, signing_rules=-1)
-                            changes.changes["fingerprint"], = check_signature(changesfile)
-                            changes.add_known_changes(directory)
-                        except InvalidDscError, line:
-                            warn("syntax error in .dsc file '%s', line %s." % (f, line))
-                            failure += 1
-                        except ChangesUnicodeError:
-                            warn("found invalid changes file, not properly utf-8 encoded")
-                            failure += 1
-
-
-        c.execute("GRANT ALL ON known_changes TO ftpmaster;")
-        c.execute("GRANT SELECT ON known_changes TO public;")
-
-        c.execute("UPDATE config SET value = '20' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError, msg:
+                    try:
+                        count += 1
+                        print "Directory %s, file %7d, failures %3d. (%s)" % (directory, count, failure, filename)
+                        changes = Changes()
+                        changes.changes_file = filename
+                        changesfile = os.path.join(checkdir, filename)
+                        changes.changes = parse_changes(changesfile, signing_rules=-1)
+                        changes.changes["fingerprint"] = check_signature(changesfile)
+                        changes.add_known_changes(directory)
+                    except InvalidDscError as line:
+                        warn("syntax error in .dsc file '%s', line %s." % (f, line))
+                        failure += 1
+                    except ChangesUnicodeError:
+                        warn("found invalid changes file, not properly utf-8 encoded")
+                        failure += 1
+
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply source format update 15, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError, "Unable to apply knownchanges update 18, rollback issued. Error message : %s" % (str(msg))