dstandish commented on code in PR #30270:
URL: https://github.com/apache/airflow/pull/30270#discussion_r1147744620
##########
airflow/ti_deps/deps/trigger_rule_dep.py:
##########
@@ -263,8 +280,28 @@ def _iter_upstream_conditions() ->
Iterator[ColumnOperators]:
elif trigger_rule == TR.ALL_SKIPPED:
if success or failed:
new_state = TaskInstanceState.SKIPPED
-
+ elif trigger_rule == TR.ALL_DONE_SETUP_SUCCESS:
+ # when there is an upstream setup and they have all skipped,
then skip
+ if upstream_done and upstream_setup and skipped_setup >=
upstream_setup:
+ new_state = TaskInstanceState.SKIPPED
+ logging.warning(
+ "ti=%s skipped_setup >= upstream_setup (%s >= %s),
marking skipped",
+ ti.task_id,
+ skipped_setup,
+ upstream_setup,
+ )
+ elif upstream_done and upstream_setup > success_setup:
+ # when there is an upstream setup, they must all succeed
+ # otherwise, behave same as all done.
Review Comment:
> So what you say that we can make it happen by changing the code of current
trigger rules and without adding new ones. Thats good.
No I'm saying we do need this trigger rule, but user doesn't have to set it
manually -- it is done for them when they set task as teardown.
Re short circuit, that's good to know. You know, if user wants to use that,
they simply must do so knowing the consequences. And, I think your suggestion
in that comment is a reasonable one, that it can have a mode. If desired we
could update it not to skip teardowns by default. I don't have strong feelings
about that particular choice.
--
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]