migrate to JobQueue :)

This commit is contained in:
Oliver Gorwits
2014-05-10 22:44:20 +01:00
parent 41ee8f91f2
commit 9569bda4d8
2 changed files with 11 additions and 14 deletions

View File

@@ -5,7 +5,7 @@ use Dancer::Plugin::Ajax;
use Dancer::Plugin::DBIC; use Dancer::Plugin::DBIC;
use Dancer::Plugin::Auth::Extensible; use Dancer::Plugin::Auth::Extensible;
use Try::Tiny; use App::Netdisco::JobQueue 'jq_insert';
sub add_job { sub add_job {
my ($action, $device, $subaction) = @_; my ($action, $device, $subaction) = @_;
@@ -16,17 +16,13 @@ sub add_job {
if ! $device or $device->addr eq '0.0.0.0'; if ! $device or $device->addr eq '0.0.0.0';
} }
# job might already be in the queue, so this could die jq_insert({
try { ($device ? (device => $device->addr) : ()),
schema('netdisco')->resultset('Admin')->create({ action => $action,
($device ? (device => $device->addr) : ()), ($subaction ? (subaction => $subaction) : ()),
action => $action, username => session('logged_in_user'),
($subaction ? (subaction => $subaction) : ()), userip => request->remote_address,
status => 'queued', });
username => session('logged_in_user'),
userip => request->remote_address,
});
};
} }
foreach my $action (keys %{ setting('job_types') }) { foreach my $action (keys %{ setting('job_types') }) {

View File

@@ -5,6 +5,8 @@ use Dancer::Plugin::Ajax;
use Dancer::Plugin::DBIC; use Dancer::Plugin::DBIC;
use Dancer::Plugin::Auth::Extensible; use Dancer::Plugin::Auth::Extensible;
use App::Netdisco::JobQueue 'jq_insert';
ajax '/ajax/portcontrol' => require_role port_control => sub { ajax '/ajax/portcontrol' => require_role port_control => sub {
send_error('No device/port/field', 400) send_error('No device/port/field', 400)
unless param('device') and (param('port') or param('field')); unless param('device') and (param('port') or param('field'));
@@ -44,12 +46,11 @@ ajax '/ajax/portcontrol' => require_role port_control => sub {
}); });
} }
schema('netdisco')->resultset('Admin')->create({ jq_insert({
device => param('device'), device => param('device'),
port => param('port'), port => param('port'),
action => $action, action => $action,
subaction => $subaction, subaction => $subaction,
status => 'queued',
username => session('logged_in_user'), username => session('logged_in_user'),
userip => request->remote_address, userip => request->remote_address,
log => $log, log => $log,