[Collab-qa-commits] r385 - in debcluster/scripts: cronjobs tasks
lucas at alioth.debian.org
lucas at alioth.debian.org
Tue Aug 21 13:32:03 UTC 2007
Author: lucas
Date: 2007-08-21 13:32:03 +0000 (Tue, 21 Aug 2007)
New Revision: 385
Added:
debcluster/scripts/tasks/buildpackagepb.rb
Modified:
debcluster/scripts/cronjobs/update-env.bash
debcluster/scripts/tasks/bdfh-prepare.bash
debcluster/scripts/tasks/preparenode.rb
Log:
various uncommitted stuff in debcluster
Modified: debcluster/scripts/cronjobs/update-env.bash
===================================================================
--- debcluster/scripts/cronjobs/update-env.bash 2007-08-21 13:29:27 UTC (rev 384)
+++ debcluster/scripts/cronjobs/update-env.bash 2007-08-21 13:32:03 UTC (rev 385)
@@ -3,4 +3,4 @@
ENV=sid-x64-base-1.0
~/collab-qa/debcluster/scripts/update-mirror-debian.bash
~/collab-qa/debcluster/scripts/update-mirror-ubuntu.bash
-ssh gdx "oarsub -q deploy -l nodes=1,walltime=0:20 \"/home/grenoble/lnussbaum/katapult --deploy-env ${ENV} --copy-ssh-key /home/grenoble/lnussbaum/startnodes.rb /debcluster-scripts/scripts/tasks/updateschroots.rb sid32-source sid64-source sid32-piuparts-source\""
+ssh gdx "oarsub -q deploy -l nodes=1,walltime=0:20 \"/home/grenoble/lnussbaum/katapult --deploy-env ${ENV} --copy-ssh-key /home/grenoble/lnussbaum/startnodes.rb /debcluster-scripts/scripts/tasks/updateschroots.rb sid32-source sid32-piuparts-source\""
Modified: debcluster/scripts/tasks/bdfh-prepare.bash
===================================================================
--- debcluster/scripts/tasks/bdfh-prepare.bash 2007-08-21 13:29:27 UTC (rev 384)
+++ debcluster/scripts/tasks/bdfh-prepare.bash 2007-08-21 13:32:03 UTC (rev 385)
@@ -7,7 +7,7 @@
apt-get -y install lvm2
- dd if=/dev/zero of=/tmp/bdfh-rootfs bs=1k seek=50M count=1
+ dd if=/dev/zero of=/debscratch/bdfh-rootfs bs=1k seek=50M count=1
if [ -b /dev/loop0 ]; then
LOOP=/dev/loop0
elif [ -b /dev/loop/0 ]; then
@@ -16,21 +16,23 @@
echo "No loop?"
exit
fi
- losetup $LOOP /tmp/bdfh-rootfs
+ losetup $LOOP /debscratch/bdfh-rootfs
pvcreate $LOOP
vgcreate lvmloop $LOOP
lvcreate -L 25G -n root-bdfh lvmloop
mkfs.ext3 /dev/lvmloop/root-bdfh
mkdir /mnt/root-bdfh || true
mount /dev/lvmloop/root-bdfh /mnt/root-bdfh
+ cp /debcluster-data/ssh/* /root/.ssh/
+ chmod 600 /root/.ssh/id_dsa*
rsync -avz root at idpot.grenoble.grid5000.fr:/scratch/grenoble/lnussbaum/debcluster-data/root-bdfh/ /mnt/root-bdfh
umount /mnt/root-bdfh
fi
-if [ -d /mnt/bdfh-tmp -a $(mount |grep /mnt/bdfh-tmp | wc -l) -eq 1 ]; then
+if [ -d /mnt/bdfh-tmp -a $(mount |grep /mnt/bdfh-tmp | wc -l) -gt 0 ]; then
while fuser -k -9 -m /mnt/bdfh-tmp; do
sleep 1
done
- umount -f -l /mnt/bdfh-tmp || true
+ umount -f /mnt/bdfh-tmp || true
fi
lvremove -f /dev/lvmloop/bdfh-tmp || true
[ -d /mnt/bdfh-tmp ] || mkdir /mnt/bdfh-tmp
Added: debcluster/scripts/tasks/buildpackagepb.rb
===================================================================
--- debcluster/scripts/tasks/buildpackagepb.rb (rev 0)
+++ debcluster/scripts/tasks/buildpackagepb.rb 2007-08-21 13:32:03 UTC (rev 385)
@@ -0,0 +1,113 @@
+#!/usr/bin/ruby1.8 -w
+
+require 'optparse'
+
+package = nil
+version = nil
+chroot = nil
+logfile = nil
+time = 0
+copyres = nil
+
+opts = OptionParser::new do |opts|
+ opts.banner = "Usage: ./buildpackage.rb [options]"
+ opts.separator ""
+ opts.separator "Options:"
+ opts.on("-p", "--package PACKAGE", "") { |p| package = p }
+ opts.on("-v", "--version VERSION", "") { |v| version = v }
+ opts.on("-c", "--chroot CHROOT", "") { |c| chroot = c }
+ opts.on("-t", "--time TIME", "") { |t| time = t.to_i }
+ opts.on("-l", "--log LOGFILE", "Specify log file") { |l| logfile = l }
+ opts.on("-b", "--backup LOCATION", "Backup result to location") { |l| copyres = l }
+end
+opts.parse!(ARGV)
+
+wdir = `mktemp -d /tmp/pbuild.XXXXXX`.chomp
+# cleanup
+Dir::chdir(wdir)
+system("mkdir result")
+
+if logfile != nil
+ system("mkdir -p #{File::dirname(logfile)}")
+ log = File::new(logfile, "w")
+ STDOUT.reopen(log)
+ STDERR.reopen(log)
+end
+
+# implementing firewall rules
+system("iptables-restore < /debcluster-scripts/configs/iptables.rules")
+rulesbefore=`mktemp /tmp/rulesbefore.XXXXXX`.chomp
+rulesafter=`mktemp /tmp/rulesafter.XXXXXX`.chomp
+system("iptables-save -c > #{rulesbefore}")
+
+ts = Time::now
+puts "DC-Build-Header: #{package} #{version} / #{ts}"
+system("chown user:sbuild #{wdir}")
+b = system("apt-get source #{package}=#{version}")
+if copyres
+ buildresult = "--buildresult #{wdir}/result"
+else
+ buildresult = ""
+end
+
+b = system("linux32 pbuilder --build --basetgz /debcluster-data/chroots/#{chroot}.tgz --buildplace #{wdir} #{buildresult} --aptcache '' *.dsc")
+ret = $?
+realtime = Time::now - ts
+if b
+ puts "DC-Build-Status: OK #{realtime}s"
+else
+ puts "DC-Build-Status: Failed #{realtime}s"
+end
+if time != 0 and realtime != 0
+ m = [ realtime, time ].min.to_f
+ r = (realtime - time).abs.to_f
+ if m < 60
+ p = 1.0
+ elsif m < 200
+ p = 0.7
+ elsif m < 500
+ p = 0.4
+ else
+ p = 0.2
+ end
+ if (r/m) >= p
+ puts "DC-Time-Estimation: #{realtime} versus expected #{time} (r/m: #{r/m} ; m: #{m})"
+ end
+end
+
+system("/sbin/iptables-save -c > #{rulesafter}")
+lines = IO::read(rulesafter).grep(/REJECT/)
+if lines.length > 0 and lines[0].split(' ')[0] != "[0:0]"
+ puts "DC-Build-Network: USED. See #{rulesafter} !"
+ puts "*" * 60
+ system("cat #{rulesafter}")
+ puts "*" * 60
+ system("diff -u #{rulesbefore} #{rulesafter}")
+ puts "*" * 60
+ system("dmesg | tail -50")
+ puts "*" * 60
+end
+system("rm #{rulesbefore} #{rulesafter}")
+# lucas 08/05
+#system("rm $(find . -type l)")
+
+def pooldir(pkg)
+ if pkg =~ /^lib/
+ return "#{pkg[0..3]}/#{pkg}"
+ else
+ return "#{pkg[0..0]}/#{pkg}"
+ end
+end
+
+if copyres
+ begin
+ t = "#{copyres}/#{pooldir(package)}"
+ system("mkdir -p #{t}")
+ Dir::chdir("result")
+ system("mv *.dsc *gz *deb #{t}/")
+ Dir::chdir("..")
+ rescue
+ end
+end
+Dir::chdir("/")
+system("rm -rf #{wdir}")
Property changes on: debcluster/scripts/tasks/buildpackagepb.rb
___________________________________________________________________
Name: svn:executable
+ *
Modified: debcluster/scripts/tasks/preparenode.rb
===================================================================
--- debcluster/scripts/tasks/preparenode.rb 2007-08-21 13:29:27 UTC (rev 384)
+++ debcluster/scripts/tasks/preparenode.rb 2007-08-21 13:32:03 UTC (rev 385)
@@ -43,20 +43,25 @@
# do rest of config
system("rm -rf /etc/schroot ; cp -r /debcluster-scripts/configs/schroot /etc/schroot")
-# mount /tmp as /var/lib/schroot
-if `mount |grep "/tmp on /var/lib/schroot " |wc -l`.to_i == 0
- system("mount --bind /tmp /var/lib/schroot")
+# find location of scratch:
+scratch = `df |grep -e tmp -e scratch |grep -v "^tmpfs" |grep -v idpot |grep -v nfs | sort -r -n -k 2 | awk '{print $6}'`.chomp
+if scratch != '/scratch' and scratch != '/tmp'
+ puts "ERROR: scratch found: #{scratch}. Using /tmp instead."
+ scratch = '/tmp'
end
+system("rm -f /debscratch")
+system("ln -s #{scratch} /debscratch")
+
system("rm -rf /var/lib/schroot")
-system("mkdir /tmp/schroot")
-system("ln -s /tmp/schroot /var/lib/schroot")
+system("mkdir #{scratch}/schroot")
+system("ln -s #{scratch}/schroot /var/lib/schroot")
system("mkdir -p /var/lib/schroot/mount /var/lib/schroot/session")
system("cp /debcluster-scripts/configs/piuparts /usr/sbin/piuparts")
system("cp /debcluster-scripts/configs/etcsbuild.conf /etc/sbuild/sbuild.conf")
system("cp /debcluster-scripts/configs/dotsbuildrc /root/.sbuildrc")
-#system("cp /debcluster-scripts/configs/sbuild+arch-detect /usr/bin/sbuild")
+
system("echo 'Defaults:root env_keep+=\"APT_CONFIG DEBIAN_FRONTEND SHELL\"' >> /etc/sudoers")
system("[ -d /tmp/build ] || mkdir /tmp/build")
system("adduser --home /home/user --uid 1001 --ingroup sbuild --disabled-password --gecos User user")
More information about the Collab-qa-commits
mailing list