Closed benfitzpatrick closed 9 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.
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.
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.
@dpmatthews has suggested that the new "cylc broadcast" functionality could be extended to do this (detail to come)
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.
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
cylc broadcast
under the hood to effect the changes), ORMy preference is for (b).
(option b in progress)
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.