def terminate(self, worker): """ Clean up the worker record and log when the celery worker is terminated. :param worker: The worker instance :type worker: celery.apps.worker.Worker """ worker_watcher.handle_worker_offline(worker.hostname)
def test_handle_worker_offline(self, mock__logger, mock_gettext, mock__delete_worker): """ Ensure that we log and clean up appropriately when the worker goes offline. """ worker_watcher.handle_worker_offline('fake-worker') mock_gettext.assert_called_once_with("Worker '%s' shutdown") mock__logger.info.assert_called_once() mock__delete_worker.assert_called_once_with('fake-worker', normal_shutdown=True)
def test_handle_worker_offline(self, mock__logger, mock_gettext, mock__delete_worker, mock__parse_and_log_event): mock_event = mock.Mock() worker_watcher.handle_worker_offline(mock_event) event_info = mock__parse_and_log_event.return_value mock__parse_and_log_event.assert_called_once_with(mock_event) mock_gettext.assert_called_once_with("Worker '%(worker_name)s' shutdown") mock__logger.info.assert_called_once() mock__delete_worker.assert_called_once_with(event_info['worker_name'], normal_shutdown=True)
def test_handle_worker_offline(self, mock__logger, mock_gettext, mock__delete_queue, mock__is_resource_manager, mock__parse_and_log_event): mock_event = mock.Mock() worker_watcher.handle_worker_offline(mock_event) event_info = mock__parse_and_log_event.return_value mock__parse_and_log_event.assert_called_once_with(mock_event) mock__is_resource_manager.assert_called_once_with(mock_event) mock_gettext.assert_called_once_with("Worker '%(worker_name)s' shutdown") mock__logger.info.assert_called_once() mock__delete_queue.apply_async.assert_called_once_with( args=(event_info['worker_name'],), kwargs={'normal_shutdown': True}, queue=RESOURCE_MANAGER_QUEUE)
def test_handle_worker_offline(self, mock__logger, mock_gettext, mock__delete_worker, mock__is_resource_manager, mock__parse_and_log_event): mock_event = mock.Mock() worker_watcher.handle_worker_offline(mock_event) event_info = mock__parse_and_log_event.return_value mock__parse_and_log_event.assert_called_once_with(mock_event) mock__is_resource_manager.assert_called_once_with(mock_event) mock_gettext.assert_called_once_with( "Worker '%(worker_name)s' shutdown") mock__logger.info.assert_called_once() mock__delete_worker.apply_async.assert_called_once_with( args=(event_info['worker_name'], ), kwargs={'normal_shutdown': True}, queue=RESOURCE_MANAGER_QUEUE)
def close(self): """This is called when celerybeat is being shutdown.""" worker_watcher.handle_worker_offline(CELERYBEAT_NAME) super(Scheduler, self).close()
def test_handle_worker_offline_with_resource_manager(self, mock_gettext, mock__is_resource_manager): mock_event = mock.Mock() worker_watcher.handle_worker_offline(mock_event) self.assertTrue(not mock_gettext.called)
def test_handle_worker_offline_with_resource_manager( self, mock_gettext, mock__is_resource_manager): mock_event = mock.Mock() worker_watcher.handle_worker_offline(mock_event) self.assertTrue(not mock_gettext.called)