]> git.decadent.org.uk Git - dak.git/commitdiff
Merge remote branch 'twerner/msfl' into merge
authorJoerg Jaspert <joerg@debian.org>
Sun, 4 Jul 2010 20:20:27 +0000 (22:20 +0200)
committerJoerg Jaspert <joerg@debian.org>
Sun, 4 Jul 2010 20:20:27 +0000 (22:20 +0200)
* twerner/msfl:
  introduce defaultThreadCount
  add key Common::ThreadCount to dak.conf

Signed-off-by: Joerg Jaspert <joerg@debian.org>
config/debian/cron.weekly
config/debian/dak.conf
config/debian/dinstall.functions
config/debian/vars
dak/admin.py
scripts/debian/dm-monitor
scripts/debian/generate-d-i

index 7bc47449287ff59752c9462bdd73bca1d9254045..45677cd97bb854b790a6d1f7cf94f2e9434dd905 100755 (executable)
@@ -35,9 +35,6 @@ fi
 echo "Splitting queue/done"
 dak split-done > /dev/null
 
-# Vacuum the database
-echo "VACUUM; VACUUM ANALYZE;" | psql --no-psqlrc projectb 2>&1
-
 # Do git cleanup stuff
 echo "Doing git stuff"
 cd /srv/ftp.debian.org/git/dak.git
index 2eaccd7641b512c870650902e4e72942baef0e08..16120d8eb9dcefa8be65057feab9df069551fa50 100644 (file)
@@ -494,7 +494,7 @@ DB
 {
   Name "projectb";
   Host "";
-  Port -1;
+  Port 5433;
 };
 
 Architectures
