Correct logic to prevent duplicate queuing of jobs during discover due to previous change in admin table

This commit is contained in:
Eric A. Miller
2013-12-09 22:56:49 -05:00
parent 8690fe0272
commit d869b7ea08
2 changed files with 16 additions and 7 deletions

View File

@@ -848,14 +848,21 @@ sub discover_new_neighbors {
next;
}
# could fail if queued job already exists
try {
schema('netdisco')->resultset('Admin')->create({
device => $ip,
# Don't queued if job already exists
my $is_queued = schema('netdisco')->resultset('Admin')->search(
{ device => $ip,
action => 'discover',
status => 'queued',
});
};
status => { -like => 'queued%' },
}
)->single;
unless ($is_queued) {
schema('netdisco')->resultset('Admin')->create(
{ device => $ip,
action => 'discover',
status => 'queued',
}
);
}
}
}