final migration

This commit is contained in:
Oliver Gorwits
2014-05-10 23:27:11 +01:00
parent 5413e34e83
commit 4620deff33
3 changed files with 25 additions and 9 deletions

View File

@@ -18,6 +18,7 @@ our @EXPORT_OK = qw/
jq_defer jq_defer
jq_complete jq_complete
jq_insert jq_insert
jq_delete
/; /;
our %EXPORT_TAGS = ( all => \@EXPORT_OK ); our %EXPORT_TAGS = ( all => \@EXPORT_OK );
@@ -91,6 +92,11 @@ Returns true if successful else returns false.
Adds the passed jobs to the queue. 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 =head1 Job Instance Interface
=head2 id (auto) =head2 id (auto)

View File

@@ -18,6 +18,7 @@ our @EXPORT_OK = qw/
jq_defer jq_defer
jq_complete jq_complete
jq_insert jq_insert
jq_delete
/; /;
our %EXPORT_TAGS = ( all => \@EXPORT_OK ); our %EXPORT_TAGS = ( all => \@EXPORT_OK );
@@ -177,4 +178,19 @@ sub jq_insert {
return $happy; 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; true;

View File

@@ -6,7 +6,7 @@ use Dancer::Plugin::DBIC;
use Dancer::Plugin::Auth::Extensible; use Dancer::Plugin::Auth::Extensible;
use App::Netdisco::Web::Plugin; use App::Netdisco::Web::Plugin;
use App::Netdisco::JobQueue 'jq_log'; use App::Netdisco::JobQueue qw/jq_log jq_delete/;
register_admin_task({ register_admin_task({
tag => 'jobqueue', tag => 'jobqueue',
@@ -15,17 +15,11 @@ register_admin_task({
ajax '/ajax/control/admin/jobqueue/del' => require_role admin => sub { ajax '/ajax/control/admin/jobqueue/del' => require_role admin => sub {
send_error('Missing job', 400) unless param('job'); send_error('Missing job', 400) unless param('job');
jq_delete( param('job') );
schema('netdisco')->txn_do(sub {
my $device = schema('netdisco')->resultset('Admin')
->search({job => param('job')})->delete;
});
}; };
ajax '/ajax/control/admin/jobqueue/delall' => require_role admin => sub { ajax '/ajax/control/admin/jobqueue/delall' => require_role admin => sub {
schema('netdisco')->txn_do(sub { jq_delete();
my $device = schema('netdisco')->resultset('Admin')->delete;
});
}; };
ajax '/ajax/content/admin/jobqueue' => require_role admin => sub { ajax '/ajax/content/admin/jobqueue' => require_role admin => sub {