stage $GO
GO=(
- FUNC="merkel1"
+ FUNC="qa1"
TIME="init"
ARGS=""
ERR="false"
)
stage $GO &
-GO=(
- FUNC="merkel2"
- TIME="merkel projectb push"
- ARGS=""
- ERR="false"
-)
-stage $GO &
-
GO=(
FUNC="mirrorpush"
TIME="mirrorpush"
rm -f "${LOCK_BRITNEY}"
GO=(
- FUNC="merkel3"
- TIME="merkel ddaccessible sync"
+ FUNC="ddaccess"
+ TIME="ddaccessible sync"
ARGS=""
ERR="false"
)
$base/dak/tools/queue_rss.py -q $queuedir/new -o $webdir/rss/ -d $base/misc -l $base/log/
$base/dak/tools/removals.pl $configdir/removalsrss.rc > $webdir/rss/removals.rss
+# Tell ries to sync its tree
+ssh -o Batchmode=yes -o ConnectTimeout=30 -o SetupTimeout=30 -2 -i ${base}/s3kr1t/pushddmirror dak@ries.debian.org sync
+
$scriptsdir/generate-di
{
Service "projectb";
// PoolSize should be at least ThreadCount + 1
- PoolSize 17;
+ PoolSize 5;
// MaxOverflow shouldn't exceed postgresql.conf's max_connections - PoolSize
MaxOverflow 13;
// should be false for encoding == SQL_ASCII
DakConfig "/srv/ftp-master.debian.org/dak/config/debian/dak.conf";
AptConfig "/srv/ftp-master.debian.org/dak/config/debian/apt.conf";
}
+ ries.debian.org
+ {
+ AllowLocalConfig "false";
+ DatabaseHostname "ftp-master";
+ DakConfig "/srv/ftp-master.debian.org/dak/config/debian/dak.conf";
+ AptConfig "/srv/ftp-master.debian.org/dak/config/debian/apt.conf";
+ }
}
########################################################################
# pushing merkels QA user, part one
-function merkel1() {
- log "Telling merkels QA user that we start dinstall"
+function qa1() {
+ log "Telling QA user that we start dinstall"
ssh -2 -i ~dak/.ssh/push_merkel_qa -o BatchMode=yes -o SetupTimeOut=90 -o ConnectTimeout=90 qa@qa.debian.org sleep 1
}
-# Create the postgres dump files
-function pgdump_pre() {
- 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 $PGDATABASE database..."
- cd $base/backup
- POSTDUMP=$(date +%Y.%m.%d-%H:%M:%S)
- 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
-}
-
# Updating various files
function updates() {
log "Updating Bugs docu, Mirror list and mailing-lists.txt"
dak bts-categorize
}
-function merkel2() {
- # Push dak@merkel so it syncs the projectb there. Returns immediately, the sync runs detached
- 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
-}
-
-function merkel3() {
- # Push dak@merkel to tell it to sync the dd accessible parts. Returns immediately, the sync runs detached
- log "Trigger merkels dd accessible parts sync"
- ssh -2 -o BatchMode=yes -o SetupTimeOut=30 -o ConnectTimeout=30 -i ~/.ssh/push_merkel_ddaccess dak@merkel.debian.org sleep 1
+function ddaccess() {
+ # Tell our dd accessible mirror to sync itself up. Including ftp dir.
+ log "Trigger dd accessible parts sync including ftp dir"
+ ssh -o Batchmode=yes -o ConnectTimeout=30 -o SetupTimeout=30 -2 -i ${base}/s3kr1t/pushddmirror dak@ries.debian.org pool
}
function mirrorpush() {
--- /dev/null
+#!/bin/bash
+
+# Copyright (C) 2011 Joerg Jaspert <joerg@debian.org>
+#
+# 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; version 2.
+#
+# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+
+set -e
+set -u
+set -E
+
+export LANG=C
+export LC_ALL=C
+
+export SCRIPTVARS=/srv/ftp-master.debian.org/dak/config/debian/vars
+. $SCRIPTVARS
+
+EXTRA=""
+
+check_commandline() {
+ while [ $# -gt 0 ]; do
+ case "$1" in
+ sync)
+ EXTRA="--exclude ftp/"
+ ;;
+ pool)
+ ;;
+ *)
+ echo "Unknown option ${1} ignored"
+ ;;
+ esac
+ shift # Check next set of parameters.
+ done
+}
+
+if [ $# -gt 0 ]; then
+ ORIGINAL_COMMAND=$*
+else
+ ORIGINAL_COMMAND=""
+fi
+
+SSH_ORIGINAL_COMMAND=${SSH_ORIGINAL_COMMAND:-""}
+if [ -n "${SSH_ORIGINAL_COMMAND}" ]; then
+ set "nothing" "${SSH_ORIGINAL_COMMAND}"
+ shift
+ check_commandline $*
+fi
+
+if [ -n "${ORIGINAL_COMMAND}" ]; then
+ set ${ORIGINAL_COMMAND}
+ check_commandline $*
+fi
+
+
+cleanup() {
+ rm -f "${HOME}/sync.lock"
+}
+trap cleanup EXIT TERM HUP INT QUIT
+
+# not using $lockdir as thats inside the rsync dir, and --delete would
+# kick the lock away. Yes we could exclude it, but wth bother?
+#
+# Also, NEVER use --delete-excluded!
+if lockfile -r3 ${HOME}/sync.lock; then
+ cd $base/
+ rsync -aH -B8192 \
+ --exclude backup/*.xz \
+ --exclude backup/dump* \
+ ${EXTRA} \
+ --exclude mirror \
+ --exclude morgue/ \
+ --exclude=lost+found/ \
+ --exclude .da-backup.trace \
+ --delete \
+ --delete-after \
+ --timeout 3600 \
+ -e 'ssh -o ConnectTimeout=30 -o SetupTimeout=30' \
+ ftpmaster-sync:/srv/ftp-master.debian.org/ .
+
+ cd $public/
+ rsync -aH -B8192 \
+ --exclude mirror \
+ --exclude rsync/ \
+ --exclude=lost+found/ \
+ --exclude .da-backup.trace \
+ --exclude web-users/ \
+ --delete \
+ --delete-after \
+ --timeout 3600 \
+ -e 'ssh -o ConnectTimeout=30 -o SetupTimeout=30' \
+ ftpmaster-sync2:/srv/ftp.debian.org/ .
+
+else
+ echo "Couldn't get the lock, not syncing"
+ exit 0
+fi
+
+
+## ftpmaster-sync is defined in .ssh/config as:
+# Host ftpmaster-sync
+# Hostname franck.debian.org
+# User dak
+# IdentityFile ~dak/.ssh/syncftpmaster
+# ForwardX11 no
+# ForwardAgent no
+# StrictHostKeyChecking yes
+# PasswordAuthentication no
+# BatchMode yes
+
+## ftpmaster-sync2 is the same, just a second ssh key
connstr += "?port=%s" % cnf["DB::Port"]
print connstr
elif mode == 'db-shell':
+ e = []
if cnf.has_key("DB::Service"):
e.append('PGSERVICE')
print "PGSERVICE=%s" % cnf["DB::Service"]