diff options
author | Dylan William Hardison <dylan@hardison.net> | 2018-04-08 17:59:51 +0200 |
---|---|---|
committer | Dylan William Hardison <dylan@hardison.net> | 2018-04-08 17:59:51 +0200 |
commit | 3cf92acb65f76fd5a922a6fbba4ef936cb01b2c3 (patch) | |
tree | cab8da7430ea1fb1fe5647940d65dbeaaf9e0a98 /Bugzilla/WebService/Bugzilla.pm | |
parent | f6013b2b6a26a23c6d06c1ee6748bc4515e83903 (diff) | |
parent | 755bc194dcea3481fa41b5884a98a5aa086fe09e (diff) | |
download | bugzilla-3cf92acb65f76fd5a922a6fbba4ef936cb01b2c3.tar.gz bugzilla-3cf92acb65f76fd5a922a6fbba4ef936cb01b2c3.tar.xz |
Merge remote-tracking branch 'bmo/master' into unstable
Diffstat (limited to 'Bugzilla/WebService/Bugzilla.pm')
-rw-r--r-- | Bugzilla/WebService/Bugzilla.pm | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Bugzilla/WebService/Bugzilla.pm b/Bugzilla/WebService/Bugzilla.pm index 0d0393c28..145502445 100644 --- a/Bugzilla/WebService/Bugzilla.pm +++ b/Bugzilla/WebService/Bugzilla.pm @@ -13,7 +13,10 @@ use warnings; use base qw(Bugzilla::WebService); use Bugzilla::Constants; +use Bugzilla::Error; +use Bugzilla::Logging; use Bugzilla::Util qw(datetime_from); +use Try::Tiny; use DateTime; @@ -28,6 +31,7 @@ use constant READ_ONLY => qw( timezone time version + jobqueue_status ); use constant PUBLIC_METHODS => qw( @@ -35,6 +39,7 @@ use constant PUBLIC_METHODS => qw( time timezone version + jobqueue_status ); sub version { @@ -80,6 +85,39 @@ sub time { }; } +sub jobqueue_status { + my ( $self, $params ) = @_; + + Bugzilla->login(LOGIN_REQUIRED); + + my $dbh = Bugzilla->dbh; + my $query = q{ + SELECT + COUNT(*) AS total, + COALESCE( + (SELECT COUNT(*) + FROM ts_error + WHERE ts_error.jobid = j.jobid + ) + , 0) AS errors + FROM ts_job j + INNER JOIN ts_funcmap f + ON f.funcid = j.funcid; + }; + + my $status; + try { + $status = $dbh->selectrow_hashref($query); + $status->{errors} = 0 + $status->{errors}; + $status->{total} = 0 + $status->{total}; + } catch { + ERROR($_); + ThrowCodeError('jobqueue_status_error'); + }; + + return $status; +} + 1; __END__ |