[Collab-qa-commits] r919 - in udd/src: . udd
neronus-guest at alioth.debian.org
neronus-guest at alioth.debian.org
Tue Jul 22 19:04:00 UTC 2008
Author: neronus-guest
Date: 2008-07-22 19:03:59 +0000 (Tue, 22 Jul 2008)
New Revision: 919
Added:
udd/src/udd/bugs_gatherer.pl
Modified:
udd/src/db_manager.py
udd/src/setup-db.sql
udd/src/test.yaml
Log:
Added tables for bugs.debian.org
Write script to import data from bugs.debian.org. Still incomplete
Modified: udd/src/db_manager.py
===================================================================
--- udd/src/db_manager.py 2008-07-21 17:08:45 UTC (rev 918)
+++ udd/src/db_manager.py 2008-07-22 19:03:59 UTC (rev 919)
@@ -6,7 +6,7 @@
"""This scripts sets up and deletes the tables of the database"""
-TABLES = ('sources', 'packages', 'popcon', 'migrations')
+TABLES = ('sources', 'packages', 'popcon', 'migrations', 'bugs', 'bug_merged_with', 'bug_user_tags')
VIEWS = ('popcon_average', 'popcon_max')
def print_help():
Modified: udd/src/setup-db.sql
===================================================================
--- udd/src/setup-db.sql 2008-07-21 17:08:45 UTC (rev 918)
+++ udd/src/setup-db.sql 2008-07-22 19:03:59 UTC (rev 919)
@@ -24,6 +24,17 @@
CREATE TABLE popcon
(Name text, vote int, olde int, recent int, nofiles int, distribution text, UNIQUE (Name, distribution));
+CREATE TABLE bugs
+ (id int, package text, arrival timestamp, status text,
+ severity text, tags text, submitter text, owner text, title text,
+ last_modified timestamp, UNIQUE (id));
+
+CREATE TABLE bug_merged_with
+ (bug int, merged_with int);
+
+CREATE TABLE bug_user_tags
+ (bug_user text, tag text, bug_nr text);
+
CREATE VIEW popcon_average AS
SELECT sources.package, avg(vote) AS vote, avg(olde) AS old, avg(recent) AS recent, avg(nofiles) as nofiles
FROM sources, popcon,
Modified: udd/src/test.yaml
===================================================================
--- udd/src/test.yaml 2008-07-21 17:08:45 UTC (rev 918)
+++ udd/src/test.yaml 2008-07-22 19:03:59 UTC (rev 919)
@@ -1,5 +1,5 @@
general:
- dbname: udd
+ dbname: udd-test
types:
sources: module udd.sources_gatherer
packages: module udd.packages_gatherer
Added: udd/src/udd/bugs_gatherer.pl
===================================================================
--- udd/src/udd/bugs_gatherer.pl (rev 0)
+++ udd/src/udd/bugs_gatherer.pl 2008-07-22 19:03:59 UTC (rev 919)
@@ -0,0 +1,54 @@
+#!/usr/bin/perl
+# Last-Modified: <Tue Jul 22 18:44:19 2008>
+
+use strict;
+use warnings;
+
+use lib qw{/org/udd.debian.net/mirrors/bugs.debian.org/perl};
+
+use DBI;
+use YAML::Syck;
+
+use Debbugs::Bugs qw{get_bugs};
+use Debbugs::Status qw{readbug get_bug_status};
+
+use POSIX qw{strftime};
+
+$YAML::Syck::ImplicitTyping = 1;
+
+sub main {
+ if(@ARGV != 2) {
+ print STDERR "Usage: $0 <config> <source>";
+ exit 1;
+ }
+
+ my $config = LoadFile($ARGV[0]) or die "Could not load configuration: $!";
+ my $source = $ARGV[1];
+
+ my $dbname = $config->{general}->{dbname};
+ # Connection to DB
+ my $dbh = DBI->connect("dbi:Pg:dbname=$dbname");
+ # We want to commit the transaction as a hole at the end
+ $dbh->{AutoCommit} = 0;
+
+ $dbh->prepare("DELETE FROM bugs")->execute();
+
+ # Read all bugs
+ foreach my $bug_nr (get_bugs()) {
+ my %bug = %{readbug($bug_nr)};
+ # Construct insertion query
+ my $date = strftime("%Y-%m-%d %T", localtime($bug{date}));
+ my $log_modified = strftime("%Y-%m-%d %T", localtime($bug{log_modified}));
+ map { $bug{$_} = $dbh->quote($bug{$_}) } qw(subject originator owner);
+ my $query = "INSERT INTO bugs VALUES ($bug_nr, '$bug{package}', '$date', \
+ NULL, '$bug{severity}', '$bug{keywords}', $bug{originator}, $bug{owner}, \
+ $bug{subject}, '$log_modified')";
+ # Execute insertion
+ my $sth = $dbh->prepare($query);
+ $sth->execute() or die $!;
+ }
+
+ $dbh->commit();
+}
+
+main();
More information about the Collab-qa-commits
mailing list