]> git.decadent.org.uk Git - dak.git/commitdiff
Merge remote branch 'ansgar/clean-suites'
authorMark Hymers <mhy@debian.org>
Wed, 31 Aug 2011 09:42:55 +0000 (10:42 +0100)
committerMark Hymers <mhy@debian.org>
Wed, 31 Aug 2011 09:42:55 +0000 (10:42 +0100)
Signed-off-by: Mark Hymers <mhy@debian.org>
102 files changed:
dak/add_user.py
dak/admin.py
dak/check_archive.py
dak/clean_queues.py
dak/clean_suites.py
dak/control_suite.py
dak/dakdb/update1.py
dak/dakdb/update10.py
dak/dakdb/update11.py
dak/dakdb/update12.py
dak/dakdb/update13.py
dak/dakdb/update14.py
dak/dakdb/update15.py
dak/dakdb/update16.py
dak/dakdb/update17.py
dak/dakdb/update18.py
dak/dakdb/update19.py
dak/dakdb/update2.py
dak/dakdb/update20.py
dak/dakdb/update21.py
dak/dakdb/update22.py
dak/dakdb/update23.py
dak/dakdb/update24.py
dak/dakdb/update25.py
dak/dakdb/update26.py
dak/dakdb/update27.py
dak/dakdb/update28.py
dak/dakdb/update29.py
dak/dakdb/update3.py
dak/dakdb/update30.py
dak/dakdb/update31.py
dak/dakdb/update32.py
dak/dakdb/update33.py
dak/dakdb/update34.py
dak/dakdb/update35.py
dak/dakdb/update36.py
dak/dakdb/update37.py
dak/dakdb/update38.py
dak/dakdb/update39.py
dak/dakdb/update4.py
dak/dakdb/update40.py
dak/dakdb/update41.py
dak/dakdb/update42.py
dak/dakdb/update43.py
dak/dakdb/update44.py
dak/dakdb/update45.py
dak/dakdb/update46.py
dak/dakdb/update47.py
dak/dakdb/update48.py
dak/dakdb/update49.py
dak/dakdb/update5.py
dak/dakdb/update50.py
dak/dakdb/update51.py
dak/dakdb/update52.py
dak/dakdb/update53.py
dak/dakdb/update54.py
dak/dakdb/update55.py
dak/dakdb/update56.py
dak/dakdb/update57.py
dak/dakdb/update58.py
dak/dakdb/update59.py
dak/dakdb/update6.py
dak/dakdb/update60.py
dak/dakdb/update61.py
dak/dakdb/update62.py
dak/dakdb/update63.py
dak/dakdb/update64.py
dak/dakdb/update65.py
dak/dakdb/update66.py
dak/dakdb/update67.py [new file with mode: 0755]
dak/dakdb/update7.py
dak/dakdb/update8.py
dak/dakdb/update9.py
dak/examine_package.py
dak/generate_index_diffs.py
dak/graph.py
dak/import_known_changes.py
dak/import_users_from_passwd.py
dak/init_dirs.py
dak/make_changelog.py
dak/process_new.py
dak/process_policy.py
dak/process_upload.py
dak/queue_report.py
dak/rm.py
dak/show_deferred.py
dak/transitions.py
dak/update_db.py
daklib/contents.py
daklib/daklog.py
daklib/dakmultiprocessing.py
daklib/dbconn.py
daklib/filewriter.py
daklib/formats.py
daklib/holding.py
daklib/metadata.py
daklib/queue.py
daklib/srcformats.py
daklib/textutils.py
daklib/utils.py
tests/test_parse_changes.py
tools/queue_rss.py

index f2391bd65acf59cf64a9613b4c5fbeb111dbb060..8ab4d2302077e41a69487b15203652bcad2cbac9 100755 (executable)
@@ -66,7 +66,7 @@ def HashPass(Password):
         Salt = Salt + SaltVals[ord(Rand.read(1)[0]) % len(SaltVals)]
     Pass = crypt.crypt(Password,Salt)
     if len(Pass) < 14:
-        raise "Password Error", "MD5 password hashing failed, not changing the password!"
+        raise RuntimeError("MD5 password hashing failed, not changing the password!")
     return Pass
 
 ################################################################################
index fe369b51a753ca08add8ad22657e94f4644a4c9e..e109877faf0d5606fd5fb1ebe4049f973a821da5 100755 (executable)
@@ -137,9 +137,9 @@ def __architecture_add(d, args):
                 else:
                     warn("W: Cannot find suite %s" % su)
             s.commit()
-        except IntegrityError, e:
+        except IntegrityError as e:
             die("E: Integrity error adding architecture %s (it probably already exists)" % args[2])
-        except SQLAlchemyError, e:
+        except SQLAlchemyError as e:
             die("E: Error adding architecture %s (%s)" % (args[2], e))
     print "Architecture %s added" % (args[2])
 
@@ -154,9 +154,9 @@ def __architecture_rm(d, args):
                 die("E: Cannot find architecture %s" % args[2])
             s.delete(a)
             s.commit()
-        except IntegrityError, e:
+        except IntegrityError as e:
             die("E: Integrity error removing architecture %s (suite-arch entries probably still exist)" % args[2])
-        except SQLAlchemyError, e:
+        except SQLAlchemyError as e:
             die("E: Error removing architecture %s (%s)" % (args[2], e))
     print "Architecture %s removed" % args[2]
 
@@ -228,9 +228,9 @@ def __suite_add(d, args, addallarches=False):
             suite.srcformats = s.query(SrcFormat).all()
             s.add(suite)
             s.flush()
-        except IntegrityError, e:
+        except IntegrityError as e:
             die("E: Integrity error adding suite %s (it probably already exists)" % suite_name)
-        except SQLAlchemyError, e:
+        except SQLAlchemyError as e:
             die("E: Error adding suite %s (%s)" % (suite_name, e))
     print "Suite %s added" % (suite_name)
 
@@ -313,9 +313,9 @@ def __suite_architecture_add(d, args):
         try:
             suite.architectures.append(arch)
             s.commit()
-        except IntegrityError, e:
+        except IntegrityError as e:
             die("E: Can't add suite-architecture entry (%s, %s) - probably already exists" % (args[2].lower(), args[3].lower()))
-        except SQLAlchemyError, e:
+        except SQLAlchemyError as e:
             die("E: Can't add suite-architecture entry (%s, %s) - %s" % (args[2].lower(), args[3].lower(), e))
 
     print "Added suite-architecture entry for %s, %s" % (args[2].lower(), args[3].lower())
@@ -338,9 +338,9 @@ def __suite_architecture_rm(d, args):
                 die("E: architecture %s not found in suite %s" % (arch_string, suite_name))
             suite.architectures.remove(architecture)
             s.commit()
-        except IntegrityError, e:
+        except IntegrityError as e:
             die("E: Can't remove suite-architecture entry (%s, %s) - it's probably referenced" % (args[2].lower(), args[3].lower()))
-        except SQLAlchemyError, e:
+        except SQLAlchemyError as e:
             die("E: Can't remove suite-architecture entry (%s, %s) - %s" % (args[2].lower(), args[3].lower(), e))
 
     print "Removed suite-architecture entry for %s, %s" % (args[2].lower(), args[3].lower())
index 1fb8560baaa628bb61abec14f56adce4094b50ac..89c3dcbd82d690141e01bc2c05d981d8f5f99b72 100755 (executable)
@@ -164,7 +164,7 @@ def check_dscs():
         except CantOpenError:
             utils.warn("missing dsc file (%s)" % f)
             count += 1
-        except Exception, e:
+        except Exception as e:
             utils.warn("miscellaneous error parsing dsc file (%s): %s" % (f, str(e)))
             count += 1
 
index 390c2551b85d02213b77bbde419bd6869d66a61c..e6e4f76cb32b23b77da55885e8d9022d95e10bb6 100755 (executable)
@@ -86,7 +86,7 @@ def init (cnf):
     # Ensure a directory exists to remove files to
     if not Options["No-Action"]:
         if not os.path.exists(del_dir):
-            os.makedirs(del_dir, 02775)
+            os.makedirs(del_dir, 0o2775)
         if not os.path.isdir(del_dir):
             utils.fubar("%s must be a directory." % (del_dir))
 
@@ -100,7 +100,7 @@ def init (cnf):
 
     try:
         os.chdir(incoming)
-    except OSError, e:
+    except OSError as e:
         utils.fubar("Cannot chdir to %s" % incoming)
 
 # Remove a file to the morgue
@@ -118,7 +118,7 @@ def remove (from_dir, f):
         if os.path.exists(dest_filename):
             dest_filename = utils.find_next_free(dest_filename, 10)
             Logger.log(["change destination file name", os.path.basename(dest_filename)])
-        utils.move(f, dest_filename, 0660)
+        utils.move(f, dest_filename, 0o660)
     else:
         Logger.log(["skipping file because of permission problem", fname])
         utils.warn("skipping '%s', permission denied." % fname)
@@ -157,7 +157,7 @@ def flush_orphans ():
             changes = utils.parse_changes(changes_filename)
             files = utils.build_file_list(changes)
         except:
-            utils.warn("error processing '%s'; skipping it. [Got %s]" % (changes_filename, sys.exc_type))
+            utils.warn("error processing '%s'; skipping it. [Got %s]" % (changes_filename, sys.exc_info()[0]))
             continue
 
         dsc_files = {}
@@ -167,7 +167,7 @@ def flush_orphans ():
                     dsc = utils.parse_changes(f, dsc_file=1)
                     dsc_files = utils.build_file_list(dsc, is_a_dsc=1)
                 except:
-                    utils.warn("error processing '%s'; skipping it. [Got %s]" % (f, sys.exc_type))
+                    utils.warn("error processing '%s'; skipping it. [Got %s]" % (f, sys.exc_info()[0]))
                     continue
 
         # Ensure all the files we've seen aren't deleted
index b08c9444e3889cdff7288c29ba6823a08f78aabe..7419b83b5496e9b3ecca15e19d71326b8e449be0 100755 (executable)
@@ -426,7 +426,7 @@ def main():
             max_delete = int(cnf["Clean-Suites::Options::Maximum"])
             if max_delete < 1:
                 utils.fubar("If given, Maximum must be at least 1")
-        except ValueError, e:
+        except ValueError as e:
             utils.fubar("If given, Maximum must be an integer")
     else:
         max_delete = None
index 6dd79b8fd258f113b3bcb90a9cea53984001f0f5..57e43da6ac0b77418c8b4745d4c900ef9c4c8728 100755 (executable)
@@ -396,7 +396,7 @@ def main ():
 
     try:
         file_list = apt_pkg.ParseCommandLine(cnf.Cnf, Arguments, sys.argv);
