]> git.decadent.org.uk Git - dak.git/blob - dak/dakdb/update11.py
Merge branch 'master' into contents
[dak.git] / dak / dakdb / update11.py
1 #!/usr/bin/env python
2 # coding=utf8
3
4 """
5 Adding process-new comments to the DB
6
7 @contact: Debian FTP Master <ftpmaster@debian.org>
8 @copyright: 2009  Joerg Jaspert <joerg@debian.org>
9 @license: GNU General Public License version 2 or later
10 """
11
12 # This program is free software; you can redistribute it and/or modify
13 # it under the terms of the GNU General Public License as published by
14 # the Free Software Foundation; either version 2 of the License, or
15 # (at your option) any later version.
16
17 # This program is distributed in the hope that it will be useful,
18 # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 # GNU General Public License for more details.
21
22 # You should have received a copy of the GNU General Public License
23 # along with this program; if not, write to the Free Software
24 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
25
26 ################################################################################
27
28
29 ################################################################################
30
31 import psycopg2
32 import time
33 from daklib.dak_exceptions import DBUpdateError
34
35 ################################################################################
36
37 def do_update(self):
38     print "Adding process-new comments to the DB"
39
40     try:
41         c = self.db.cursor()
42         c.execute("""CREATE TABLE new_comments (
43                       id SERIAL PRIMARY KEY NOT NULL,
44                       package TEXT NOT NULL,
45                       version TEXT NOT NULL,
46                       comment TEXT NOT NULL,
47                       author TEXT NOT NULL
48                    )""")
49
50         c.execute("GRANT SELECT ON new_comments TO ftptrainee;")
51         c.execute("GRANT INSERT ON new_comments TO ftptrainee;")
52         c.execute("GRANT UPDATE ON new_comments TO ftptrainee;")
53         c.execute("GRANT SELECT ON new_comments TO ftpteam;")
54         c.execute("GRANT INSERT ON new_comments TO ftpteam;")
55         c.execute("GRANT UPDATE ON new_comments TO ftpteam;")
56         c.execute("GRANT ALL ON new_comments TO ftpmaster;")
57
58         c.execute("UPDATE config SET value = '11' WHERE name = 'db_revision'")
59         self.db.commit()
60
61     except psycopg2.ProgrammingError, msg:
62         self.db.rollback()
63         raise DBUpdateError, "Unable to apply process-new comments update, rollback issued. Error message : %s" % (str(msg))