cylc-flow
cylc-flow copied to clipboard
Command task matching requirements
Supersedes: #5763, #5695
See also: #5752, #5416, #5677
TODO:
- [ ] hold
- [ ] set
- [ ] trigger
- [ ] release
- [ ] kill
- [ ] poll
- [ ] remove
- show
- [ ] show command
- [ ] Update the troubleshooting page to remove the note about
cylc show
not working outside the n=0 window.
target task population
Different commands need to select tasks from different populations:
command | population |
---|---|
hold , set , trigger |
pool, future, past |
release |
held-tasks list only #5752 |
kill , poll |
pool only |
remove |
pool, past |
show |
pool only (but maybe future, past too #5677) |
task name wildcards
We need to support matching task names by glob (or regex) and family name in all cases (not just in the pool.
For future and past tasks this means:
- find all matching task def names (or member tasks of matching family names)
- check which are valid for the given cycle point(s)
cycle point wildcards
We need to support matching cycle points by glob in the pool, e.g. to target all incomplete tasks.
We should not support cycle point wildcards outside of the pool (well, *
is certainly bad; [5-8]
(e.g.) may be OK in principle but still dangerous and not that much of a plus to users anyway).
task qualifiers
Use of some task qualifiers (i.e. :output
) necessarily restricts matching to the pool. E.g. cylc set --out=succeeded "*:failed"
should set all n=0
incomplete failed tasks to succeeded.
We can probably decide that use of any qualifier means pool only (is there any need to distinguish between e.g. completed-succeeded and completed-failed past tasks?)
Terminology:
-
pool: task proxies in the
n=0
active window -
future, past: abstract tasks anywhere else in the graph, i.e.
n>0
andn<0