def do_work(self, device_id, group): if self.lock(device_id, timeout=LibreNMS.normalize_wait(self.config.discovery.frequency)): try: info("Discovering device {}".format(device_id)) LibreNMS.call_script('discovery.php', ('-h', device_id)) except subprocess.CalledProcessError as e: if e.returncode == 5: info("Device {} is down, cannot discover, waiting {}s for retry" .format(device_id, self.config.down_retry)) self.lock(device_id, allow_relock=True, timeout=self.config.down_retry) else: self.unlock(device_id) else: self.unlock(device_id)
def do_work(self, device_id, group): if self.lock(device_id, timeout=LibreNMS.normalize_wait( self.config.discovery.frequency)): try: info("Discovering device {}".format(device_id)) LibreNMS.call_script("discovery.php", ("-h", device_id)) except subprocess.CalledProcessError as e: if e.returncode == 5: info( "Device {} is down, cannot discover, waiting {}s for retry" .format(device_id, self.config.down_retry)) self.lock(device_id, allow_relock=True, timeout=self.config.down_retry) else: self.unlock(device_id) else: self.unlock(device_id)
def do_work(self, device_id, group): if self.lock(device_id, timeout=LibreNMS.normalize_wait( self.config.discovery.frequency)): logger.info("Discovering device {}".format(device_id)) exit_code, output = LibreNMS.call_script("discovery.php", ("-h", device_id)) if exit_code == 0: self.unlock(device_id) else: if exit_code == 5: logger.info( "Device {} is down, cannot discover, waiting {}s for retry" .format(device_id, self.config.down_retry)) self.lock(device_id, allow_relock=True, timeout=self.config.down_retry) else: logger.error( "Discovering device {} failed with exit code {}: {}". format(device_id, exit_code, output)) self.unlock(device_id)
def lock_discovery(self, device_id, retry=False): lock_name = self.gen_lock_name('discovery', device_id) timeout = self.config.down_retry if retry else LibreNMS.normalize_wait( self.config.discovery.frequency) return self._lm.lock(lock_name, self.gen_lock_owner(), timeout, retry)
def lock_discovery(self, device_id, retry=False): lock_name = self.gen_lock_name('discovery', device_id) timeout = self.config.down_retry if retry else LibreNMS.normalize_wait(self.config.discovery.frequency) return self._lm.lock(lock_name, self.gen_lock_owner(), timeout, retry)