From 8dc412c9939d671a52d307c392e15b02d36c8524 Mon Sep 17 00:00:00 2001 From: Hana Snow Date: Wed, 12 Jul 2023 18:11:58 -0400 Subject: [PATCH] handle error for first time dag is triggered --- seqr/views/apis/data_manager_api_tests.py | 1 + seqr/views/utils/airflow_utils.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/seqr/views/apis/data_manager_api_tests.py b/seqr/views/apis/data_manager_api_tests.py index e55b491ef4..0233b765f2 100644 --- a/seqr/views/apis/data_manager_api_tests.py +++ b/seqr/views/apis/data_manager_api_tests.py @@ -1261,6 +1261,7 @@ def test_load_data(self, mock_subprocess): url = reverse(load_data) self.check_pm_login(url) + responses.replace(responses.GET, f'{self.dag_url}/dagRuns', json={'dag_runs': []}) mock_subprocess.return_value.communicate.return_value = b'', b'File not found' body = {'filePath': 'gs://test_bucket/mito_callset.mt', 'datasetType': 'MITO', 'sampleType': 'WGS', 'projects': [ 'R0001_1kg', 'R0004_non_analyst_project', diff --git a/seqr/views/utils/airflow_utils.py b/seqr/views/utils/airflow_utils.py index 0e71ea6e9a..08c25466cd 100644 --- a/seqr/views/utils/airflow_utils.py +++ b/seqr/views/utils/airflow_utils.py @@ -58,8 +58,8 @@ def _send_slack_msg_on_failure_trigger(e, dag_id, dag, error_message): def _check_dag_running_state(dag_id): endpoint = 'dags/{}/dagRuns'.format(dag_id) resp = _make_airflow_api_request(endpoint, method='GET') - lastest_dag_runs = resp['dag_runs'][-1] - if lastest_dag_runs['state'] == 'running': + dag_runs = resp['dag_runs'] + if dag_runs and dag_runs[-1]['state'] == 'running': raise DagRunningException(f'{dag_id} is running and cannot be triggered again.')