From 4620deff33c1cf7b12273abb05f5443da106e7a6 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Sat, 10 May 2014 23:27:11 +0100 Subject: [PATCH] final migration --- Netdisco/lib/App/Netdisco/JobQueue.pm | 6 ++++++ Netdisco/lib/App/Netdisco/JobQueue/PostgreSQL.pm | 16 ++++++++++++++++ .../Netdisco/Web/Plugin/AdminTask/JobQueue.pm | 12 +++--------- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/Netdisco/lib/App/Netdisco/JobQueue.pm b/Netdisco/lib/App/Netdisco/JobQueue.pm index 56aade6d..3e947545 100644 --- a/Netdisco/lib/App/Netdisco/JobQueue.pm +++ b/Netdisco/lib/App/Netdisco/JobQueue.pm @@ -18,6 +18,7 @@ our @EXPORT_OK = qw/ jq_defer jq_complete jq_insert + jq_delete /; our %EXPORT_TAGS = ( all => \@EXPORT_OK ); @@ -91,6 +92,11 @@ Returns true if successful else returns false. Adds the passed jobs to the queue. +=head2 jq_delete( $id? ) + +If passed the ID of a job, deletes it from the queue. Otherwise deletes ALL +jobs from the queue. + =head1 Job Instance Interface =head2 id (auto) diff --git a/Netdisco/lib/App/Netdisco/JobQueue/PostgreSQL.pm b/Netdisco/lib/App/Netdisco/JobQueue/PostgreSQL.pm index 33c868fd..9e32072c 100644 --- a/Netdisco/lib/App/Netdisco/JobQueue/PostgreSQL.pm +++ b/Netdisco/lib/App/Netdisco/JobQueue/PostgreSQL.pm @@ -18,6 +18,7 @@ our @EXPORT_OK = qw/ jq_defer jq_complete jq_insert + jq_delete /; our %EXPORT_TAGS = ( all => \@EXPORT_OK ); @@ -177,4 +178,19 @@ sub jq_insert { return $happy; } +sub jq_delete { + my $id = shift; + + if ($id) { + schema('netdisco')->txn_do(sub { + schema('netdisco')->resultset('Admin')->find($id)->delete(); + }); + } + else { + schema('netdisco')->txn_do(sub { + schema('netdisco')->resultset('Admin')->delete(); + }); + } +} + true; diff --git a/Netdisco/lib/App/Netdisco/Web/Plugin/AdminTask/JobQueue.pm b/Netdisco/lib/App/Netdisco/Web/Plugin/AdminTask/JobQueue.pm index e4e5e916..5cf97cac 100644 --- a/Netdisco/lib/App/Netdisco/Web/Plugin/AdminTask/JobQueue.pm +++ b/Netdisco/lib/App/Netdisco/Web/Plugin/AdminTask/JobQueue.pm @@ -6,7 +6,7 @@ use Dancer::Plugin::DBIC; use Dancer::Plugin::Auth::Extensible; use App::Netdisco::Web::Plugin; -use App::Netdisco::JobQueue 'jq_log'; +use App::Netdisco::JobQueue qw/jq_log jq_delete/; register_admin_task({ tag => 'jobqueue', @@ -15,17 +15,11 @@ register_admin_task({ ajax '/ajax/control/admin/jobqueue/del' => require_role admin => sub { send_error('Missing job', 400) unless param('job'); - - schema('netdisco')->txn_do(sub { - my $device = schema('netdisco')->resultset('Admin') - ->search({job => param('job')})->delete; - }); + jq_delete( param('job') ); }; ajax '/ajax/control/admin/jobqueue/delall' => require_role admin => sub { - schema('netdisco')->txn_do(sub { - my $device = schema('netdisco')->resultset('Admin')->delete; - }); + jq_delete(); }; ajax '/ajax/content/admin/jobqueue' => require_role admin => sub {