ashb commented on code in PR #69998:
URL: https://github.com/apache/airflow/pull/69998#discussion_r4228580941
##########
providers/databricks/src/airflow/providers/databricks/plugins/databricks_workflow.py:
##########
@@ -374,13 +385,40 @@ class WorkflowJobRepairAllFailedLink(BaseOperatorLink,
LoggingMixin):
name = "Repair All Failed Tasks"
+ @property
+ def operators(self):
+ # On Airflow 3 a plugin extra link that declares no ``operators`` is
replaced at
+ # deserialization by an ``XComOperatorLink`` that just returns a URL
the task stored in
+ # XCom under ``xcom_key``. This link stores no such URL — it builds
the URL at request time
+ # in ``get_link`` from the run's XCom metadata — so it must survive as
the real object.
+ # Declaring the operators it applies to keeps it from being swapped
out. Lazy import avoids
+ # a circular import with the operator module.
Review Comment:
I think this is fine, but I also don't think the logic holds.
Given the plugin includes a custom app, couldn't the link could be
hard-coded to "the URL of that custom repair endpoint with task_id etc
pre-filled"?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]