Exemple #1
0
    def run_check(self, force=False):
        if not self.should_run_check() and not force:
            return

        # Initialize the log instance
        log = CheckLog(check=self)
        log.status = 0

        # Fire the ping
        check_result = monitoring.check_ping(self.target)

        # Ping finished
        if check_result['valid']:

            # Save ping average response time
            log.response_time = check_result['avg']

            # If most pings were received
            if check_result['received'] / check_result['transmitted'] >= 0.5:

                # Check if response time is within boundaries
                if self.should_check_timeout and int(check_result['avg']) > self.timeout_value:
                    log.status = 1
                    log.status_extra = 'Ping max response time exceeded'

            # Most pings were lost
            else:
                log.status = 1
                log.status_extra = 'Most packets were lost'

        # Ping could not be launched
        else:
            log.status = 2

            # Check for most common type of error
            log.status_extra = check_result['error']

        logger.info('Save CheckLog, status %i, response_time %i, status_extra "%s"' % (log.status, log.response_time, log.status_extra))
        log.save()
Exemple #2
0
 def test_invalid_host(self):
     res = monitoring.check_ping('josetomasitotocinote.com')
     self.assertTrue('valid' in res)
     self.assertFalse(res['valid'])
Exemple #3
0
 def test_valid_host(self):
     res = monitoring.check_ping('josetomastocino.com')
     self.assertTrue('valid' in res)
     self.assertTrue(res['valid'])