def _send_requests(self): # Get ip addresses to ping hosts = self._hosts.values() # Ping each host for host in hosts: if self._requests.has_key(host): debug("Duplicate host %s ignored" % host, 6) continue host.time = time.time() # create and save a request identifier packet, cookie = host.make_packet(self._packetsize) self._requests[cookie] = host host.next_seq() try: if not host.is_v6(): self._sock4.sendto(packet, (host.ip, 0)) else: self._sock6.sendto(packet, (host.ip, 0, 0, 0)) except Exception, error: debug("Failed to ping %s [%s]" % (host.ip, error), 5) sleep(self._delay)
def main(self): """ Loops until SIGTERM is caught. """ self.db.start() while self._isrunning: _logger.debug("Starts pinging....") self.update_host_list() elapsedtime = self.pinger.ping() self.generate_events() _logger.info( "%i hosts checked in %03.3f secs. %i hosts " "currently marked as down.", len(self.netboxmap), elapsedtime, len(self.down), ) wait = self._looptime - elapsedtime if wait > 0: _logger.debug("Sleeping %03.3f secs", wait) else: wait = abs(self._looptime + wait) _logger.warning( "Check lasted longer than looptime. " "Delaying next check for %03.3f secs", wait, ) sleep(wait)
def _send_requests(self): # Get ip addresses to ping hosts = self._hosts.values() # Ping each host for host in hosts: if host in self._requests: LOGGER.info("Duplicate host %s ignored", host) continue host.time = time.time() # create and save a request identifier packet, cookie = host.make_packet(self._packetsize) self._requests[cookie] = host host.next_seq() try: if not host.is_v6(): self._sock4.sendto(packet, (host.ip, 0)) else: self._sock6.sendto(packet, (host.ip, 0, 0, 0)) except Exception as error: LOGGER.info("Failed to ping %s [%s]", host.ip, error) sleep(self._delay) self._sender_finished = time.time()
def main(self): """ Loops until SIGTERM is caught. The looptime is defined by self._looptime """ self.db.start() while self._isrunning: start = time.time() self.get_checkers() wait = self._looptime - (time.time() - start) if wait <= 0: _logger.warning("System clock has drifted backwards, " "resetting loop delay") wait = self._looptime if self._checkers: pause = wait / (len(self._checkers) * 2) else: pause = 0 for checker in self._checkers: self._runqueue.enq(checker) sleep(pause) wait = self._looptime - (time.time() - start) _logger.debug("Waiting %i seconds.", wait) if wait <= 0: _logger.critical( "Only superman can do this. Humans cannot " "wait for %i seconds.", wait, ) wait %= self._looptime sleep(wait) else: sleep(wait)
def main(self): """ Loops until SIGTERM is caught. """ self.db.start() while self._isrunning: start=time.time() debug.debug("Starts pinging....", 7) self.updateHostList() elapsedtime=self.pinger.ping() self.generateEvents() debug.debug("%i hosts checked in %03.3f secs. %i hosts " "currently marked as down." % (len(self.netboxmap), elapsedtime, len(self.down))) wait=self._looptime-elapsedtime if wait > 0: debug.debug("Sleeping %03.3f secs" % wait,6) else: wait=abs(self._looptime + wait) debug.debug("Check lasted longer than looptime. " "Delaying next check for %03.3f secs" % wait,2) sleep(wait)
def main(self): """ Loops until SIGTERM is caught. The looptime is defined by self._looptime """ self.db.start() while self._isrunning: start = time.time() self.get_checkers() wait = self._looptime - (time.time() - start) if wait <= 0: LOGGER.warning("System clock has drifted backwards, " "resetting loop delay") wait = self._looptime if self._checkers: pause = wait / (len(self._checkers) * 2) else: pause = 0 for checker in self._checkers: self._runqueue.enq(checker) sleep(pause) # extensive debugging dbgthreads = [] for i in gc.get_objects(): if isinstance(i, threading.Thread): dbgthreads.append(i) LOGGER.debug("Garbage: %s Objects: %i Threads: %i", gc.garbage, len(gc.get_objects()), len(dbgthreads)) wait = self._looptime - (time.time() - start) LOGGER.debug("Waiting %i seconds.", wait) if wait <= 0: LOGGER.critical( "Only superman can do this. Humans cannot " "wait for %i seconds.", wait) wait %= self._looptime sleep(wait) else: sleep(wait)
def main(self): """ Loops until SIGTERM is caught. The looptime is defined by self._looptime """ self.db.start() while self._isrunning: start=time.time() self.getCheckers() wait=self._looptime - (time.time() - start) if wait <= 0: debug.debug("System clock has drifted backwards, resetting loop delay", 2) wait = self._looptime if self._checkers: pause=wait/(len(self._checkers)*2) else: pause=0 for checker in self._checkers: self._runqueue.enq(checker) sleep(pause) # extensive debugging dbgthreads=[] for i in gc.get_objects(): if isinstance(i, threading.Thread): dbgthreads.append(i) debug.debug("Garbage: %s Objects: %i Threads: %i" % (gc.garbage, len(gc.get_objects()), len(dbgthreads))) wait=(self._looptime - (time.time() - start)) debug.debug("Waiting %i seconds." % wait) if wait <= 0: debug.debug("Only superman can do this. Humans cannot wait for %i seconds." % wait,2) wait %= self._looptime sleep(wait) else: sleep(wait)
def execute(self): import random sleep(random.random() * 10) return Event.UP, 'OK'