cylc / cylc-flow

Cylc: a workflow engine for cycling systems.
https://cylc.github.io
GNU General Public License v3.0
329 stars 93 forks source link

extend 'cylc broadcast' functionality #122

Closed hjoliver closed 11 years ago

hjoliver commented 12 years ago

cylc broadcast is a new command that tasks or the suite operator can use to "broadcast" information to subsequent tasks via environment variables written to their job scripts by cylc. Currently it can target all tasks, or all tasks of a given name, or all tasks in a given cycle, or a single specific task.

@dpmatthews has suggested it would be useful to extend this to allow broadcasting any part of task runtime config, not just environment variables; and also to target members of a given family namespace.

this might be sufficient to address https://github.com/hjoliver/cylc/issues/91 For example, it would, presumably, be fairly easy to add support in gcontrol for broadcasting a variable to a particular task.

In fact, how difficult would it be to extend the broadcast command to allow you to alter any of the runtime properties (which would then fully address issue 91)? Then would allow you to, for instance, change some loadleveler setting or define some pre-command scripting. The command could take the following options: --cycle=CYCLE # default: all cycles --namespace=TASK # default: root --define=[SECTION]KEY=VALUE # multiple options allowed so

that you can change more than

                         # one setting in a single broadcast

--define=[SECTION]!KEY # disable a setting So % cylc broadcast MYVAR "the quick brown fox" would become % cylc broadcast --define=[environment]MYVAR="the quick brown fox"

hjoliver commented 12 years ago

See also #91 - which may or may not be a duplicate issue.

hjoliver commented 12 years ago

@dpmatthews also suggests we mark this feature as "experimental" if we don't extend it by the 5.0 release (I think he's concerned about users over-using it?)