Пример #1
0
    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)
Пример #2
0
 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)
Пример #3
0
    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()
Пример #4
0
    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)
Пример #5
0
    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)
Пример #6
0
 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)
Пример #7
0
    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)
Пример #8
0
    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)
Пример #9
0
 def execute(self):
     import random
     sleep(random.random() * 10)
     return Event.UP, 'OK'