-    except SystemError, e:
+    except SystemError as e:
         print "%s\n" % e
         usage(1)
     Options = cnf.SubTree("Control-Suite::Options")
index 0c83377387431f69dd4c615a96f4aef9cccf0a7d..21942765e560b056d167d3755e409fe73d5343c0 100755 (executable)
@@ -64,6 +64,6 @@ def do_update(self):
         print "Pausing for five seconds ..."
         time.sleep (5)
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to appy DM table updates, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to appy DM table updates, rollback issued. Error message : %s" % (str(msg)))
index 5cd4f30dc50899aa78933bf8d8602e6d975c350a..31c70d379206504bf48b56ef7570f2137bb1bbfe 100755 (executable)
@@ -51,6 +51,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '10' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply suite config updates, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply suite config updates, rollback issued. Error message : %s" % (str(msg)))
index a4797cb4bdf557e1634304403a9d6ffffd855e8d..17001d391f58c00719c5c29b607044154be6a83a 100755 (executable)
@@ -58,6 +58,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '11' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply process-new comments update, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply process-new comments update, rollback issued. Error message : %s" % (str(msg)))
index 890f51cb66c75a767693cec4762450b5ae394d55..21d44a4598103ddc54b2912eb616660f6de74fd4 100755 (executable)
@@ -44,6 +44,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '12' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply process-new update 12, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply process-new update 12, rollback issued. Error message : %s" % (str(msg)))
index d5dbedced401efccdd3e09b0e5e2222feaa2039d..1696e75920ed9d6a7146f31336b68c7ab48a4fb8 100755 (executable)
@@ -44,6 +44,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '13' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply process-new update 13, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply process-new update 13, rollback issued. Error message : %s" % (str(msg)))
index 4f1b1dac893c8dc247e19af533e98772e4c34b3a..575e5d234a2866433d49a0565dcd348d60b00a90 100755 (executable)
@@ -48,6 +48,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '14' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply process-new update 14, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply process-new update 14, rollback issued. Error message : %s" % (str(msg)))
index 535f9e67cc2bf5890e2213726d337bc9ada74119..7d6b52e7588e3988d52cba08b6e9729e1e92152b 100755 (executable)
@@ -79,6 +79,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '15' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    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 source format update 15, rollback issued. Error message : %s" % (str(msg)))
index eca9b48ea03c460def0f192d05ae6d4589b7cef6..6cd6dc4b1b7af19566cc26901e77588f6402a288 100755 (executable)
@@ -173,6 +173,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '16' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply ACLs update (16), rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply ACLs update (16), rollback issued. Error message : %s" % (str(msg)))
index beca9425020e6b3df6004eccdf6dea1299a54541..493640eb9ff6a79df097a345d17424a5ebbcc1ad 100755 (executable)
@@ -58,9 +58,9 @@ def do_update(self):
 
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply process-new update 17, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply process-new update 17, rollback issued. Error message : %s" % (str(msg)))
 
 
 
index ce0086f67e88af5b3a3a80e3ee6bb0da10f50145..bdf241084262522f86a95029b810ae17126c87ee 100755 (executable)
@@ -144,13 +144,13 @@ def do_update(self):
                         changes.changes = parse_changes(changesfile, signing_rules=-1)
                         changes.changes["fingerprint"] = check_signature(changesfile)
                         changes.add_known_changes(directory)
-                    except InvalidDscError, line:
+                    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, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply knownchanges update 18, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply knownchanges update 18, rollback issued. Error message : %s" % (str(msg)))
index 49a4dbc71f24b5234e63e15fdabaf65b4b9826d5..61e607033f4b4c1a1454d6677c3c1d02679a01f6 100755 (executable)
@@ -102,6 +102,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '19' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.InternalError, msg:
+    except psycopg2.InternalError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply debversion update 19, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply debversion update 19, rollback issued. Error message : %s" % (str(msg)))
index 2e3cb446b55f1cedb985628f17524caa1520964b..0d9d387162fa45a9f0e23ae2ab1ab07fd86a352d 100755 (executable)
@@ -396,6 +396,6 @@ $$
 
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to appy debversion updates, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to appy debversion updates, rollback issued. Error message : %s" % (str(msg)))
index f4e34cb96b56428791918a43642d4fa8f932e071..c1424ab2da502aa8c236dcfb4dc2d0f8ba1ad912 100755 (executable)
@@ -95,6 +95,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '20' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.InternalError, msg:
+    except psycopg2.InternalError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply debversion update 20, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply debversion update 20, rollback issued. Error message : %s" % (str(msg)))
index 8e36883f9eb7b4cdf9bfc80a322d9044fec64346..c91b6f1410e4cd486fd6fd4737a84d710326bd45 100755 (executable)
@@ -74,7 +74,7 @@ def do_update(self):
                 f = c.fetchone()
                 c.execute("""INSERT INTO queue_files (queueid, lastused, filename, fileid) VALUES
                                                      (%s, now(), %s, %s)""", (queue, filename[filename.rindex('/')+1:], f[0]))
-            except OSError, e:
+            except OSError as e:
                 print "Can't find file %s (%s)" % (filename, e)
 
         print "Dropping old queue_build table"
