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()
def test_invalid_host(self): res = monitoring.check_ping('josetomasitotocinote.com') self.assertTrue('valid' in res) self.assertFalse(res['valid'])
def test_valid_host(self): res = monitoring.check_ping('josetomastocino.com') self.assertTrue('valid' in res) self.assertTrue(res['valid'])