Author: adam-guest
Date: 2008-03-09 01:41:54 +0000 (Sun, 09 Mar 2008)
New Revision: 1117
Modified:
trunk/Devscripts/Debbugs.pm
trunk/debian/changelog
Log:
Debbugs.pm:
+ Turn on "use strict" and "use warnings" which got lost when moving
the code from bts
+ Don't attempt to iterate the result of usertags() in select if
it's empty (Closes: #470025)
+ Skip arguments to select() that contain valid keys but not values
+ Print a warning about unrecognised keys passed to select()
+ Add on_fault handlers to SOAP calls so we can return useful error
messages
Modified: trunk/Devscripts/Debbugs.pm
===================================================================
--- trunk/Devscripts/Debbugs.pm 2008-03-09 00:06:58 UTC (rev 1116)
+++ trunk/Devscripts/Debbugs.pm 2008-03-09 01:41:54 UTC (rev 1117)
@@ -86,6 +86,9 @@
=cut
+use strict;
+use warnings;
+
my $soapurl='Debbugs/SOAP/1';
my $soapproxyurl='http://bugs.debian.org/cgi-bin/soap.cgi';
@@ -117,7 +120,7 @@
my $soap = SOAP::Lite->uri($soapurl)->proxy($soapproxyurl);
my $usertags = $soap->get_usertag(@_)->result();
- return $usertags;
+ return $usertags;
}
sub select {
@@ -145,20 +148,24 @@
my %users;
my %search_parameters;
my $soap = SOAP::Lite->uri($soapurl)->proxy($soapproxyurl);
+ my $soapfault;
+ $soap->on_fault(sub { $soapfault = $_; });
for my $arg (@args) {
my ($key,$value) = split /:/, $arg, 2;
+ next unless $key;
if (exists $valid_keys{$key}) {
push @{$search_parameters{$valid_keys{$key}}},
- $value;
- }
- elsif ($key =~/users?$/) {
+ $value if $value;
+ } elsif ($key =~/users?$/) {
$users{$value} = 1;
+ } else {
+ warn "select(): Unrecognised key: $key\n";
}
}
my %usertags;
for my $user (keys %users) {
my $ut = usertags($user);
- next unless defined $ut;
+ next unless defined $ut and $ut ne "";
for my $tag (keys %{$ut}) {
push @{$usertags{$tag}},
@{$ut->{$tag}};
@@ -168,7 +175,8 @@
(keys %usertags)?(usertags=>\%usertags):()
)->result();
if (not defined $bugs) {
- die "Error while retrieving bugs from SOAP server";
+ die "Error while retrieving bugs from SOAP server: $soapfault"
+ if $soapfault;
}
return $bugs;
@@ -179,11 +187,14 @@
my @args = @_;
my $soap = SOAP::Lite->uri($soapurl)->proxy($soapproxyurl);
+ my $soapfault;
+ $soap->on_fault(sub { $soapfault = $_; });
my $bugs = $soap->get_status(@args)->result();
if (not defined $bugs) {
- die "Error while retrieving bug statuses from SOAP server";
+ die "Error while retrieving bug statuses from SOAP server: $soapfault"
+ if $soapfault;
}
return $bugs;
@@ -224,11 +235,14 @@
$search_parameters{dist} = [EMAIL PROTECTED] if @dists;
my $soap = SOAP::Lite->uri($soapurl)->proxy($soapproxyurl);
+ my $soapfault;
+ $soap->on_fault(sub { $soapfault = $_; });
my $versions = $soap->get_versions(%search_parameters)->result();
if (not defined $versions) {
- die "Error while retrieivng package versions from SOAP server: $@";
+ die "Error while retrieivng package versions from SOAP server:
$soapfault"
+ if $soapfault;
}
return $versions;
@@ -254,11 +268,14 @@
return if $count !~ /^\d+$/;
my $soap = SOAP::Lite->uri($soapurl)->proxy($soapproxyurl);
+ my $soapfault;
+ $soap->on_fault(sub { $soapfault = $_; });
my $bugs = $soap->newest_bugs($count)->result();
if (not defined $bugs) {
- die "Error while retrieving newest bug list from SOAP server: $@";
+ die "Error while retrieving newest bug list from SOAP server:
$soapfault"
+ if $soapfault;
}
return $bugs;
@@ -276,10 +293,14 @@
return if $bug !~ /^\d+$/;
my $soap = SOAP::Lite->uri($soapurl)->proxy($soapproxyurl);
+ my $soapfault;
+ $soap->on_fault(sub { $soapfault = $_; });
+
my $log = $soap->get_bug_log($bug, $message)->result();
if (not defined $log) {
- die "Error while retrieving bug log from SOAP server: $@";
+ die "Error while retrieving bug log from SOAP server: $soapfault"
+ if $soapfault;
}
return $log;
@@ -290,6 +311,8 @@
unless have_soap();
my $soap = SOAP::Lite->uri($soapurl)->proxy($soapproxyurl);
+ my $soapfault;
+ $soap->on_fault(sub { $soapfault = $_; });
my $binpkg = shift;
my $binver = shift;
@@ -300,7 +323,8 @@
my $mapping = $soap->binary_to_source($binpkg, $binver, $arch)->result();
if (not defined $mapping) {
- die "Error while retrieving binary to source mapping from SOAP server:
$@";
+ die "Error while retrieving binary to source mapping from SOAP server:
$soapfault"
+ if $soapfault;
}
return $mapping;
@@ -311,6 +335,8 @@
unless have_soap();
my $soap = SOAP::Lite->uri($soapurl)->proxy($soapproxyurl);
+ my $soapfault;
+ $soap->on_fault(sub { $soapfault = $_; });
my $srcpkg = shift;
my $srcver = shift;
@@ -320,7 +346,8 @@
my $mapping = $soap->source_to_binary($srcpkg, $srcver)->result();
if (not defined $mapping) {
- die "Error while retrieving source to binary mapping from SOAP server:
$@";
+ die "Error while retrieving source to binary mapping from SOAP server:
$soapfault"
+ if $soapfault;
}
return $mapping;
Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog 2008-03-09 00:06:58 UTC (rev 1116)
+++ trunk/debian/changelog 2008-03-09 01:41:54 UTC (rev 1117)
@@ -44,6 +44,15 @@
* bts: Don't treat "userblah" as an alias for "users" in "select"
* nmudiff: Fix --nomutt's To: handling. Thanks Thomas Viehmann
(Closes: #470069)
+ * Debbugs.pm:
+ + Turn on "use strict" and "use warnings" which got lost when moving
+ the code from bts
+ + Don't attempt to iterate the result of usertags() in select if
+ it's empty (Closes: #470025)
+ + Skip arguments to select() that contain valid keys but not values
+ + Print a warning about unrecognised keys passed to select()
+ + Add on_fault handlers to SOAP calls so we can return useful error
+ messages
-- Adam D. Barratt <[EMAIL PROTECTED]> Sat, 01 Mar 2008 11:42:02 +0000
--
To unsubscribe, send mail to [EMAIL PROTECTED]