index 34664c7df453fae34fa5ea29c365d55bcfbf9032..567516d7206f44aca107c088328436ff196a66ba 100644 (file)
@@ -37,15 +37,15 @@ function merkel1() {
 
 # Create the postgres dump files
 function pgdump_pre() {
-    log "Creating pre-daily-cron-job backup of projectb database..."
-    pg_dump projectb > $base/backup/dump_pre_$(date +%Y.%m.%d-%H:%M:%S)
+    log "Creating pre-daily-cron-job backup of $PGDATABASE database..."
+    pg_dump > $base/backup/dump_pre_$(date +%Y.%m.%d-%H:%M:%S)
 }
 
 function pgdump_post() {
-    log "Creating post-daily-cron-job backup of projectb database..."
+    log "Creating post-daily-cron-job backup of $PGDATABASE database..."
     cd $base/backup
     POSTDUMP=$(date +%Y.%m.%d-%H:%M:%S)
-    pg_dump projectb > $base/backup/dump_$POSTDUMP
+    pg_dump > $base/backup/dump_$POSTDUMP
     #pg_dumpall --globals-only > $base/backup/dumpall_$POSTDUMP
     ln -sf $base/backup/dump_$POSTDUMP current
     #ln -sf $base/backup/dumpall_$POSTDUMP currentall
@@ -53,11 +53,21 @@ function pgdump_post() {
 
 # Load the dak-dev projectb
 function pgdakdev() {
+    # Make sure to unset any possible psql variables so we don't drop the wrong
+    # f****** database by accident
+    local PGDATABASE
+    unset PGDATABASE
+    local PGHOST
+    unset PGHOST
+    local PGPORT
+    unset PGPORT
+    local PGUSER
+    unset PGUSER
     cd $base/backup
-    echo "drop database projectb" | psql -p 5433 template1
+    echo "drop database projectb" | psql -p 5434 template1
        #cat currentall | psql -p 5433 template1
-    createdb -p 5433 -T template1 projectb
-    fgrep -v '\connect' current | psql -p 5433 projectb
+    createdb -p 5434 -T template1 projectb
+    fgrep -v '\connect' current | psql -p 5434 projectb
 }
 
 # Updating various files
@@ -312,8 +322,8 @@ function mkfilesindices() {
 
     ARCHLIST=$(tempfile)
 
-    log "Querying projectb..."
-    echo 'SELECT l.path, f.filename, a.arch_string FROM location l JOIN files f ON (f.location = l.id) LEFT OUTER JOIN (binaries b JOIN architecture a ON (b.architecture = a.id)) ON (f.id = b.file)' | psql projectb -At | sed 's/|//;s,^/srv/ftp-master.debian.org/ftp,.,' | sort >$ARCHLIST
+    log "Querying $PGDATABASE..."
+    echo 'SELECT l.path, f.filename, a.arch_string FROM location l JOIN files f ON (f.location = l.id) LEFT OUTER JOIN (binaries b JOIN architecture a ON (b.architecture = a.id)) ON (f.id = b.file)' | psql -At | sed 's/|//;s,^/srv/ftp-master.debian.org/ftp,.,' | sort >$ARCHLIST
 
     includedirs () {
         perl -ne 'print; while (m,/[^/]+$,) { $_=$`; print $_ . "\n" unless $d{$_}++; }'
@@ -346,12 +356,12 @@ function mkfilesindices() {
     log "Generating suite lists"
 
     suite_list () {
-        printf 'SELECT DISTINCT l.path, f.filename FROM (SELECT sa.source AS source FROM src_associations sa WHERE sa.suite = %d UNION SELECT b.source AS source FROM bin_associations ba JOIN binaries b ON (ba.bin = b.id) WHERE ba.suite = %d) s JOIN dsc_files df ON (s.source = df.source) JOIN files f ON (df.file = f.id) JOIN location l ON (f.location = l.id)\n' $1 $1 | psql -F' ' -A -t projectb
+        printf 'SELECT DISTINCT l.path, f.filename FROM (SELECT sa.source AS source FROM src_associations sa WHERE sa.suite = %d UNION SELECT b.source AS source FROM bin_associations ba JOIN binaries b ON (ba.bin = b.id) WHERE ba.suite = %d) s JOIN dsc_files df ON (s.source = df.source) JOIN files f ON (df.file = f.id) JOIN location l ON (f.location = l.id)\n' $1 $1 | psql -F' ' -A -t
 
-        printf 'SELECT l.path, f.filename FROM bin_associations ba JOIN binaries b ON (ba.bin = b.id) JOIN files f ON (b.file = f.id) JOIN location l ON (f.location = l.id) WHERE ba.suite = %d\n' $1 | psql -F' ' -A -t projectb
+        printf 'SELECT l.path, f.filename FROM bin_associations ba JOIN binaries b ON (ba.bin = b.id) JOIN files f ON (b.file = f.id) JOIN location l ON (f.location = l.id) WHERE ba.suite = %d\n' $1 | psql -F' ' -A -t
     }
 
-    printf 'SELECT id, suite_name FROM suite\n' | psql -F' ' -At projectb |
+    printf 'SELECT id, suite_name FROM suite\n' | psql -F' ' -At |
     while read id suite; do
         [ -e $base/ftp/dists/$suite ] || continue
         (
@@ -458,7 +468,7 @@ function bts() {
 
 function merkel2() {
     # Push dak@merkel so it syncs the projectb there. Returns immediately, the sync runs detached
-    log "Trigger merkel/flotows projectb sync"
+    log "Trigger merkel/flotows $PGDATABASE sync"
     ssh -2 -o BatchMode=yes -o SetupTimeOut=30 -o ConnectTimeout=30 -i ~/.ssh/push_merkel_projectb dak@merkel.debian.org sleep 1
     # Also trigger flotow, the ftpmaster test box
     ssh -2 -o BatchMode=yes -o SetupTimeOut=30 -o ConnectTimeout=30 -i ~/.ssh/push_flotow_projectb dak@flotow.debconf.org sleep 1
index 94182692d94540edd7c98e7bd1b37324488982f3..2a3200cfc2e0c4e7541e38edbe4910522e289019 100644 (file)
@@ -33,3 +33,5 @@ copyoverrides="etch.contrib etch.contrib.src etch.main etch.main.src etch.non-fr
 PATH=$masterdir:$PATH
 umask 022
 
+# Set the database variables
+eval $(dak admin config db-shell)
index dbf1d45d5df1c097f499608d5a20826b22de89f4..2bb1f1853187af821ccf06c317bf40cc6de8aefd 100755 (executable)
@@ -55,6 +55,10 @@ Perform administrative work on the dak database.
 
   Commands can use a long or abbreviated form:
 
+  config / c:
+     c db                   show db config
+     c db-shell             show db config in a usable form for psql
+
   architecture / a:
      a list                 show a list of architectures
      a rm ARCH              remove an architecture (will only work if
@@ -323,6 +327,46 @@ dispatch['s-a'] = suite_architecture
 
 ################################################################################
 
+def show_config(command):
+    args = [str(x) for x in command]
+    cnf = utils.get_conf()
+
+    die_arglen(args, 2, "E: config needs at least a command")
+
+    mode = args[1].lower()
+
+    if mode == 'db':
+        connstr = ""
+        if cnf["DB::Host"]:
+            # TCP/IP
+            connstr = "postgres://%s" % cnf["DB::Host"]
+            if cnf["DB::Port"] and cnf["DB::Port"] != "-1":
+                connstr += ":%s" % cnf["DB::Port"]
+            connstr += "/%s" % cnf["DB::Name"]
+        else:
+            # Unix Socket
+            connstr = "postgres:///%s" % cnf["DB::Name"]
+            if cnf["DB::Port"] and cnf["DB::Port"] != "-1":
+                connstr += "?port=%s" % cnf["DB::Port"]
+        print connstr
+    elif mode == 'db-shell':
+        e = ['PGDATABASE']
+        print "PGDATABASE=%s" % cnf["DB::Name"]
+        if cnf["DB::Host"]:
+            print "PGHOST=%s" % cnf["DB::Host"]
+            e.append('PGHOST')
+        if cnf["DB::Port"] and cnf["DB::Port"] != "-1":
+            print "PGPORT=%s" % cnf["DB::Port"]
+            e.append('PGPORT')
+        print "export " + " ".join(e)
+    else:
+        die("E: config command unknown")
+
+dispatch['config'] = show_config
+dispatch['c'] = show_config
+
+################################################################################
+
 def main():
     """Perform administrative work on the dak database"""
     global dryrun
index 93e36472cf8e243f519b9c48dd7bd1f4481aa6a0..92a945d52646dcf850fbbae087f6f0865979d9d0 100755 (executable)
@@ -2,7 +2,9 @@
 
 echo "Known debian maintainers:"
 
-psql --html projectb <<EOF
+eval $(dak admin config db-shell)
+
+psql --html <<EOF
   SELECT uid.uid, uid.name, f.fingerprint
     FROM uid LEFT OUTER JOIN fingerprint f ON (uid.id = f.uid) 
    WHERE uid.uid LIKE '%@%'
@@ -11,7 +13,7 @@ EOF
 
 echo "Debian maintainers not able to update any packages:"
 
-psql --html projectb <<EOF
+psql --html <<EOF
   SELECT uid.uid, uid.name
     FROM uid 
    WHERE uid.uid LIKE 'dm:%'
@@ -30,7 +32,7 @@ EOF
 
 echo "Packages debian maintainers may update:"
 
-psql --html projectb <<EOF
+psql --html <<EOF
   SELECT s.source, space_separated_list(s.version), u.uid
     FROM src_uploaders su JOIN source s ON (su.source = s.id) 
          JOIN src_associations sa ON (s.id = sa.source)
@@ -43,7 +45,7 @@ EOF
 
 echo "Source packages in the pool uploaded by debian maintainers:"
 
-psql --html projectb <<EOF
+psql --html <<EOF
   SELECT s.source, s.version, s.install_date, u.uid
     FROM source s JOIN fingerprint f ON (s.sig_fpr = f.id) 
          JOIN uid u ON (f.uid = u.id)
@@ -53,7 +55,7 @@ EOF
 
 echo "Binary packages in the pool uploaded by debian maintainers:"
 
-psql --html projectb <<EOF
+psql --html <<EOF
   SELECT b.package, b.version, a.arch_string AS arch, u.uid
     FROM binaries b JOIN architecture a ON (b.architecture = a.id)
          JOIN fingerprint f ON (b.sig_fpr = f.id) 
@@ -64,7 +66,7 @@ EOF
 
 echo "Recorded Uploaders:"
 
-psql --html projectb <<EOF
+psql --html <<EOF
   SELECT s.source, s.version, m.name
     FROM src_uploaders su JOIN source s ON (su.source = s.id) 
          JOIN maintainer m ON (su.maintainer = m.id)
@@ -73,7 +75,7 @@ EOF
 
 echo "Keys without a recorded uid:"
 
-psql --html projectb <<EOF
+psql --html <<EOF
   SELECT *
     FROM fingerprint f
    WHERE f.uid IS NULL;
index db3808392c3acdda31a94c1741d6199e5fcf3df0..4e2587faea2292368940066134ee5230a0a4ddb9 100755 (executable)
@@ -12,7 +12,7 @@ exec > $webdir/d-i 2>&1
 
 
 echo "udeb's in testing that don't (anymore) correspond to any testing source:"
-psql projectb -c "select b.package, b.version, (SELECT arch_string from
+psql -c "select b.package, b.version, (SELECT arch_string from
 architecture where b.architecture=architecture.id) as arch, s.source from
 bin_associations ba LEFT JOIN binaries b on (ba.bin=b.id) LEFT JOIN source s
 on (b.source=s.id) WHERE ba.suite=4 AND s.id NOT IN (SELECT source from
@@ -20,7 +20,7 @@ src_associations WHERE suite=4) AND b.type = 'udeb' ORDER BY s.source,
 b.package, b.architecture;"
 
 echo "udeb's in unstable that should be in testing too:"
-psql projectb -c "select b.package, b.version, (SELECT arch_string from
+psql -c "select b.package, b.version, (SELECT arch_string from
 architecture where b.architecture=architecture.id) as arch, s.source from
 bin_associations ba LEFT JOIN binaries b on (ba.bin=b.id) LEFT JOIN source s
 on (b.source=s.id) WHERE ba.suite=5 AND NOT EXISTS (SELECT 1 FROM
@@ -29,7 +29,7 @@ source from src_associations WHERE suite=4) AND b.type = 'udeb' AND
 b.architecture NOT IN (4,8,12) ORDER BY s.source, b.package, b.architecture;"
 
 echo "udeb's in t-p-u that should be in testing too:"
-psql projectb -c "select b.package, b.version, (SELECT arch_string from
+psql -c "select b.package, b.version, (SELECT arch_string from
 architecture where b.architecture=architecture.id) as arch, s.source from
 bin_associations ba LEFT JOIN binaries b on (ba.bin=b.id) LEFT JOIN source s
 on (b.source=s.id) WHERE ba.suite=3 AND NOT EXISTS (SELECT 1 FROM