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

Run a modified version of a task from gcylc #91

Closed benfitzpatrick closed 9 years ago

benfitzpatrick commented 12 years ago

It may be very useful to occasionally submit a task with different parameters than anticipated in the retry mechanism - especially useful in an emergency. In this case, it would be good to be able to submit a modified task script as a one-off, and to be able to do this from within gcontrol.

matthewrmshin commented 12 years ago

This is a problem only for gcontrol. The general problem is that we need a way to modify some runtime settings (e.g. add/modify/delete of an environment variable or a LoadLeveler directive) of a task proxy in a running suite (from gcontrol or from a CLI command).

One way to do this is to allow the suite to return to the client a simple data structure that represents the (modifiable?) runtime settings of a task. It is then up to the client to present the data structure to the user for modification. (A CLI client, for example, can present the data in configobj format in a text editor.) On changes, the client would then send the data structure back to the suite, which may then check the integrity of the new settings and decide whether to accept the change or not.

cylc commented 12 years ago

Matt, this may be a solved problem now - sort of - a week or so ago I put in the ability to reload a suite definition at run time - see "cylc reload --help". So you can change a task definition by editing the suite.rc file while the suite is running, tell cylc to reload the suite definition, then re-trigger the task with its new settings. Do you think this is sufficient, or do we really need the ability to do one-off changes without tampering with the original suite definition? If so, your ideas for how to do it look pretty good.

matthewrmshin commented 12 years ago

Hilary, I think the ability to do one-off changes is what we need - mainly to deal with, say, a one-off operational problem which only affects the task in the current cycle.

hjoliver commented 12 years ago

@dpmatthews has suggested that the new "cylc broadcast" functionality could be extended to do this (detail to come)

hjoliver commented 11 years ago

The general extension of the broadcast command (Issue #122) is complete, so that covers the CLI functionality. It would still be good to have a means of accessing this from gcontrol.

hjoliver commented 9 years ago

We should revive this issue. From my visit to BoM last week, SMS users consider "edit runs" to be essential. Even though cylc broadcast (and reload too) is more powerful than an SMS edit run, it probably is harder to use and to understand for non-experts.

how it should work

Right-click on a task in the cylc gui, choose "edit run" (or similar) to get the ability to modify task environment, scripting, etc. prior to re-triggering the task.

implementation

My preference is for (b).

hjoliver commented 9 years ago

(option b in progress)