Exemple #1
0
    def get_task_logs(dag_id, task_id, pendulum_execution_date, session):
        if not dag_id or not task_id or not pendulum_execution_date:
            return None

        dagbag = models.DagBag(
            os.devnull,  # to initialize an empty dag bag
            store_serialized_dags=STORE_SERIALIZED_DAGS,
        )
        dag = dagbag.get_dag(dag_id)
        ti = (
            session.query(models.TaskInstance)
            .filter(
                models.TaskInstance.dag_id == dag_id,
                models.TaskInstance.task_id == task_id,
                models.TaskInstance.execution_date == pendulum_execution_date,
            )
            .first()
        )
        ti.task = dag.get_task(ti.task_id)

        file_task_handler = FileTaskHandler(
            base_log_folder=conf.get("core", "BASE_LOG_FOLDER"),
            filename_template=conf.get("core", "LOG_FILENAME_TEMPLATE"),
        )
        logs, metadatas = file_task_handler.read(ti, None, None)
        return logs, metadatas
Exemple #2
0
    def test_python_formatting(self):
        expected_filename = 'dag_for_testing_filename_rendering/task_for_testing_filename_rendering/%s/42.log' % DEFAULT_DATE.isoformat(
        )

        fth = FileTaskHandler(
            '', '{dag_id}/{task_id}/{execution_date}/{try_number}.log')
        rendered_filename = fth._render_filename(self.ti, 42)
        self.assertEqual(expected_filename, rendered_filename)
    def test_jinja_rendering(self):
        expected_filename = \
            'dag_for_testing_filename_rendering/task_for_testing_filename_rendering/%s/42.log' \
            % DEFAULT_DATE.isoformat()

        fth = FileTaskHandler('', '{{ ti.dag_id }}/{{ ti.task_id }}/{{ ts }}/{{ try_number }}.log')
        rendered_filename = fth._render_filename(self.ti, 42)
        self.assertEqual(expected_filename, rendered_filename)