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

@@ -11,6 +11,8 @@
[BUG FIXES]
* Respect macsuck_bleed on broken topology detection
* Correct logic to prevent duplicate queuing of jobs during discover due
to previous change in admin table
2.020001 - 2013-12-08

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 => { -like => 'queued%' },
}
)->single;
unless ($is_queued) {
schema('netdisco')->resultset('Admin')->create(
{ device => $ip,
action => 'discover',
status => 'queued',
});
};
}
);
}
}
}