From: Ian Jackson Date: Thu, 25 Oct 2007 17:01:17 +0000 (+0100) Subject: wip suppression fetching for Debian X-Git-Tag: converted-from-bzr~28 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=autopkgtest.git;a=commitdiff_plain;h=578df0e108c2f50d27b3871281fe40d9ba1f431f wip suppression fetching for Debian --- diff --git a/hosts/magrathea/get-suppressions.pl b/hosts/magrathea/get-suppressions.pl new file mode 100755 index 0000000..357f5b4 --- /dev/null +++ b/hosts/magrathea/get-suppressions.pl @@ -0,0 +1,52 @@ +#!/usr/bin/perl + +use warnings; +use strict; +use Data::Dumper; +use SOAP::Lite; + +@ARGV==1 or die; +my ($dist) = @ARGV; + +my $debbugs_soap= 'Debbugs/SOAP'; +my $debbugs_uri= 'http://bugs.debian.org/cgi-bin/soap.cgi'; + +my $usertag_owner= 'autopkgtest@packages.debian.org'; +my $usertag_name= "autopkgtest"; + +my $soap= SOAP::Lite->uri($debbugs_soap)->proxy($debbugs_uri); + +open D, "> /dev/null" or die $!; + +my $bugs_ut= $soap->get_usertag($usertag_owner, $usertag_name)->result(); +printf D "bugs_ut: %s\n", Dumper($bugs_ut); + +my $bugs_rq= [map { [bug => $_, dist => $dist] } @{$bugs_ut->{$usertag_name}}]; +printf D "bugs_rq: %s\n", Dumper($bugs_rq); + +my $stats= $soap->get_status($bugs_rq)->result(); +printf D "bugs_rq: %s\nstats: %s\n", Dumper($bugs_rq), Dumper($stats); + +my $stat; + +sub badbug ($) { + my ($msg) = @_; + die "BAD BUG - $msg:\n".Dumper($stat)."\n - $msg !"; +} + +foreach $stat (values %$stats) { + printf D "==========\n%s\n", Dumper($stat); + next if $stat->{'pending'} eq 'done'; + my $fv= $stat->{'found_versions'}; + @$fv or badbug("pending but not found"); + $fv= $fv->[$#$fv]; + my $src= $fv =~ m,/, ? $` : $stat->{'package'}; + $src !~ m/[^-+.0-9a-z]/ and $src =~ m/^[0-9a-z]/ or badbug('bad package'); + my $id= $stat->{'id'}; + $id !~ m/\D/ and $id =~ m/^[1-9]/ or badbug("bad id"); + printf "%s %d\n", $src, $id + or die $!; +} + +STDOUT->error and die $!; +close STDOUT or die $!; diff --git a/hosts/magrathea/update-suppressions b/hosts/magrathea/update-suppressions new file mode 100644 index 0000000..ed519fb --- /dev/null +++ b/hosts/magrathea/update-suppressions @@ -0,0 +1,31 @@ +#!/bin/sh + +set -e + +cd ${0%/*} + +echo 'fetching' +curl -s -S -k -o webpage "$url" + +echo 'grepping' +perl -ne ' + print "$1\n" or die $! if + m,"https://bugs.launchpad.net/ubuntu/\+source/([-+.0-9a-z]+)/\+bug/\d+", +' suppressions.new + +nl -ba suppressions.new + +if ! test -s suppressions.new; +then + echo >&2 'NO SUPPRESSIONS - PROBABLY WENT WRONG + +webpage:' + cat webpage +fi + +echo 'uploading' + +mv suppressions.new suppressions +RSYNC_RSH=ssh rsync suppressions cadmium.buildd:adt-play/. + +echo 'done.'