From efa03357139f331e05e1ace0928447d06867f5d3 Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Thu, 17 Dec 2009 21:51:41 +0000 Subject: Bug 531119: Fix the Bugzilla.extensions WebService method to work with the new Extensions system. Patch by Max Kanat-Alexander r=dkl, a=mkanat --- Bugzilla/WebService/Bugzilla.pm | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) mode change 100755 => 100644 Bugzilla/WebService/Bugzilla.pm (limited to 'Bugzilla/WebService/Bugzilla.pm') diff --git a/Bugzilla/WebService/Bugzilla.pm b/Bugzilla/WebService/Bugzilla.pm old mode 100755 new mode 100644 index b1ab8f34f..6e74900b9 --- a/Bugzilla/WebService/Bugzilla.pm +++ b/Bugzilla/WebService/Bugzilla.pm @@ -21,7 +21,6 @@ package Bugzilla::WebService::Bugzilla; use strict; use base qw(Bugzilla::WebService); use Bugzilla::Constants; -use Bugzilla::Hook; use DateTime; @@ -38,15 +37,14 @@ sub version { sub extensions { my $self = shift; - my $extensions = Bugzilla::Hook::enabled_plugins(); - foreach my $name (keys %$extensions) { - my $info = $extensions->{$name}; - foreach my $data (keys %$info) { - $extensions->{$name}->{$data} = - $self->type('string', $info->{$data}); - } + + my %retval; + foreach my $extension (@{ Bugzilla->extensions }) { + my $version = $extension->VERSION || 0; + my $name = $extension->NAME; + $retval{$name}->{version} = $self->type('string', $version); } - return { extensions => $extensions }; + return { extensions => \%retval }; } sub timezone { @@ -135,10 +133,21 @@ in this Bugzilla. =item B -A hash with a single item, C. This points to a hash. I hash -contains the names of extensions as keys, and information about the extension -as values. One of the values that must be returned is the 'version' of the -extension +A hash with a single item, C. This points to a hash. I hash +contains the names of extensions as keys, and the values are a hash. +That hash contains a single key C, which is the version of the +extension, or C<0> if the extension hasn't defined a version. + +The return value looks something like this: + + extensions => { + Example => { + version => '3.6', + }, + BmpConvert => { + version => '1.0', + }, + } =item B @@ -146,6 +155,10 @@ extension =item Added in Bugzilla B<3.2>. +=item As of Bugzilla B<3.6>, the names of extensions are canonical names +that the extensions define themselves. Before 3.6, the names of the +extensions depended on the directory they were in on the Bugzilla server. + =back =back -- cgit v1.2.3-24-g4f1b