device skips should not be used on priority jobs

This commit is contained in:
Oliver Gorwits
2017-06-11 14:45:59 +01:00
parent 2eb0b30812
commit 7b9e7f4deb

View File

@@ -38,15 +38,8 @@ sub _getsome {
return () if ((!defined $num_slots) or ($num_slots < 1)); return () if ((!defined $num_slots) or ($num_slots < 1));
return () if ((!defined $where) or (ref {} ne ref $where)); return () if ((!defined $where) or (ref {} ne ref $where));
$fqdn ||= (hostfqdn || 'localhost'); my $rs = schema('netdisco')->resultset('Admin')->search({
my $jobs = schema('netdisco')->resultset('Admin'); status => 'queued', %$where,
my $rs = $jobs->search({
status => 'queued',
device => { '-not_in' =>
$jobs->skipped($fqdn, setting('workers')->{'max_deferrals'})
->columns('device')->as_query },
%$where,
}, { order_by => 'random()', rows => $num_slots }); }, { order_by => 'random()', rows => $num_slots });
my @returned = (); my @returned = ();
@@ -57,9 +50,15 @@ sub _getsome {
} }
sub jq_getsome { sub jq_getsome {
return _getsome(shift, my $jobs = schema('netdisco')->resultset('Admin');
{ action => { -in => setting('job_prio')->{'normal'} } } $fqdn ||= (hostfqdn || 'localhost');
);
return _getsome(shift, {
action => { -in => setting('job_prio')->{'normal'} },
device => { -not_in =>
$jobs->skipped($fqdn, setting('workers')->{'max_deferrals'})
->columns('device')->as_query },
});
} }
sub jq_getsomep { sub jq_getsomep {