@@ -124,6 +124,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '21' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.InternalError, msg:
+    except psycopg2.InternalError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply queue_build 21, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply queue_build 21, rollback issued. Error message : %s" % (str(msg)))
index dbd7ced6023c1d3bf77b7c225ca1a4e4361d8211..5c852c67024f0b6a73e4595d51c3ae4f33067ebb 100755 (executable)
@@ -235,6 +235,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '22' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.InternalError, msg:
+    except psycopg2.InternalError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply queue_build 21, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply queue_build 21, rollback issued. Error message : %s" % (str(msg)))
index 48abf0162df781d6caa47518d5dc6bfa9ae749f2..4750c153b767fe21091a27865132b78cd091a9f1 100755 (executable)
@@ -58,7 +58,7 @@ CREATE VIEW srcfiles_suite_component AS
         c.execute("UPDATE config SET value = '23' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.InternalError, msg:
+    except psycopg2.InternalError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Database error, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Database error, rollback issued. Error message : %s" % (str(msg)))
 
index 4e8c505d5c62c01afd878ff1cf6e193ad41e8cb9..64deb96e9291bcfd5e5f102068131384fe943a3a 100755 (executable)
@@ -56,7 +56,7 @@ def do_update(self):
         c.execute("UPDATE config SET value = '24' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.InternalError, msg:
+    except psycopg2.InternalError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Database error, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Database error, rollback issued. Error message : %s" % (str(msg)))
 
index b2813d9118f820438676a54f9b7bf78aeb718b18..0ce8ab6e1298645203c4dad206bfe91efbc974ed 100755 (executable)
@@ -183,7 +183,7 @@ CREATE VIEW obsolete_all_associations AS
         c.execute("UPDATE config SET value = '25' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.InternalError, msg:
+    except psycopg2.InternalError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Database error, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Database error, rollback issued. Error message : %s" % (str(msg)))
 
index 1b9a7fc14b11089addf6f5171b7dcde140ddaf38..358f2ae46907ed5be49516dfe458e85aee523480 100755 (executable)
@@ -61,7 +61,7 @@ def do_update(self):
         c.execute("UPDATE config SET value = '26' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.InternalError, msg:
+    except psycopg2.InternalError as msg:
             self.db.rollback()
-            raise DBUpdateError, "Database error, rollback issued. Error message : %s" % (str(msg))
+            raise DBUpdateError("Database error, rollback issued. Error message : %s" % (str(msg)))
 
index b06932b52ed1e20e89c4a7224627ed9d85d7d6dc..814e60150ad8ebba93e20bbf724f50ece1a2b00f 100755 (executable)
@@ -74,7 +74,7 @@ CREATE OR REPLACE VIEW bin_associations_binaries AS
         c.execute("UPDATE config SET value = '27' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.InternalError, msg:
+    except psycopg2.InternalError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Database error, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Database error, rollback issued. Error message : %s" % (str(msg)))
 
index 79b0e8db8250fb3e657edcf9daf9ba4fdb1706a5..1455ee3110284d3cdd4d48effd237f1d0a1fc2d0 100755 (executable)
@@ -265,7 +265,7 @@ $$ LANGUAGE plpythonu VOLATILE;""")
 
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply process-new update 28, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply process-new update 28, rollback issued. Error message : %s" % (str(msg)))
 
index d25c1011a56fbba16449f940f7972798b17f74c2..c77d99dad5229510534fd08ffc773914b7d71ba4 100644 (file)
@@ -47,6 +47,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '29' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to appy debversion updates, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to appy debversion updates, rollback issued. Error message : %s" % (str(msg)))
index 5a5562fbedfe2659c5c2990f7ba125b3a25ac00c..f7a4e5026e3c79908c208040f5a46d9ab273169c 100755 (executable)
@@ -49,6 +49,6 @@ def do_update(self):
 
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to appy versioncmp removal, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to appy versioncmp removal, rollback issued. Error message : %s" % (str(msg)))
index 2d962749219a8ba513bbccb9517f622960928b5e..f68c74a34a5f7baaaeb5be8f59aa743ebfd6c777 100644 (file)
@@ -95,6 +95,6 @@ $$ LANGUAGE plpythonu VOLATILE SECURITY DEFINER;
         c.execute("UPDATE config SET value = '30' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to appy debversion updates, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to appy debversion updates, rollback issued. Error message : %s" % (str(msg)))
index 8ebfe3424732447ee5c00331347f07f48d75b55e..7209178b3ca0a6d3347e2c8d4bd189264fe00f42 100644 (file)
@@ -94,7 +94,7 @@ $$ LANGUAGE plpythonu VOLATILE SECURITY DEFINER;
         c.execute("UPDATE config SET value = '31' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply process-new update 31, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply process-new update 31, rollback issued. Error message : %s" % (str(msg)))
 
index 98eaa4e6973fd063aacfb4085a89cdc7f5902063..59355c91a3af811c063caed8e8365767da7f3329 100755 (executable)
@@ -44,7 +44,7 @@ def do_update(self):
         c.execute("UPDATE config SET value = '32' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply build_queue update 32, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply build_queue update 32, rollback issued. Error message : %s" % (str(msg)))
 
index 9624ba627b93daf42d0ec3b99274f1dfe3635e97..5b0fe110d4dab1dad30ecf27c575d85ccd6db12a 100644 (file)
@@ -50,6 +50,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '33' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply build_queue update 33, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply build_queue update 33, rollback issued. Error message : %s' % (str(msg)))
index ea0535dba185543bb34b557f52f0e84cce4c9e5f..03f15739438bcae0ee28bf3f8ffc5194799495f1 100644 (file)
@@ -43,6 +43,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '34' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply build_queue update 34, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply build_queue update 34, rollback issued. Error message : %s' % (str(msg)))
index 335d70e5f67e3fc48f02fe71afeef1c6c9cf5f96..41d56674aff70d80e6666ae71a36c037b0880317 100644 (file)
@@ -45,6 +45,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '35' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply build_queue update 35, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply build_queue update 35, rollback issued. Error message : %s' % (str(msg)))
index d5810f6815069cc6376a003474d2b8e1debea52a..432e09f3653f65b1f0202bf126d407c18d796380 100644 (file)
@@ -43,6 +43,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '36' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply build_queue update 36, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply build_queue update 36, rollback issued. Error message : %s' % (str(msg)))
index 5a6714bbf0dd4138ff6871b8d7250022a40cb16f..7ab52e04ca52ab9580d700822392c9826a97d772 100755 (executable)
@@ -52,6 +52,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '37' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply table-colum update 37, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply table-colum update 37, rollback issued. Error message : %s' % (str(msg)))
index 583aa3ade53edb297011a9e1465250cbe43f66bd..da3a1d6596e9aa473a28f0fb6aa85a5557f94282 100755 (executable)
@@ -51,6 +51,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '38' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply table-column update 38, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply table-column update 38, rollback issued. Error message : %s' % (str(msg)))
index 8086b515f689c953344a055709762c2b306561c7..c02b9629f0d34536da1c2b5286754dfc5d289217 100644 (file)
@@ -42,6 +42,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '39' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply table-column update 39, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply table-column update 39, rollback issued. Error message : %s' % (str(msg)))
index 477944c830408548367e13710495bd26084bb905..938522ccd83cddacc7d9765cd360c2c6d034f1c5 100755 (executable)
@@ -64,6 +64,6 @@ def do_update(self):
 
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply sanity to suite_architecture table, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply sanity to suite_architecture table, rollback issued. Error message : %s" % (str(msg)))
index 062b0dd842adfac966a6805a1bb7e14c6bb02839..e3bb89e0570307331e6ab978790a48cc72b9b496 100755 (executable)
@@ -44,6 +44,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '40' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 40, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 40, rollback issued. Error message : %s' % (str(msg)))
index 813a3b709e17a83488245ef748a70d7e44f6ce52..65661d3c420eae1c441ed948203bf1f9128e0b5e 100755 (executable)
@@ -61,6 +61,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '41' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 41, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 41, rollback issued. Error message : %s' % (str(msg)))
index 48bc9d61af4ccc8b9c6f83b4cbe9334dc668ee7e..3c51232c8735a98540208eba39a1ed4e715f4611 100755 (executable)
@@ -44,6 +44,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '42' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply update 42, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply update 42, rollback issued. Error message : %s' % (str(msg)))
index 071541051a381dec7670ff209acfb14d95c593f8..430cc3581dc42c98a9666719612e2f004ba95418 100755 (executable)
@@ -46,6 +46,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '43' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply update 43, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply update 43, rollback issued. Error message : %s' % (str(msg)))
index 465f2fce6a86a1ef65475052fad7937615d8b8ca..bce1fe7db3fcd00934836e2f2899c8435662348c 100755 (executable)
@@ -47,6 +47,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '44' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 44, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 44, rollback issued. Error message : %s' % (str(msg)))
index 32ed04f086820de19dc630b4e0f97ca5a9e0b943..fe84c9be87627b1d800de02ad6b9e05c4e1b9b84 100755 (executable)
@@ -48,6 +48,6 @@ CREATE TABLE extra_src_references (
         c.execute("UPDATE config SET value = '45' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply update 45, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply update 45, rollback issued. Error message : %s' % (str(msg)))
index d1b2d3ac43ff8542e4af0bada52bf064d712f7c8..109a887aa93a0ceba459fd930d474e215c5aeb5f 100755 (executable)
@@ -72,6 +72,6 @@ CREATE TABLE source_metadata (
         c.execute("UPDATE config SET value = '46' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply update 46, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply update 46, rollback issued. Error message : %s' % (str(msg)))
index 81d9cd788f44b8eb3d5a1f7399a3fb1b3b867a35..a6626594fb99ed96ccd8bfa01d8a5e5c59e38e12 100755 (executable)
@@ -47,6 +47,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '47' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 47, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 47, rollback issued. Error message : %s' % (str(msg)))
index 67ea8c5b1ed795e011884005497a99043de4bf4e..63a8a0e656fa79058279a00fc2c8c07ab6b87f3d 100755 (executable)
@@ -44,6 +44,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '48' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 48, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 48, rollback issued. Error message : %s' % (str(msg)))
index 5ff1545ca3ca4b2c9fd885d7d9310f3d7408952a..720f8cf3a2c070072f321753bb9205eda2a401fc 100755 (executable)
@@ -56,6 +56,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '49' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 49, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 49, rollback issued. Error message : %s' % (str(msg)))
index 49e338916b92f1a0b4ba9d16912d0059829bde12..a42e540cdabd01dc10c4f453fc5105fa2a2ecce0 100755 (executable)
@@ -46,6 +46,6 @@ def do_update(self):
 
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to recreate bin_assoc_by_arch view, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to recreate bin_assoc_by_arch view, rollback issued. Error message : %s" % (str(msg)))
index ae7ea4d0337158bba2205f940ea4892da012e20e..094998771033509d941db63c0438977ccebfdab1 100755 (executable)
@@ -42,6 +42,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '50' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 50, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 50, rollback issued. Error message : %s' % (str(msg)))
index 2aea858ec734516ec468822806486f51fb8eaf89..2d4c1a2c22bf849316fb5cac78e156d6be54f66d 100755 (executable)
@@ -53,6 +53,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '51' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 51, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 51, rollback issued. Error message : %s' % (str(msg)))
index d38ee26f91267763085b1be91f5e83214974fa84..aa7a10d16fa62e95650ab1cf10c48fc886aee2fb 100755 (executable)
@@ -61,6 +61,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '52' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 52, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 52, rollback issued. Error message : %s' % (str(msg)))
index 36a076f6e347e9edca11a4a76b4fc2adc7c185ce..92508257e08f7104f1931b62fc79ee265d89cfe8 100755 (executable)
@@ -50,6 +50,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '53' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 53, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 53, rollback issued. Error message : %s' % (str(msg)))
index e7676ef0b179fc0cd51d661479d6bdd51b228f48..c218cc670cf094f94188edcdc76be40836b3d102 100755 (executable)
@@ -47,6 +47,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '54' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 54, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 54, rollback issued. Error message : %s' % (str(msg)))
index 3328e85c251fa38c370889937ea48575a4eea27a..9e152227daaa2a96f2303ee3ae8e065f8539a4d2 100755 (executable)
@@ -44,6 +44,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '55' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 55, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 55, rollback issued. Error message : %s' % (str(msg)))
index f04ebc87d6f5afcef2e50f2dda4beb633059ab2a..647f8c799ade92962a561f0f58d2fae2d2dbd263 100755 (executable)
@@ -85,6 +85,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '56' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 56, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 56, rollback issued. Error message : %s' % (str(msg)))
index 45a37dc683dcda6eb4e62d1cb2231deb7ad06539..db49db43427d67e7f5f03c0a5ad6df6b4fafd94a 100755 (executable)
@@ -44,6 +44,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '57' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 57, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 57, rollback issued. Error message : %s' % (str(msg)))
index 8680fc25add77cc7b6954b3d513f70c6a7f504e1..9f10d31b93f8dbb30740027a7af9eee7846d07a4 100755 (executable)
@@ -85,6 +85,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '58' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 58, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 58, rollback issued. Error message : %s' % (str(msg)))
index 6417a370aa037a9cdb68357a793e3499c2e1fd15..fd6fea55e41229c09d0a97b153ee616488880556 100755 (executable)
@@ -51,6 +51,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '59' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 59, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 59, rollback issued. Error message : %s' % (str(msg)))
index 13d609669f03d3b0905827cd7174a06e0d836300..f3d11bbc82ad8f293338e8fc31b48dc4f653d7a1 100755 (executable)
@@ -87,6 +87,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '6' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to appy debversion updates, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to appy debversion updates, rollback issued. Error message : %s" % (str(msg)))
index 4cf6ee8f2a8970977ad7c19f1e54829c73bc1e7a..0173529628b31b583d040e70a9b1ffdbf3233b50 100755 (executable)
@@ -51,6 +51,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '60' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 60, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 60, rollback issued. Error message : %s' % (str(msg)))
index 570bb6bdd31263f3da5ec347d75a6446406b9031..3b18e0b37654e97950161f2580c2af525636be28 100755 (executable)
@@ -50,6 +50,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '61' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 61, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 61, rollback issued. Error message : %s' % (str(msg)))
index f320bbf0ba4d75e9adc3d695a7666dc62aaf6e57..7a47dca8f864c4c9bf8cb9f1d4d2c5a7e9c1bd69 100755 (executable)
@@ -42,6 +42,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '62' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 62, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 62, rollback issued. Error message : %s' % (str(msg)))
index 9b1187c6e19d9f814494e3074923ebf170425da0..e9e5c0f1912eb1b1aca643fcd8faaa7f0c9e2d65 100755 (executable)
@@ -54,6 +54,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '63' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 63, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 63, rollback issued. Error message : %s' % (str(msg)))
index bce9e94ae6258aba900dbf6ff0d33b403230d3d8..49ca75a8e4281e40c87d4d6c90d537da7dbfe112 100755 (executable)
@@ -44,6 +44,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '64' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 64, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 64, rollback issued. Error message : %s' % (str(msg)))
index 8dd83a1b24e51afcb68e9ad00b6dc8fd581df3a2..46730b5fcaaa1e7376ab000c453ada586e348ae5 100755 (executable)
@@ -46,6 +46,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '65' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 65, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 65, rollback issued. Error message : %s' % (str(msg)))
index af61c04a75a2c843c00b765fea206608fc642e37..d59306fa6536001990df09b3bb4fdee072ea21af 100755 (executable)
@@ -55,6 +55,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '66' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, 'Unable to apply sick update 66, rollback issued. Error message : %s' % (str(msg))
+        raise DBUpdateError('Unable to apply sick update 66, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update67.py b/dak/dakdb/update67.py
new file mode 100755 (executable)
index 0000000..0255907
--- /dev/null
@@ -0,0 +1,199 @@
+#!/usr/bin/env python
+# coding=utf8
+
+"""
+Add audit schema and initial package table and triggers
+
+@contact: Debian FTP Master <ftpmaster@debian.org>
+@copyright: 2011 Mark Hymers <mhy@debian.org>
+@copyright: 2011 Ansgar Burchardt <ansgar@debian.org>
+@license: GNU General Public License version 2 or later
+"""
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+################################################################################
+
+import psycopg2
+from daklib.dak_exceptions import DBUpdateError
+from daklib.config import Config
+
+################################################################################
+def do_update(self):
+    """
+    Add audit schema and initial package table and triggers
+    """
+    print __doc__
+    try:
+        c = self.db.cursor()
+
+        c.execute("CREATE SCHEMA audit");
+        c.execute("GRANT USAGE on SCHEMA audit TO public")
+        c.execute("GRANT USAGE on SCHEMA audit TO ftpteam")
+        c.execute("GRANT USAGE on SCHEMA audit TO ftpmaster")
+
+        c.execute("""CREATE TABLE audit.package_changes (
+   changedate TIMESTAMP NOT NULL DEFAULT now(),
+   package TEXT NOT NULL,
+   version DEBVERSION NOT NULL,
+   architecture TEXT NOT NULL,
+   suite TEXT NOT NULL,
+   event TEXT NOT NULL,
+   priority TEXT,
+   component TEXT,
+   section TEXT
+)""")
+
+        c.execute("GRANT INSERT ON audit.package_changes TO dak")
+        c.execute("GRANT SELECT ON audit.package_changes TO PUBLIC")
+
+        c.execute("""CREATE OR REPLACE FUNCTION trigger_binsrc_assoc_update() RETURNS TRIGGER AS $$
+DECLARE
+  v_data RECORD;
+
+  v_package audit.package_changes.package%TYPE;
+  v_version audit.package_changes.version%TYPE;
+  v_architecture audit.package_changes.architecture%TYPE;
+  v_suite audit.package_changes.suite%TYPE;
+  v_event audit.package_changes.event%TYPE;
+  v_priority audit.package_changes.priority%TYPE;
+  v_component audit.package_changes.component%TYPE;
+  v_section audit.package_changes.section%TYPE;
+BEGIN
+  CASE TG_OP
+    WHEN 'INSERT' THEN v_event := 'I'; v_data := NEW;
+    WHEN 'DELETE' THEN v_event := 'D'; v_data := OLD;
+    ELSE RAISE EXCEPTION 'trigger called for invalid operation (%)', TG_OP;
+  END CASE;
+
+  SELECT suite_name INTO STRICT v_suite FROM suite WHERE id = v_data.suite;
+
+  CASE TG_TABLE_NAME
+    WHEN 'bin_associations' THEN
+      SELECT package, version, arch_string
+        INTO STRICT v_package, v_version, v_architecture
+        FROM binaries LEFT JOIN architecture ON (architecture.id = binaries.architecture)
+        WHERE binaries.id = v_data.bin;
+
+      SELECT component.name, priority.priority, section.section
+        INTO v_component, v_priority, v_section
+        FROM override
+             JOIN override_type ON (override.type = override_type.id)
+             JOIN priority ON (priority.id = override.priority)
+             JOIN section ON (section.id = override.section)
+             JOIN component ON (override.component = component.id)
+             JOIN suite ON (suite.id = override.suite)
+        WHERE override_type.type != 'dsc'
+              AND override.package = v_package AND suite.id = v_data.suite;
+
+    WHEN 'src_associations' THEN
+      SELECT source, version
+        INTO STRICT v_package, v_version
+        FROM source WHERE source.id = v_data.source;
+      v_architecture := 'source';
+
+      SELECT component.name, priority.priority, section.section
+        INTO v_component, v_priority, v_section
+        FROM override
+             JOIN override_type ON (override.type = override_type.id)
+             JOIN priority ON (priority.id = override.priority)
+             JOIN section ON (section.id = override.section)
+             JOIN component ON (override.component = component.id)
+             JOIN suite ON (suite.id = override.suite)
+        WHERE override_type.type = 'dsc'
+              AND override.package = v_package AND suite.id = v_data.suite;
+
+    ELSE RAISE EXCEPTION 'trigger called for invalid table (%)', TG_TABLE_NAME;
+  END CASE;
+
+  INSERT INTO audit.package_changes
+    (package, version, architecture, suite, event, priority, component, section)
+    VALUES (v_package, v_version, v_architecture, v_suite, v_event, v_priority, v_component, v_section);
+
+  RETURN NEW;
+END;
+$$ LANGUAGE plpgsql VOLATILE SECURITY DEFINER
+SET search_path = public, pg_temp""");
+
+        c.execute("""CREATE OR REPLACE FUNCTION trigger_override_update() RETURNS TRIGGER AS $$
+DECLARE
+  v_src_override_id override_type.id%TYPE;
+
+  v_priority audit.package_changes.priority%TYPE := NULL;
+  v_component audit.package_changes.component%TYPE := NULL;
+  v_section audit.package_changes.section%TYPE := NULL;
+BEGIN
+
+  IF TG_TABLE_NAME != 'override' THEN
+    RAISE EXCEPTION 'trigger called for invalid table (%)', TG_TABLE_NAME;
+  END IF;
+  IF TG_OP != 'UPDATE' THEN
+    RAISE EXCEPTION 'trigger called for invalid event (%)', TG_OP;
+  END IF;
+
+  IF OLD.package != NEW.package OR OLD.type != NEW.type OR OLD.suite != NEW.suite THEN
+    RETURN NEW;
+  END IF;
+
+  IF OLD.priority != NEW.priority THEN
+    SELECT priority INTO STRICT v_priority FROM priority WHERE id = NEW.priority;
+  END IF;
+
+  IF OLD.component != NEW.component THEN
+    SELECT name INTO STRICT v_component FROM component WHERE id = NEW.component;
+  END IF;
+
+  IF OLD.section != NEW.section THEN
+    SELECT section INTO STRICT v_section FROM section WHERE id = NEW.section;
+  END IF;
+
+  -- Find out if we're doing src or binary overrides
+  SELECT id INTO STRICT v_src_override_id FROM override_type WHERE type = 'dsc';
+  IF OLD.type = v_src_override_id THEN
+    -- Doing a src_association link
+    INSERT INTO audit.package_changes
+      (package, version, architecture, suite, event, priority, component, section)
+      SELECT NEW.package, source.version, 'source', suite.suite_name, 'U', v_priority, v_component, v_section
+        FROM source
+          JOIN src_associations ON (source.id = src_associations.source)
+          JOIN suite ON (suite.id = src_associations.suite)
+        WHERE source.source = NEW.package AND src_associations.suite = NEW.suite;
+  ELSE
+    -- Doing a bin_association link
+    INSERT INTO audit.package_changes
+      (package, version, architecture, suite, event, priority, component, section)
+      SELECT NEW.package, binaries.version, architecture.arch_string, suite.suite_name, 'U', v_priority, v_component, v_section
+        FROM binaries
+          JOIN bin_associations ON (binaries.id = bin_associations.bin)
+          JOIN architecture ON (architecture.id = binaries.architecture)
+          JOIN suite ON (suite.id = bin_associations.suite)
+        WHERE binaries.package = NEW.package AND bin_associations.suite = NEW.suite;
+  END IF;
+
+  RETURN NEW;
+END;
+$$ LANGUAGE plpgsql VOLATILE SECURITY DEFINER
+SET search_path = public, pg_temp""");
+
+        c.execute("CREATE TRIGGER trigger_bin_associations_audit AFTER INSERT OR DELETE ON bin_associations FOR EACH ROW EXECUTE PROCEDURE trigger_binsrc_assoc_update()")
+        c.execute("CREATE TRIGGER trigger_src_associations_audit AFTER INSERT OR DELETE ON src_associations FOR EACH ROW EXECUTE PROCEDURE trigger_binsrc_assoc_update()")
+        c.execute("CREATE TRIGGER trigger_override_audit AFTER UPDATE ON override FOR EACH ROW EXECUTE PROCEDURE trigger_override_update()")
+
+        c.execute("UPDATE config SET value = '66' WHERE name = 'db_revision'")
+        self.db.commit()
+
+    except psycopg2.ProgrammingError, msg:
+        self.db.rollback()
+        raise DBUpdateError, 'Unable to apply sick update 66, rollback issued. Error message : %s' % (str(msg))
index 6f91eb378d2dc1dd6c06fdcab87757508131a05c..9c3dd1ed6662f4faa8eb2ea5cb5f9515297f0c18 100755 (executable)
@@ -116,6 +116,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '7' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to appy suite config updates, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to appy suite config updates, rollback issued. Error message : %s" % (str(msg)))
index 2f92c4d833d7008d1495e01ae43110d6b46ce999..98e0f088048e06c2981c80ac7ad8d33f57844b7e 100755 (executable)
@@ -99,6 +99,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '8' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply suite config updates, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply suite config updates, rollback issued. Error message : %s" % (str(msg)))
index 2ca3c51eee6f42f4dfcbb820174c615c7a8adbc0..bbdd212206653ab7b525d19282187c64c9604fee 100755 (executable)
@@ -57,6 +57,6 @@ def do_update(self):
         c.execute("UPDATE config SET value = '9' WHERE name = 'db_revision'")
         self.db.commit()
 
-    except psycopg2.ProgrammingError, msg:
+    except psycopg2.ProgrammingError as msg:
         self.db.rollback()
-        raise DBUpdateError, "Unable to apply suite config updates, rollback issued. Error message : %s" % (str(msg))
+        raise DBUpdateError("Unable to apply suite config updates, rollback issued. Error message : %s" % (str(msg)))
index 8e2ce20b987135538e4a0d76cab2be7a8df72665..edb9384b6c5be92b0e20ff23544ba1a031922ef4 100755 (executable)
@@ -507,7 +507,7 @@ def get_readme_source (dsc_filename):
 
     try:
         shutil.rmtree(tempdir)
-    except OSError, e:
+    except OSError as e:
         if errno.errorcode[e.errno] != 'EACCES':
             res += "%s: couldn't remove tmp dir %s for source tree." % (dsc_filename, tempdir)
 
@@ -634,7 +634,7 @@ def main ():
                     # Reset stdout here so future less invocations aren't FUBAR
                     less_fd.close()
                     sys.stdout = stdout_fd
-        except IOError, e:
+        except IOError as e:
             if errno.errorcode[e.errno] == 'EPIPE':
                 utils.warn("[examine-package] Caught EPIPE; skipping.")
                 pass
index 83d51824cdcb05efe37d8143b88eead762c58f3a..3297c42cfebf23729b524df67f75f0965c7e280b 100755 (executable)
@@ -81,7 +81,7 @@ def smartlink(f, t):
         os.system("bzip2 -d < %s.bz2 > %s" % (f, t))
     else:
         print "missing: %s" % (f)
-        raise IOError, f
+        raise IOError(f)
 
 def smartopen(file):
     if os.path.isfile(file):
@@ -280,7 +280,7 @@ def genchanges(Options, outdir, oldfile, origfile, maxdiffs = 14):
 def main():
     global Cnf, Options, Logger
 
-    os.umask(0002)
+    os.umask(0o002)
 
     Cnf = utils.get_conf()
     Arguments = [ ('h', "help", "Generate-Index-Diffs::Options::Help"),
index aa28aa6efd98633818f1b5cab683d4e42c3af645..8d94b6b2c512a40b5760a279e04fc81b450677c8 100755 (executable)
@@ -105,7 +105,7 @@ GPRINT:avgd%i:avg\\: %%.0lf\\j
     rrd_args += extra_args
     try:
         ret = rrdtool.graph(*rrd_args)
-    except rrdtool.error, e:
+    except rrdtool.error as e:
         print('warning: graph: rrdtool error, skipping %s-%s.png: %s' % (name, graph, e))
 
 def graph_normal(rrd_dir, image_dir, name, extra_args, graph, title, start, year_lines=False):
@@ -157,7 +157,7 @@ GPRINT:avgds0:avg\\: %%.0lf\\j
     rrd_args += extra_args
     try:
         ret = rrdtool.graph(*rrd_args)
-    except rrdtool.error, e:
+    except rrdtool.error as e:
         print('warning: graph: rrdtool error, skipping %s-%s.png: %s' % (name, graph, e))
 
 ################################################################################
index 125dbb8c576e9b531af95ede45bcb12157ce58f9..7b182d6f199123908f02b5406ea9ae580ea14c3c 100755 (executable)
@@ -269,7 +269,7 @@ class ImportThread(threading.Thread):
                 changes.add_known_changes(to_import.dirpath, session=self.session)
                 self.session.commit()
 
-            except InvalidDscError, line:
+            except InvalidDscError as line:
                 warn("syntax error in .dsc file '%s', line %s." % (f, line))
 
             except ChangesUnicodeError:
index b959e37fa64e9f4b2020d7d6afe2226193b844ec..a9dacd349a99966f19af0d88faaccc1169abca50 100755 (executable)
@@ -118,7 +118,7 @@ def main ():
                     try:
                         q = session.execute('CREATE USER "%s"' % (uname))
                         session.commit()
-                    except Exception, e:
+                    except Exception as e:
                         utils.warn("Could not create user %s (%s)" % (uname, str(e)))
                         session.rollback()
                 else:
index a4703bb88b5170ef8597ea18d3eb675bacf23a0a..fc5efd3206948cdca6ece9c2b03b7fe394633429 100755 (executable)
@@ -90,15 +90,15 @@ def process_keyring(fullpath, secret=False):
         os.makedirs(keydir)
         if secret:
             # Make sure secret keyring directories are 0700
-            os.chmod(keydir, 0700)
+            os.chmod(keydir, 0o700)
 
     # Touch the file
     print "Creating %s ..." % (fullpath)
     file(fullpath, 'w')
     if secret:
-        os.chmod(fullpath, 0600)
+        os.chmod(fullpath, 0o600)
     else:
-        os.chmod(fullpath, 0644)
+        os.chmod(fullpath, 0o644)
 
 ######################################################################
 
index ac5581d02be8ae43a3de98d4145a1ef1a49cb7f3..ad6dbab1a80173857072918b0da7fd03fe6366a5 100755 (executable)
@@ -225,7 +225,7 @@ def export_files(session, pool, clpool):
                         os.link(version, suite)
                         stats['created'] += 1
             unpacked.cleanup()
-        except Exception, e:
+        except Exception as e:
             print 'make-changelog: unable to unpack %s\n%s' % (p, e)
             stats['errors'] += 1
 
index 1a25369789518406cfdd0fd293b4e73c74e03e02..1c2231a305709baf6ff7379fd55fbbe9868ce1d0 100755 (executable)
@@ -42,8 +42,6 @@
 
 ################################################################################
 
-from __future__ import with_statement
-
 import copy
 import errno
 import os
@@ -351,7 +349,7 @@ def check_pkg (upload):
                 elif ftype == "dsc":
                     print examine_package.check_dsc(changes['distribution'], f)
         print examine_package.output_package_relations()
-    except IOError, e:
+    except IOError as e:
         if e.errno == errno.EPIPE:
             utils.warn("[examine_package] Caught EPIPE; skipping.")
         else:
@@ -616,7 +614,7 @@ def check_daily_lock():
 
         os.open(lockfile,
                 os.O_RDONLY | os.O_CREAT | os.O_EXCL)
-    except OSError, e:
+    except OSError as e:
         if e.errno == errno.EEXIST or e.errno == errno.EACCES:
             raise CantGetLockError
 
@@ -638,10 +636,10 @@ def lock_package(package):
 
     try:
         fd = os.open(path, os.O_CREAT | os.O_EXCL | os.O_RDONLY)
-    except OSError, e:
+    except OSError as e:
         if e.errno == errno.EEXIST or e.errno == errno.EACCES:
             user = pwd.getpwuid(os.stat(path)[stat.ST_UID])[4].split(',')[0].replace('.', '')
-            raise AlreadyLockedError, user
+            raise AlreadyLockedError(user)
 
     try:
         yield fd
@@ -720,7 +718,7 @@ def do_pkg(changes_full_path, session):
                         print "Hello? Operator! Give me the number for 911!"
                         print "Dinstall in the locked area, cant process packages, come back later"
 
-    except AlreadyLockedError, e:
+    except AlreadyLockedError as e:
         print "Seems to be locked by %s already, skipping..." % (e)
 
 def show_new_comments(changes_files, session):
@@ -791,7 +789,7 @@ def main():
     if not Options["No-Action"]:
         try:
             Logger = daklog.Logger("process-new")
-        except CantOpenError, e:
+        except CantOpenError as e:
             Options["Trainee"] = "True"
 
     Sections = Section_Completer(session)
index 94e274687bcd0902f652c91db8756c298f94587d..3f237f626b506b5cb929c4fc4ede505530cc748f 100755 (executable)
@@ -142,7 +142,7 @@ def main():
     if not Options["No-Action"]:
         try:
             Logger = daklog.Logger("process-policy")
-        except CantOpenError, e:
+        except CantOpenError as e:
             Logger = None
 
     # Find policy queue
index bf74baa65be064e356abaa8459b39a6688c85ad9..4d9f3b00b768071363bd9ac74c72cefe19de7e74 100755 (executable)
@@ -229,7 +229,7 @@ def action(u, session):
 
     try:
         chg = session.query(DBChange).filter_by(changesname=os.path.basename(u.pkg.changes_file)).one()
-    except NoResultFound, e:
+    except NoResultFound as e:
         chg = None
 
     if len(u.rejects) > 0:
@@ -458,7 +458,7 @@ def main():
         lock_fd = os.open(os.path.join(cnf["Dir::Lock"], 'dinstall.lock'), os.O_RDWR | os.O_CREAT)
         try:
             fcntl.lockf(lock_fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
-        except IOError, e:
+        except IOError as e:
             if errno.errorcode[e.errno] == 'EACCES' or errno.errorcode[e.errno] == 'EAGAIN':
                 utils.fubar("Couldn't obtain lock; assuming another 'dak process-upload' is already running.")
             else:
index ec7b3a7d2fe55abbf089dcf65f0910f97ef3e1d5..5fd9288a8c6da8711b48e1eff274f213e169c955 100755 (executable)
@@ -312,7 +312,7 @@ def table_row(source, version, arch, last_mod, maint, distribution, closes, fing
         try:
             (login, domain) = sponsor.split("@", 1)
             print "<span class=\"sponsor\">Sponsor: <a href=\"http://qa.debian.org/developer.php?login=%s\">%s</a></span>@debian.org<br/>" % (utils.html_escape(login), utils.html_escape(login))
-        except Exception, e:
+        except Exception as e:
             pass
 
     print "<span class=\"signature\">Fingerprint: %s</span>" % (fingerprint)
@@ -355,7 +355,7 @@ RRA:MAX:0.5:288:795
         try:
             rc = rrdtool.create(*create)
             ru = rrdtool.update(*update)
-        except rrdtool.error, e:
+        except rrdtool.error as e:
             print('warning: queue_report: rrdtool error, skipping %s.rrd: %s' % (type, e))
     except NameError:
         pass
@@ -372,7 +372,7 @@ def process_changes_files(changes_files, type, log, rrd_dir):
             u.load_changes(filename)
             cache[filename] = copy(u.pkg.changes)
             cache[filename]["filename"] = filename
-        except Exception, e:
+        except Exception as e:
             print "WARNING: Exception %s" % e
             continue
     # Divide the .changes into per-source groups
@@ -438,7 +438,7 @@ def process_changes_files(changes_files, type, log, rrd_dir):
                 session = DBConn().session()
                 dbc = session.query(DBChange).filter_by(changesname=changesbase).one()
                 session.close()
-            except Exception, e:
+            except Exception as e:
                 print "Can't find changes file in NEW for %s (%s)" % (changesbase, e)
                 dbc = None
 
@@ -447,7 +447,7 @@ def process_changes_files(changes_files, type, log, rrd_dir):
                     (maintainer["maintainer822"], maintainer["maintainer2047"],
                     maintainer["maintainername"], maintainer["maintaineremail"]) = \
                     fix_maintainer (j["maintainer"])
-                except ParseMaintError, msg:
+                except ParseMaintError as msg:
                     print "Problems while parsing maintainer address\n"
                     maintainer["maintainername"] = "Unknown"
                     maintainer["maintaineremail"] = "Unknown"
@@ -457,7 +457,7 @@ def process_changes_files(changes_files, type, log, rrd_dir):
                     (changeby["changedby822"], changeby["changedby2047"],
                      changeby["changedbyname"], changeby["changedbyemail"]) = \
                      fix_maintainer (j["changed-by"])
-                except ParseMaintError, msg:
+                except ParseMaintError as msg:
                     (changeby["changedby822"], changeby["changedby2047"],
                      changeby["changedbyname"], changeby["changedbyemail"]) = \
                      ("", "", "", "")
index 0a07ce6fbf96a9b43ea81f0d19f066d42150d2f1..3edeac3dc35c3ccdd4a9a736f135426b859461ba 100755 (executable)
--- a/dak/rm.py
+++ b/dak/rm.py
@@ -51,7 +51,7 @@ from daklib.config import Config
 from daklib.dbconn import *
 from daklib import utils
 from daklib.dak_exceptions import *
-from daklib.regexes import re_strip_source_version, re_build_dep_arch
+from daklib.regexes import re_strip_source_version, re_build_dep_arch, re_bin_only_nmu
 import debianbts as bts
 
 ################################################################################
@@ -177,7 +177,7 @@ def reverse_depends_check(removals, suite, arches=None, session=None):
             parsed_dep = []
             try:
                 parsed_dep += apt_pkg.ParseDepends(deps[package])
-            except ValueError, e:
+            except ValueError as e:
                 print "Error for package %s: %s" % (package, e)
             for dep in parsed_dep:
                 # Check for partial breakage.  If a package has a ORed
@@ -236,7 +236,7 @@ def reverse_depends_check(removals, suite, arches=None, session=None):
             build_dep = re_build_dep_arch.sub("", build_dep)
             try:
                 parsed_dep += apt_pkg.ParseDepends(build_dep)
-            except ValueError, e:
+            except ValueError as e:
                 print "Error for source %s: %s" % (source, e)
         for dep in parsed_dep:
             unsat = 0
@@ -666,6 +666,7 @@ def main ():
         Subst_close_other = Subst_common
         bcc = []
         wnpp = utils.parse_wnpp_bug_file()
+        versions = list(set([re_bin_only_nmu.sub('', v) for v in versions]))
         if len(versions) == 1:
             Subst_close_other["__VERSION__"] = versions[0]
         else:
index 4dd603e4bc53f7c8ccfaf750ed0c13f843d84912..7352f71ea928d6bec94ee0b9654d339b174fa3f1 100755 (executable)
@@ -173,7 +173,7 @@ RRA:MAX:0.5:288:795
         try:
             rc = rrdtool.create(*create)
             ru = rrdtool.update(*update)
-        except rrdtool.error, e:
+        except rrdtool.error as e:
             print('warning: queue_report: rrdtool error, skipping %s.rrd: %s' % (type, e))
     except NameError:
         pass
@@ -214,7 +214,7 @@ def get_upload_data(changesfn):
                     os.unlink(lfn)
                 if os.path.exists(qfn):
                     os.symlink(qfn,lfn)
-                    os.chmod(qfn, 0644)
+                    os.chmod(qfn, 0o644)
     return (max(delaydays-1,0)*24*60*60+remainingtime, changesname, delay, uploader, achanges.get('closes','').split(),achanges, delaydays)
 
 def list_uploads(filelist, rrd_dir):
index e2461ad2ef56b82ee0cb19bc7fdb7e14f106dcce..a5eb6b6cd1e5338861b27cfb61e15a7644ca9d2d 100755 (executable)
@@ -135,7 +135,7 @@ def load_transitions(trans_file):
     failure = False
     try:
         trans = yaml.load(sourcecontent)
-    except yaml.YAMLError, exc:
+    except yaml.YAMLError as exc:
         # Someone fucked it up
         print "ERROR: %s" % (exc)
         return None
@@ -225,7 +225,7 @@ def lock_file(f):
         try:
             fcntl.lockf(lock_fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
             return lock_fd
-        except OSError, e:
+        except OSError as e:
             if errno.errorcode[e.errno] == 'EACCES' or errno.errorcode[e.errno] == 'EEXIST':
                 print "Unable to get lock for %s (try %d of 10)" % \
                         (file, retry+1)
@@ -297,7 +297,7 @@ def write_transitions_from_file(from_file):
     else:
         trans = load_transitions(from_file)
         if trans is None:
-            raise TransitionsError, "Unparsable transitions file %s" % (file)
+            raise TransitionsError("Unparsable transitions file %s" % (file))
         write_transitions(trans)
 
 ################################################################################
@@ -319,7 +319,7 @@ def temp_transitions_file(transitions):
     """
 
     (fd, path) = tempfile.mkstemp("", "transitions", Cnf["Dir::TempPath"])
-    os.chmod(path, 0644)
+    os.chmod(path, 0o644)
     f = open(path, "w")
     yaml.dump(transitions, f, default_flow_style=False)
     return path
@@ -589,7 +589,7 @@ def main():
     if Options["import"]:
         try:
             write_transitions_from_file(Options["import"])
-        except TransitionsError, m:
+        except TransitionsError as m:
             print m
             sys.exit(2)
         sys.exit(0)
index 0f1e7a379f8423a3d33ad3416f2c253dcdd11b6a..dfa7ef78b12fefb2f767912fba4eae7d16a0f3c2 100755 (executable)
@@ -46,7 +46,7 @@ from daklib.daklog import Logger
 ################################################################################
 
 Cnf = None
-required_database_schema = 66
+required_database_schema = 67
 
 ################################################################################
 
@@ -134,7 +134,7 @@ Updates dak's database schema to the lastest version. You should disable crontab
 
             self.db = psycopg2.connect(connect_str)
 
-        except Exception, e:
+        except Exception as e:
             print "FATAL: Failed connect to database (%s)" % str(e)
             sys.exit(1)
 
@@ -171,7 +171,7 @@ Updates dak's database schema to the lastest version. You should disable crontab
                 message = "updated database schema from %d to %d" % (database_revision, i+1)
                 print message
                 logger.log([message])
-            except DBUpdateError, e:
+            except DBUpdateError as e:
                 # Seems the update did not work.
                 print "Was unable to update database schema from %d to %d." % (database_revision, i+1)
                 print "The error message received was %s" % (e)
@@ -205,7 +205,7 @@ Updates dak's database schema to the lastest version. You should disable crontab
                 fcntl.lockf(lock_fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
             else:
                 utils.warn("Lock directory doesn't exist yet - not locking")
-        except IOError, e:
+        except IOError as e:
             if errno.errorcode[e.errno] == 'EACCES' or errno.errorcode[e.errno] == 'EAGAIN':
                 utils.fubar("Couldn't obtain lock; assuming another 'dak process-unchecked' is already running.")
 
index bebab6dd1c9c2a252a62592cda1c97e84738a0e2..6db19a711255cfb250a40927b9c28560cb471428 100755 (executable)
@@ -494,6 +494,6 @@ def source_scan_helper(source_id):
     try:
         scanner = SourceContentsScanner(source_id)
         scanner.scan()
-    except Exception, e:
+    except Exception as e:
         print e
 
index 7ececa560ebc74f5405dfc8f73a571b77691a9ca..05ca9b1adaab9770ae6048956b1df1fda00a5e13 100644 (file)
@@ -55,7 +55,7 @@ class Logger(object):
         logdir = Config()["Dir::Log"]
         if not os.path.exists(logdir):
             umask = os.umask(00000)
-            os.makedirs(logdir, 02775)
+            os.makedirs(logdir, 0o2775)
             os.umask(umask)
 
         # Open the logfile
@@ -65,7 +65,7 @@ class Logger(object):
         if debug:
             logfile = sys.stderr
         else:
-            umask = os.umask(00002)
+            umask = os.umask(0o0002)
             logfile = utils.open_file(logfilename, 'a')
             os.umask(umask)
 
index 86fa74d5208a860a718edfa479568fcd0269608a..b709ecf558850f6f4ec2cf405e9e10b6a0c130cd 100644 (file)
@@ -66,9 +66,9 @@ def _func_wrapper(func, *args, **kwds):
     #  messages is a string used for logging
     try:
         return (func(*args, **kwds))
-    except SignalException, e:
+    except SignalException as e:
         return (PROC_STATUS_SIGNALRAISED, e.signum)
-    except Exception, e:
+    except Exception as e:
         return (PROC_STATUS_EXCEPTION, str(e))
     finally:
         # Make sure connections are closed. We might die otherwise.
index 637301871a6bf4495036d8a004d7d3d8086f7fa2..1199311972af74db7b43a241125402018dbecf91 100755 (executable)
@@ -818,7 +818,7 @@ class BuildQueue(object):
                     Logger.log(["I: Removing %s from the queue" % o.fullpath])
                     os.unlink(o.fullpath)
                     killdb = True
-            except OSError, e:
+            except OSError as e:
                 # If it wasn't there, don't worry
                 if e.errno == ENOENT:
                     killdb = True
@@ -1686,7 +1686,7 @@ class Keyring(object):
         key = None
         signingkey = False
 
-        for line in k.xreadlines():
+        for line in k:
             field = line.split(":")
             if field[0] == "pub":
                 key = field[4]
@@ -2824,9 +2824,9 @@ def add_deb_to_db(u, filename, session=None):
     # Find source id
     bin_sources = get_sources_from_name(entry["source package"], entry["source version"], session=session)
     if len(bin_sources) != 1:
-        raise NoSourceFieldError"Unable to find a unique source id for %s (%s), %s, file %s, type %s, signed by %s" % \
+        raise NoSourceFieldError("Unable to find a unique source id for %s (%s), %s, file %s, type %s, signed by %s" % \
                                   (bin.package, bin.version, entry["architecture"],
-                                   filename, bin.binarytype, u.pkg.changes["fingerprint"])
+                                   filename, bin.binarytype, u.pkg.changes["fingerprint"]))
 
     bin.source_id = bin_sources[0].source_id
 
@@ -2834,9 +2834,9 @@ def add_deb_to_db(u, filename, session=None):
         for srcname, version in entry["built-using"]:
             exsources = get_sources_from_name(srcname, version, session=session)
             if len(exsources) != 1:
-                raise NoSourceFieldError"Unable to find source package (%s = %s) in Built-Using for %s (%s), %s, file %s, type %s, signed by %s" % \
+                raise NoSourceFieldError("Unable to find source package (%s = %s) in Built-Using for %s (%s), %s, file %s, type %s, signed by %s" % \
                                           (srcname, version, bin.package, bin.version, entry["architecture"],
-                                           filename, bin.binarytype, u.pkg.changes["fingerprint"])
+                                           filename, bin.binarytype, u.pkg.changes["fingerprint"]))
 
             bin.extra_sources.append(exsources[0])
 
@@ -3684,7 +3684,7 @@ class DBConn(object):
             self.__setuptables()
             self.__setupmappers()
 
-        except OperationalError, e:
+        except OperationalError as e:
             import utils
             utils.fubar("Cannot connect to database (%s)" % str(e))
 
index b44fc2a5775c0fac1e21cb56af3585c6691a31ab..274ef5c12dadc8b6ab6a921c9680770f1628b48c 100755 (executable)
@@ -65,7 +65,7 @@ class BaseFileWriter(object):
     # internal helper function
     def rename(self, filename):
         tempfilename = filename + '.new'
-        os.chmod(tempfilename, 0664)
+        os.chmod(tempfilename, 0o664)
         os.rename(tempfilename, filename)
 
     def close(self):
index edc80533832719cc531209f7194003f70c58ac01..bcd42f61b01aec959d8be734173d2627a9dffbae 100755 (executable)
@@ -58,7 +58,7 @@ def parse_format(txt):
     format = re_verwithext.search(txt)
 
     if format is None:
-        raise UnknownFormatError, txt
+        raise UnknownFormatError(txt)
 
     format = format.groups()
 
@@ -80,7 +80,7 @@ def validate_changes_format(format, field):
     """
 
     if (format < (1, 5) or format > (1, 8)):
-        raise UnknownFormatError, repr(format)
+        raise UnknownFormatError(repr(format))
 
     if field != 'files' and format < (1, 8):
-        raise UnknownFormatError, repr(format)
+        raise UnknownFormatError(repr(format))
index 2f36a696313badb4aad725685f1c1362df6c2765..6c9ce570a863319bde2e3bef679ddcbe264f94eb 100644 (file)
@@ -58,9 +58,9 @@ class Holding(object):
 
         dest = os.path.join(self.holding_dir, base_filename)
         try:
-            fd = os.open(dest, os.O_RDWR | os.O_CREAT | os.O_EXCL, 0640)
+            fd = os.open(dest, os.O_RDWR | os.O_CREAT | os.O_EXCL, 0o640)
             os.close(fd)
-        except OSError, e:
+        except OSError as e:
             # Shouldn't happen, but will if, for example, someone lists a
             # file twice in the .changes.
             if e.errno == EEXIST:
@@ -68,7 +68,7 @@ class Holding(object):
 
         try:
             shutil.copy(filename, dest)
-        except IOError, e:
+        except IOError as e:
             # In either case (ENOENT or EACCES) we want to remove the
             # O_CREAT | O_EXCLed ghost file, so add the file to the list
             # of 'in holding' even if it's not the real file.
index d88cf4faf2a1ad0cd88675a182858c76c836cf12..793b073c927b530fe5c9fcef42801456b569995d 100755 (executable)
@@ -66,7 +66,7 @@ class MetadataScanner(object):
             if self.verbose:
                 print "Imported %s (%s)" % (self.pkid, fullpath)
             session.commit()
-        except Exception, e:
+        except Exception as e:
             print "Failed to import %s [id=%s; fullpath=%s]" % (self.dbclass.__name__, self.pkid, fullpath)
             print "Exception: ", e
             session.rollback()
index 82f3d9b9d9e971dea3783aa782f6f8fd843171db..f6593394645c2c385fbf5ead34830b2bc83c5422 100755 (executable)
@@ -557,7 +557,7 @@ class Upload(object):
         except CantOpenError:
             self.rejects.append("%s: can't read file." % (filename))
             return False
-        except ParseChangesError, line:
+        except ParseChangesError as line:
             self.rejects.append("%s: parse error, can't grok: %s." % (filename, line))
             return False
         except ChangesUnicodeError:
@@ -567,10 +567,10 @@ class Upload(object):
         # Parse the Files field from the .changes into another dictionary
         try:
             self.pkg.files.update(utils.build_file_list(self.pkg.changes))
-        except ParseChangesError, line:
+        except ParseChangesError as line:
             self.rejects.append("%s: parse error, can't grok: %s." % (filename, line))
             return False
-        except UnknownFormatError, format:
+        except UnknownFormatError as format:
             self.rejects.append("%s: unknown format '%s'." % (filename, format))
             return False
 
@@ -608,7 +608,7 @@ class Upload(object):
              self.pkg.changes["maintainername"],
              self.pkg.changes["maintaineremail"]) = \
                    fix_maintainer (self.pkg.changes["maintainer"])
-        except ParseMaintError, msg:
+        except ParseMaintError as msg:
             self.rejects.append("%s: Maintainer field ('%s') failed to parse: %s" \
                    % (filename, self.pkg.changes["maintainer"], msg))
 
@@ -619,7 +619,7 @@ class Upload(object):
              self.pkg.changes["changedbyname"],
              self.pkg.changes["changedbyemail"]) = \
                    fix_maintainer (self.pkg.changes.get("changed-by", ""))
-        except ParseMaintError, msg:
+        except ParseMaintError as msg:
             self.pkg.changes["changedby822"] = ""
             self.pkg.changes["changedby2047"] = ""
             self.pkg.changes["changedbyname"] = ""
@@ -714,7 +714,7 @@ class Upload(object):
         try:
             control = apt_pkg.ParseSection(apt_inst.debExtractControl(deb_file))
         except:
-            self.rejects.append("%s: debExtractControl() raised %s." % (f, sys.exc_type))
+            self.rejects.append("%s: debExtractControl() raised %s." % (f, sys.exc_info()[0]))
             deb_file.close()
             # Can't continue, none of the checks on control would work.
             return
@@ -800,7 +800,7 @@ class Upload(object):
                         else:
                             entry["built-using"].append( (bu_so[0].source, bu_so[0].version, ) )
 
-            except ValueError, e:
+            except ValueError as e:
                 self.rejects.append("%s: Cannot parse Built-Using field: %s" % (f, str(e)))
 
 
@@ -1046,7 +1046,7 @@ class Upload(object):
                    or (dbc.in_queue is not None
                        and dbc.in_queue.queue_name not in ["unchecked", "newstage"]):
                 self.rejects.append("%s file already known to dak" % base_filename)
-        except NoResultFound, e:
+        except NoResultFound as e:
             # not known, good
             pass
 
@@ -1163,9 +1163,9 @@ class Upload(object):
         except CantOpenError:
             if not action:
                 return False, "%s: can't read file." % (dsc_filename)
-        except ParseChangesError, line:
+        except ParseChangesError as line:
             return False, "%s: parse error, can't grok: %s." % (dsc_filename, line)
-        except InvalidDscError, line:
+        except InvalidDscError as line:
             return False, "%s: syntax error on line %s." % (dsc_filename, line)
         except ChangesUnicodeError:
             return False, "%s: dsc file not proper utf-8." % (dsc_filename)
@@ -1199,10 +1199,10 @@ class Upload(object):
         except NoFilesFieldError:
             self.rejects.append("%s: no Files: field." % (dsc_filename))
             return False
-        except UnknownFormatError, format:
+        except UnknownFormatError as format:
             self.rejects.append("%s: unknown format '%s'." % (dsc_filename, format))
             return False
-        except ParseChangesError, line:
+        except ParseChangesError as line:
             self.rejects.append("%s: parse error, can't grok: %s." % (dsc_filename, line))
             return False
 
@@ -1232,7 +1232,7 @@ class Upload(object):
         try:
             # We ignore the return value
             fix_maintainer(self.pkg.dsc["maintainer"])
-        except ParseMaintError, msg:
+        except ParseMaintError as msg:
             self.rejects.append("%s: Maintainer field ('%s') failed to parse: %s" \
                                  % (dsc_filename, self.pkg.dsc["maintainer"], msg))
 
@@ -1325,7 +1325,7 @@ class Upload(object):
         # Extract the source
         try:
             unpacked = UnpackedSource(dsc_filename)
-        except Exception, e:
+        except Exception as e:
             self.rejects.append("'dpkg-source -x' failed for %s. (%s)" % (dsc_filename, str(e)))
             return
 
@@ -1376,7 +1376,7 @@ class Upload(object):
 
         try:
             shutil.rmtree(tmpdir)
-        except OSError, e:
+        except OSError as e:
             if e.errno != errno.EACCES:
                 print "foobar"
                 utils.fubar("%s: couldn't remove tmp dir for source tree." % (self.pkg.dsc["source"]))
@@ -1389,7 +1389,7 @@ class Upload(object):
             if result != 0:
                 utils.fubar("'%s' failed with result %s." % (cmd, result))
             shutil.rmtree(tmpdir)
-        except Exception, e:
+        except Exception as e:
             print "foobar2 (%s)" % e
             utils.fubar("%s: couldn't remove tmp dir for source tree." % (self.pkg.dsc["source"]))
 
@@ -1562,7 +1562,7 @@ class Upload(object):
 
         try:
             lintiantags = yaml.load(sourcecontent)['lintian']
-        except yaml.YAMLError, msg:
+        except yaml.YAMLError as msg:
             utils.fubar("Can not read the lintian tags file %s, YAML error: %s." % (tagfile, msg))
             return
 
@@ -1654,7 +1654,7 @@ class Upload(object):
                         self.rejects.append("%s: has %s file(s) with a time stamp too ancient (e.g. %s [%s])."
                                % (filename, num_ancient_files, ancient_file, time.ctime(ancient_date)))
                 except:
-                    self.rejects.append("%s: deb contents timestamp check failed [%s: %s]" % (filename, sys.exc_type, sys.exc_value))
+                    self.rejects.append("%s: deb contents timestamp check failed [%s: %s]" % (filename, sys.exc_info()[0], sys.exc_info()[1]))
 
     def check_if_upload_is_sponsored(self, uid_email, uid_name):
         uid_email = '@'.join(uid_email.split('@')[:2])
@@ -1868,7 +1868,7 @@ class Upload(object):
         sourcecontent = sourcefile.read()
         try:
             transitions = yaml.load(sourcecontent)
-        except yaml.YAMLError, msg:
+        except yaml.YAMLError as msg:
             # 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.
@@ -2225,7 +2225,7 @@ distribution."""
                 filename = "%s/%s" % (cnf["Dir::BTSVersionTrack"],
                                       self.pkg.changes_file[:-8]+".versions")
                 os.rename(temp_filename, filename)
-                os.chmod(filename, 0644)
+                os.chmod(filename, 0o644)
 
             # Write out the binary -> source mapping.
             (fd, temp_filename) = utils.temp_filename(cnf["Dir::BTSVersionTrack"], prefix=".")
@@ -2240,7 +2240,7 @@ distribution."""
             filename = "%s/%s" % (cnf["Dir::BTSVersionTrack"],
                                   self.pkg.changes_file[:-8]+".debinfo")
             os.rename(temp_filename, filename)
-            os.chmod(filename, 0644)
+            os.chmod(filename, 0o644)
 
         session.commit()
 
@@ -2342,8 +2342,8 @@ distribution."""
             dest_file = os.path.join(cnf["Dir::Reject"], file_entry)
 
             try:
-                dest_fd = os.open(dest_file, os.O_RDWR | os.O_CREAT | os.O_EXCL, 0644)
-            except OSError, e:
+                dest_fd = os.open(dest_file, os.O_RDWR | os.O_CREAT | os.O_EXCL, 0o644)
+            except OSError as e:
                 # File exists?  Let's find a new name by adding a number
                 if e.errno == errno.EEXIST:
                     try:
@@ -2356,8 +2356,8 @@ distribution."""
 
                     # Make sure we really got it
                     try:
-                        dest_fd = os.open(dest_file, os.O_RDWR|os.O_CREAT|os.O_EXCL, 0644)
-                    except OSError, e:
+                        dest_fd = os.open(dest_file, os.O_RDWR|os.O_CREAT|os.O_EXCL, 0o644)
+                    except OSError as e:
                         # Likewise
                         utils.warn("**WARNING** failed to claim %s in the reject directory." % (file_entry))
                         return
@@ -2365,7 +2365,7 @@ distribution."""
                     raise
             # If we got here, we own the destination file, so we can
             # safely overwrite it.
-            utils.move(file_entry, dest_file, 1, perms=0660)
+            utils.move(file_entry, dest_file, 1, perms=0o660)
             os.close(dest_fd)
 
     ###########################################################################
@@ -2431,7 +2431,7 @@ distribution."""
         # so let's just raise an exception ...
         if os.path.exists(reason_filename):
             os.unlink(reason_filename)
-        reason_fd = os.open(reason_filename, os.O_RDWR|os.O_CREAT|os.O_EXCL, 0644)
+        reason_fd = os.open(reason_filename, os.O_RDWR|os.O_CREAT|os.O_EXCL, 0o644)
 
         rej_template = os.path.join(cnf["Dir::Templates"], "queue.rejected")
 
index 85ac701fe38bad3a07c794569bfcb3af019f455d..050691fe3b474f5b7d7feff10bbeac15dd3344f3 100755 (executable)
@@ -48,7 +48,7 @@ def get_format_from_string(txt):
         if format.re_format.match(txt):
             return format
 
-    raise UnknownFormatError, "Unknown format %r" % txt
+    raise UnknownFormatError("Unknown format %r" % txt)
 
 class SourceFormat(type):
     def __new__(cls, name, bases, attrs):
index 3cbcec739cb9e803ecb496550d3a0def64b45b86..03df5d8590657c9273b5eb1e7fac05db2a0ce19c 100644 (file)
@@ -88,7 +88,7 @@ def fix_maintainer(maintainer):
     else:
         m = re_parse_maintainer.match(maintainer)
         if not m:
-            raise ParseMaintError, "Doesn't parse as a valid Maintainer field."
+            raise ParseMaintError("Doesn't parse as a valid Maintainer field.")
         name = m.group(1)
         email = m.group(2)
 
@@ -106,7 +106,7 @@ def fix_maintainer(maintainer):
         rfc2047_maint = "%s <%s>" % (rfc2047_name, email)
 
     if email.find("@") == -1 and email.find("buildd_") != 0:
-        raise ParseMaintError, "No @ found in email address part."
+        raise ParseMaintError("No @ found in email address part.")
 
     return (rfc822_maint, rfc2047_maint, name, email)
 
index 8bc1b2c7c2c4db01405b6d375e8e30d2fb8981ad..40e47c63e45830887d213f10d8d381ebd75457a3 100755 (executable)
@@ -115,7 +115,7 @@ def open_file(filename, mode='r'):
     try:
         f = open(filename, mode)
     except IOError:
-        raise CantOpenError, filename
+        raise CantOpenError(filename)
     return f
 
 ################################################################################
@@ -172,7 +172,7 @@ def parse_deb822(armored_contents, signing_rules=0, keyrings=None, session=None)
     lines = contents.splitlines(True)
 
     if len(lines) == 0:
-        raise ParseChangesError, "[Empty changes file]"
+        raise ParseChangesError("[Empty changes file]")
 
     # Reindex by line number so we can easily verify the format of
     # .dsc files...
@@ -190,7 +190,7 @@ def parse_deb822(armored_contents, signing_rules=0, keyrings=None, session=None)
         line = indexed_lines[index]
         if line == "" and signing_rules == 1:
             if index != num_of_lines:
-                raise InvalidDscError, index
+                raise InvalidDscError(index)
             break
         slf = re_single_line_field.match(line)
         if slf:
@@ -204,7 +204,7 @@ def parse_deb822(armored_contents, signing_rules=0, keyrings=None, session=None)
         mlf = re_multi_line_field.match(line)
         if mlf:
             if first == -1:
-                raise ParseChangesError, "'%s'\n [Multi-line field continuing on from nothing?]" % (line)
+                raise ParseChangesError("'%s'\n [Multi-line field continuing on from nothing?]" % (line))
             if first == 1 and changes[field] != "":
                 changes[field] += '\n'
             first = 0
@@ -223,7 +223,7 @@ def parse_deb822(armored_contents, signing_rules=0, keyrings=None, session=None)
             changes["source-version"] = srcver.group(2)
 
     if error:
-        raise ParseChangesError, error
+        raise ParseChangesError(error)
 
     return changes
 
@@ -257,7 +257,7 @@ def parse_changes(filename, signing_rules=0, dsc_file=0, keyrings=None):
     try:
         unicode(content, 'utf-8')
     except UnicodeError:
-        raise ChangesUnicodeError, "Changes file not proper utf-8"
+        raise ChangesUnicodeError("Changes file not proper utf-8")
     changes = parse_deb822(content, signing_rules, keyrings=keyrings)
 
 
@@ -272,7 +272,7 @@ def parse_changes(filename, signing_rules=0, dsc_file=0, keyrings=None):
                 missingfields.append(keyword)
 
                 if len(missingfields):
-                    raise ParseChangesError, "Missing mandantory field(s) in changes file (policy 5.5): %s" % (missingfields)
+                    raise ParseChangesError("Missing mandantory field(s) in changes file (policy 5.5): %s" % (missingfields))
 
     return changes
 
@@ -350,7 +350,7 @@ def check_size(where, files):
     for f in files.keys():
         try:
             entry = os.stat(f)
-        except OSError, exc:
+        except OSError as exc:
             if exc.errno == 2:
                 # TODO: This happens when the file is in the pool.
                 continue
@@ -559,7 +559,7 @@ def build_file_list(changes, is_a_dsc=0, field="files", hashname="md5sum"):
             else:
                 (md5, size, name) = s
         except ValueError:
-            raise ParseChangesError, i
+            raise ParseChangesError(i)
 
         if section == "":
             section = "-"
@@ -687,14 +687,14 @@ def send_mail (message, filename=""):
                     os.unlink (filename);
                 return;
 
-        fd = os.open(filename, os.O_RDWR|os.O_EXCL, 0700);
+        fd = os.open(filename, os.O_RDWR|os.O_EXCL, 0o700);
         os.write (fd, message_raw.as_string(True));
         os.close (fd);
 
     # Invoke sendmail
     (result, output) = commands.getstatusoutput("%s < %s" % (Cnf["Dinstall::SendmailCommand"], filename))
     if (result != 0):
-        raise SendmailFailedError, output
+        raise SendmailFailedError(output)
 
     # Clean up any temporary files
     if message:
@@ -712,14 +712,14 @@ def poolify (source, component):
 
 ################################################################################
 
-def move (src, dest, overwrite = 0, perms = 0664):
+def move (src, dest, overwrite = 0, perms = 0o664):
     if os.path.exists(dest) and os.path.isdir(dest):
         dest_dir = dest
     else:
         dest_dir = os.path.dirname(dest)
     if not os.path.exists(dest_dir):
         umask = os.umask(00000)
-        os.makedirs(dest_dir, 02775)
+        os.makedirs(dest_dir, 0o2775)
         os.umask(umask)
     #print "Moving %s to %s..." % (src, dest)
     if os.path.exists(dest) and os.path.isdir(dest):
@@ -735,14 +735,14 @@ def move (src, dest, overwrite = 0, perms = 0664):
     os.chmod(dest, perms)
     os.unlink(src)
 
-def copy (src, dest, overwrite = 0, perms = 0664):
+def copy (src, dest, overwrite = 0, perms = 0o664):
     if os.path.exists(dest) and os.path.isdir(dest):
         dest_dir = dest
     else:
         dest_dir = os.path.dirname(dest)
     if not os.path.exists(dest_dir):
         umask = os.umask(00000)
-        os.makedirs(dest_dir, 02775)
+        os.makedirs(dest_dir, 0o2775)
         os.umask(umask)
     #print "Copying %s to %s..." % (src, dest)
     if os.path.exists(dest) and os.path.isdir(dest):
@@ -1549,7 +1549,7 @@ def get_changes_files(from_dir):
         # Much of the rest of p-u/p-a depends on being in the right place
         os.chdir(from_dir)
         changes_files = [x for x in os.listdir(from_dir) if x.endswith('.changes')]
-    except OSError, e:
+    except OSError as e:
         fubar("Failed to read list from directory %s (%s)" % (from_dir, e))
 
     return changes_files
@@ -1581,7 +1581,7 @@ def parse_wnpp_bug_file(file = "/srv/ftp-master.debian.org/scripts/masterfiles/w
     try:
         f = open(file)
         lines = f.readlines()
-    except IOError, e:
+    except IOError as e:
         print "Warning:  Couldn't open %s; don't know about WNPP bugs, so won't close any." % file
        lines = []
     wnpp = {}
index 85a76948d193c5f4a8f4615eb71aa1fdc011236f..20dab4b9e51dfd0d30656a95ea7355941e205002 100755 (executable)
@@ -20,7 +20,7 @@ class ParseChangesTestCase(DakTestCase):
             pass
         except GpgException:
             pass
-        except InvalidDscError, actual_line:
+        except InvalidDscError as actual_line:
             if line is not None:
                 assertEqual(actual_line, line)
 
index 4e8c7ca25e8282497c0dc6eb99e8f6864cd006ab..fc1ad3deb0f1c57d7bc02d4db6b6b375f474a807 100755 (executable)
@@ -103,7 +103,7 @@ def parse_leave_reason(fname):
 
     try:
         f = open(fname)
-    except IOError, e:
+    except IOError as e:
         sys.stderr.write("Can't open %s: %s\n" % (fname, e))
         return {}
 
@@ -210,7 +210,7 @@ if __name__ == "__main__":
     try:
         status.feed_in.write_xml(file(feed_in_file, "w+"), "utf-8")
         status.feed_out.write_xml(file(feed_out_file, "w+"), "utf-8")
-    except IOError, why:
+    except IOError as why:
         sys.stderr.write("Unable to write feeds: %s\n", why)
         sys.exit(1)
 
@@ -218,7 +218,7 @@ if __name__ == "__main__":
 
     try:
         cPickle.dump(status, open(status_db, "w+"))
-    except IOError, why:
+    except IOError as why:
         sys.stderr.write("Unable to save status: %s\n", why)
         sys.exit(1)