diff --git a/airflow/www/templates/airflow/dag.html b/airflow/www/templates/airflow/dag.html index 05e6cc521dbcb..81e5f59e004e6 100644 --- a/airflow/www/templates/airflow/dag.html +++ b/airflow/www/templates/airflow/dag.html @@ -231,6 +231,12 @@ {% endif %} + + restore_page + ") + def parse_dag(self, file_token: str): + from airflow.api_connexion.endpoints.dag_parsing import reparse_dag_file + + with create_session() as session: + response = reparse_dag_file(file_token=file_token, session=session) + response_messages = { + 201: ["Reparsing request submitted successfully", "info"], + 401: ["Unauthenticated request", "error"], + 403: ["Permission Denied", "error"], + 404: ["DAG not found", "error"], + } + flash(response_messages[response.status_code][0], response_messages[response.status_code][1]) + redirect_url = get_safe_url(request.values.get("redirect_url")) + return redirect(redirect_url) + class ConfigurationView(AirflowBaseView): """View to show Airflow Configurations."""