[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