def reset_loggers(self): """ The loggers maintain hash-tables in memory and they need to be cleaned up from time to time. For reference, please check azurelinuxagent.common.logger.Logger and azurelinuxagent.common.event.EventLogger classes """ logger.reset_periodic()
def test_periodic_does_not_emit_if_previously_sent(self, mock_info): logger.reset_periodic() logger.periodic(logger.EVERY_DAY, _MSG, *_DATA) self.assertEqual(1, mock_info.call_count) logger.periodic(logger.EVERY_DAY, _MSG, *_DATA) self.assertEqual(1, mock_info.call_count)
def test_periodic_does_not_emit_if_previously_sent(self, mock_info): logger.reset_periodic() logger.periodic(logger.EVERY_DAY, _MSG, *_DATA) self.assertEqual(1, mock_info.call_count) logger.periodic(logger.EVERY_DAY, _MSG, *_DATA) self.assertEqual(1, mock_info.call_count)
def setUp(self): AgentTestCase.setUp(self) self.lib_dir = tempfile.mkdtemp() self.event_dir = os.path.join(self.lib_dir, EVENTS_DIRECTORY) fileutil.mkdir(self.event_dir) self.log_file = tempfile.mkstemp(prefix="logfile-")[1] logger.reset_periodic()
def test_periodic_emits_after_elapsed_delta(self, mock_info): logger.reset_periodic() logger.periodic(logger.EVERY_DAY, _MSG, *_DATA) self.assertEqual(1, mock_info.call_count) logger.periodic(logger.EVERY_DAY, _MSG, *_DATA) self.assertEqual(1, mock_info.call_count) logger.DEFAULT_LOGGER.periodic_messages[hash(_MSG)] = \ datetime.now() - logger.EVERY_DAY - logger.EVERY_HOUR logger.periodic(logger.EVERY_DAY, _MSG, *_DATA) self.assertEqual(2, mock_info.call_count)
def test_periodic_emits_after_elapsed_delta(self, mock_info): logger.reset_periodic() logger.periodic(logger.EVERY_DAY, _MSG, *_DATA) self.assertEqual(1, mock_info.call_count) logger.periodic(logger.EVERY_DAY, _MSG, *_DATA) self.assertEqual(1, mock_info.call_count) logger.DEFAULT_LOGGER.periodic_messages[hash(_MSG)] = \ datetime.now() - logger.EVERY_DAY - logger.EVERY_HOUR logger.periodic(logger.EVERY_DAY, _MSG, *_DATA) self.assertEqual(2, mock_info.call_count)
def reset_loggers(self): """ The loggers maintain hash-tables in memory and they need to be cleaned up from time to time. For reference, please check azurelinuxagent.common.logger.Logger and azurelinuxagent.common.event.EventLogger classes """ time_now = datetime.datetime.utcnow() if not self.last_reset_loggers_time: self.last_reset_loggers_time = time_now if time_now >= (self.last_reset_loggers_time + MonitorHandler.RESET_LOGGERS_PERIOD): try: logger.reset_periodic() finally: self.last_reset_loggers_time = time_now
def test_it_should_clear_periodic_log_messages(self): logger.reset_periodic() # Adding 100 different messages expected = 100 for i in range(expected): logger.periodic_info(logger.EVERY_DAY, "Test {0}".format(i)) actual = len(logger.DEFAULT_LOGGER.periodic_messages) if actual != expected: raise Exception('Test setup error: the periodic messages were not added. Got: {0} Expected: {1}'.format(actual, expected)) ResetPeriodicLogMessages().run() self.assertEqual(0, len(logger.DEFAULT_LOGGER.periodic_messages), "The monitor thread did not reset the periodic log messages")
def report_all_tracked(): collected_metrics = {} for name, cgroup_metrics in CGroupsTelemetry._cgroup_metrics.items(): perf_metric = CGroupsTelemetry._process_cgroup_metric(cgroup_metrics) if perf_metric: collected_metrics[name] = perf_metric cgroup_metrics.clear() # Doing cleanup after the metrics have already been collected. for key in [key for key in CGroupsTelemetry._cgroup_metrics if CGroupsTelemetry._cgroup_metrics[key].marked_for_delete]: del CGroupsTelemetry._cgroup_metrics[key] logger.reset_periodic() return collected_metrics
def tearDown(self): AgentTestCase.tearDown(self) logger.reset_periodic() fileutil.rm_dirs(self.event_dir) logger.DEFAULT_LOGGER.appenders *= 0
def setUp(self): AgentTestCase.setUp(self) logger.reset_periodic()
def tearDown(self): AgentTestCase.tearDown(self) logger.reset_periodic()
def test_periodic_forwards_message_and_args(self, mock_info): logger.reset_periodic() logger.periodic(logger.EVERY_DAY, _MSG, *_DATA) mock_info.assert_called_once_with(_MSG, *_DATA)
def test_periodic_forwards_message_and_args(self, mock_info): logger.reset_periodic() logger.periodic(logger.EVERY_DAY, _MSG, *_DATA) mock_info.assert_called_once_with(_MSG, *_DATA)
def _operation(self): logger.reset_periodic()
def test_periodic_emits_if_not_previously_sent(self, mock_info): logger.reset_periodic() logger.periodic(logger.EVERY_DAY, _MSG, *_DATA) mock_info.assert_called_once()
def _operation_impl(): logger.reset_periodic()