[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[dak/master 2/4] buildd



lock the buildd push, only one can go out at any time.

Signed-off-by: Joerg Jaspert <joerg@debian.org>
---
 config/debian/common             |   14 ++++++++++++++
 config/debian/cron.buildd        |    6 ------
 config/debian/cron.unchecked     |    4 ++--
 config/debian/dinstall.functions |    2 +-
 config/debian/dinstall.variables |    3 +++
 5 files changed, 20 insertions(+), 9 deletions(-)
 delete mode 100755 config/debian/cron.buildd

diff --git a/config/debian/common b/config/debian/common
index 4a0d6cb..38d9561 100644
--- a/config/debian/common
+++ b/config/debian/common
@@ -25,6 +25,20 @@ function debug () {
     fi
 }
 
+function wbtrigger() {
+    MODE=${1:-"often"}
+    SSHOPT="-o BatchMode=yes -o ConnectTimeout=30 -o SetupTimeout=240"
+    if lockfile -r 3 -l 3600 "${LOCK_BUILDD}"; then
+        if [ "x${MODE}x" = "xdailyx" ]; then
+            ssh -o ${SSHOPT} wbadm@buildd /org/wanna-build/trigger.daily || echo "W-B trigger.daily failed" | mail -s "W-B Daily trigger failed" ftpmaster@ftp-master.debian.org
+        elif [ "x${MODE}x" = "xoftenx" ]; then
+            ssh -q -q ${SSHOPT} wbadm@buildd /org/wanna-build/trigger.often
+        else
+            log_error "Unknown wb trigger mode called"
+        fi
+    fi
+}
+
 # used by cron.dinstall *and* cron.unchecked.
 function make_buildd_dir () {
     dak manage-build-queues -v buildd
diff --git a/config/debian/cron.buildd b/config/debian/cron.buildd
deleted file mode 100755
index a5490e5..0000000
--- a/config/debian/cron.buildd
+++ /dev/null
@@ -1,6 +0,0 @@
-#! /bin/sh
-#
-# Called from cron.unchecked to update wanna-build, each time it runs.
-#
-ssh -q -q -o BatchMode=yes -o ConnectTimeout=30 -o SetupTimeout=240 wbadm@buildd /org/wanna-build/trigger.often
-exit 0
diff --git a/config/debian/cron.unchecked b/config/debian/cron.unchecked
index 3716712..ee95878 100755
--- a/config/debian/cron.unchecked
+++ b/config/debian/cron.unchecked
@@ -33,6 +33,7 @@ LOCKDAILY=""
 LOCKFILE="$lockdir/unchecked.lock"
 LOCK_NEW="$lockdir/processnew.lock"
 NOTICE="$lockdir/daily.lock"
+LOCK_BUILDD="$lockdir/buildd.lock"
 
 # our name
 PROGRAM="unchecked"
@@ -69,8 +70,7 @@ function do_buildd () {
             fi
         done
         make_buildd_dir
-
-        . $configdir/cron.buildd
+        wbtrigger "often"
     fi
 }
 
diff --git a/config/debian/dinstall.functions b/config/debian/dinstall.functions
index f1e49e4..77ef651 100644
--- a/config/debian/dinstall.functions
+++ b/config/debian/dinstall.functions
@@ -418,7 +418,7 @@ function mirror() {
 
 function wb() {
     log "Trigger daily wanna-build run"
-    ssh -o BatchMode=yes -o SetupTimeOut=90 -o ConnectTimeout=90 wbadm@buildd /org/wanna-build/trigger.daily || echo "W-B trigger.daily failed" | mail -s "W-B Daily trigger failed" ftpmaster@ftp-master.debian.org
+    wbtrigger "daily"
 }
 
 function expire() {
diff --git a/config/debian/dinstall.variables b/config/debian/dinstall.variables
index be5b382..353a3ae 100644
--- a/config/debian/dinstall.variables
+++ b/config/debian/dinstall.variables
@@ -38,3 +38,6 @@ LOCK_BRITNEY="$lockdir/britney.lock"
 # If this file exists we exit immediately after the currently running
 # function is done
 LOCK_STOP="$lockdir/archive.stop"
+
+# Lock buildd updates
+LOCK_BUILDD="$lockdir/buildd.lock"
-- 
1.6.3.3



Reply to: