|
|
@@ -2208,23 +2208,17 @@ function apply_device_lock ($db, $device_id, $iteration =0) {
|
|
|
$iteration++;
|
|
|
if ($iteration>2) { return false; }
|
|
|
$dev = get_record_sql($db,'SELECT discovery_locked,UNIX_TIMESTAMP(locked_timestamp) as u_locked_timestamp FROM devices WHERE id='.$device_id.' AND discovery_locked > 0');
|
|
|
- if (empty($dev)) { return true; }
|
|
|
- if ($dev['discovery_locked'] ===0) {
|
|
|
+ if (empty($dev) or empty($dev['u_locked_timestamp'])) {
|
|
|
LOG_DEBUG($db,"Snmp discovery lock not found. Set and discovery.");
|
|
|
return set_lock_discovery($db,$device_id);
|
|
|
}
|
|
|
- //if timestamp undefined, set and return
|
|
|
- if (empty($dev['u_locked_timestamp'])) {
|
|
|
- LOG_DEBUG($db,"Snmp discovery lock timestamp undefined. Set and discovery.");
|
|
|
- return set_lock_discovery($db,$device_id);
|
|
|
- }
|
|
|
//wait for discovery
|
|
|
$now = time();
|
|
|
$wait_time = ($dev['u_locked_timestamp'] + SNMP_LOCK_TIMEOUT) - $now;
|
|
|
LOG_DEBUG($db,"Check snmp lock for device id: " . $device_id . ". Lock timestamp: ".$dev['u_locked_timestamp'].", now: ".$now);
|
|
|
if ($wait_time<0) {
|
|
|
- LOG_DEBUG($db,"The lock is expired. Set new lock.");
|
|
|
- return set_lock_discovery($db,$device_id);
|
|
|
+ LOG_DEBUG($db,"The lock is already expired. Set new lock.");
|
|
|
+ return set_lock_discovery($db,$device_id);
|
|
|
}
|
|
|
LOG_INFO($db,"Snmp discovery lock for device id: $device_id found! Need wait ".$wait_time." sec.");
|
|
|
sleep($wait_time);
|