This is an automated email from the ASF dual-hosted git repository.

ephraimanierobi pushed a commit to branch v2-3-test
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit 605dbd08bc91fba4fe0c1f08f6e240e178028794
Author: Tzu-ping Chung <[email protected]>
AuthorDate: Tue May 3 15:22:12 2022 -0600

    Show warning if '/' is used in a DAG run ID (#23106)
    
    (cherry picked from commit 451c7cbc42a83a180c4362693508ed33dd1d1dab)
---
 airflow/models/dag.py | 8 ++++++++
 airflow/www/views.py  | 8 ++++++++
 2 files changed, 16 insertions(+)

diff --git a/airflow/models/dag.py b/airflow/models/dag.py
index 527928adb9..25da5b9489 100644
--- a/airflow/models/dag.py
+++ b/airflow/models/dag.py
@@ -2301,6 +2301,14 @@ class DAG(LoggingMixin):
                 "Creating DagRun needs either `run_id` or both `run_type` and 
`execution_date`"
             )
 
+        if run_id and "/" in run_id:
+            warnings.warn(
+                "Using forward slash ('/') in a DAG run ID is deprecated. Note 
that this character "
+                "also makes the run impossible to retrieve via Airflow's REST 
API.",
+                DeprecationWarning,
+                stacklevel=3,
+            )
+
         logical_date = timezone.coerce_datetime(execution_date)
         if data_interval is None and logical_date is not None:
             warnings.warn(
diff --git a/airflow/www/views.py b/airflow/www/views.py
index d6103b1bc3..bc065db6b8 100644
--- a/airflow/www/views.py
+++ b/airflow/www/views.py
@@ -1904,6 +1904,14 @@ class Airflow(AirflowBaseView):
             flash(f"The run_id {dr.run_id} already exists", "error")
             return redirect(origin)
 
+        # Flash a warning when slash is used, but still allow it to continue 
on.
+        if run_id and "/" in run_id:
+            flash(
+                "Using forward slash ('/') in a DAG run ID is deprecated. Note 
that this character "
+                "also makes the run impossible to retrieve via Airflow's REST 
API.",
+                "warning",
+            )
+
         run_conf = {}
         if request_conf:
             try:

Reply via email to