-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rose suite run proposals cylc flow.rc #44
Merged
wxtim
merged 25 commits into
cylc:master
from
wxtim:rose-suite-run-proposals-cylc-flow.rc
Aug 27, 2019
Merged
Changes from all commits
Commits
Show all changes
25 commits
Select commit
Hold shift + click to select a range
c10ebdc
Proposed changes
wxtim b162aa3
moved some detail on future CLI into another folder.
wxtim 22b6a4a
thoughts on cylc-flow.rc
wxtim 227314b
changed a file name
wxtim 1291a50
Work on cylc-flow
wxtim 656304b
Update docs/rose-suite-run-proposal/cylc-flow-rc.md
wxtim f3ebca2
Update docs/proposal-rose-suite-run.md
wxtim 9faf4ad
stuiff
wxtim f2c55da
Merge branch 'rose-suite-run-proposals-cylc-flow.rc' of github.com:wx…
wxtim 0485e4e
Update docs/proposal-rose-suite-run.md
wxtim 804e5c6
Update docs/proposal-rose-suite-run.md
wxtim 3d8098c
Update docs/proposal-rose-suite-run.md
wxtim fb51d6e
fixes based on review
wxtim f155061
Merge branch 'rose-suite-run-proposals-cylc-flow.rc' of github.com:wx…
wxtim e921d1c
remove unwanted file
wxtim b5d78bd
spag changes
wxtim 2c61713
modified suite-rc spec with thoughts from Dave Matthews
wxtim e0c418e
stiff
wxtim 758a75c
Update docs/proposal-rose-suite-run.md
wxtim 8f24575
Merge branch 'rose-suite-run-proposals-cylc-flow.rc' of github.com:wx…
wxtim e90cb34
deleted a file which sould never have been committed
wxtim aabe0c6
deleted a file which sould never have been committed
wxtim 08d7de1
Refactored
wxtim d8534b5
Added thoughts on locking down global settings.
wxtim e1b6570
merged with master
wxtim File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,184 @@ | ||
# Proposal example of a new style `cylc-flow.rc` file | ||
|
||
## References | ||
[cylc-admin PR #40](https://github.com/cylc/cylc-admin/pull/40) | ||
[cylc-admin work plan](../proposal-rose-suite-run.md) | ||
|
||
## Purpose | ||
As part of the work to transfer functionality from `rose suite run` to cylc | ||
it is proposed that the options available in global, user and suite config | ||
files are brought into alignment. This file sets out a specification for the | ||
combined `cylc-flow.rc` file, although for the foreseeable future `suite.rc` | ||
will also be read in the same way. | ||
|
||
## Preamble | ||
|
||
To reduce changes required for end users this file format is based on | ||
`suite.rc`: Where aspects of the file are described as unchanged this implies | ||
that file contents are exactly the same as they would be in a `suite.rc`. | ||
Users of the `global.rc` are usually admins or power users and thus changes | ||
to the format of this file are preferable. | ||
|
||
It should be noted that although it will be possible to modify all settings in | ||
wxtim marked this conversation as resolved.
Show resolved
Hide resolved
|
||
all contexts, that some settings are more likely to be used in global contexts | ||
and some are more likely to be used in suite configs. It has been proposed | ||
that it ought to be possible for sysadmins to lock some settings in site | ||
configurations. | ||
|
||
**** | ||
|
||
## specification for `cylc-flow.rc` | ||
|
||
### 1. Top level sections to come from from `suite.rc` | ||
|
||
Most sites will leave these to users (Although I could imagine adding a | ||
copyright message to meta by default, for example, and one user has suggested a | ||
very simple runtime might be added too, for training and debugging purposes.) | ||
|
||
These items are: | ||
```ini | ||
[meta] | ||
[scheduling] | ||
[vizualization] | ||
``` | ||
|
||
* `[cylc]` will be renamed `[general]` | ||
|
||
### 2. Top level sections from site configuration | ||
|
||
It is likely that most users will continue to have these set by site admins. | ||
|
||
#### 2.1 Small changes | ||
|
||
* `[authentication]` becomes `[authorization]` | ||
|
||
* The `[suite servers]` to be renamed `[suite run platforms]` for consistency | ||
with job platforms. | ||
|
||
* `[test battery]` will be removed entirely. | ||
|
||
* `[task events]` will be moved to `[runtime][[root]][[[events]]]` | ||
|
||
#### 2.2 `[suite run platforms]` | ||
This is the dictionary key formerly known as ``[suite servers]``. Changed only | ||
for the purpose of keeping the name "platforms" conistent. This is expected to | ||
be set only by system administrators. It should include the former top-level | ||
section `[[suite host self-identification]]`. | ||
|
||
#### 2.3 `[cylc]` -> `[general]` | ||
|
||
`[cylc]` is be renamed `[general]`. | ||
|
||
`global.rc[cylc]` at present contains a subset of the items available in | ||
`suite.rc[cylc]` for this section so it is proposed that the new fill just has | ||
the larger set. These items are: | ||
```ini | ||
[cylc] | ||
health check interval = 600 | ||
task event mail interval = 300 | ||
[[events]] | ||
``` | ||
|
||
### 3 Job Platforms and the deprecation of `[runtime][[TASK]][[[job]]]host` | ||
|
||
#### 3.1 `[job platforms]` | ||
Many of the options in this section will be very similar to `[hosts]` | ||
It is expected that these will mainly be set at site level, but that | ||
small numbers of power users may wish to over-ride them. | ||
|
||
```ini | ||
[job platforms] | ||
[[example platform]] | ||
run directory = | ||
work directory = | ||
task communication method = | ||
submission polling intervals = | ||
execution polling intervals = | ||
scp command = | ||
ssh command = | ||
use login shell = | ||
login hosts = # list of possible login hosts | ||
batch system = # name of batch system | ||
cylc executable = | ||
global init-script = | ||
copyable environment variables = | ||
retrieve job logs = | ||
retrieve job logs command = | ||
retrieve job logs max size = [[default directives]] | ||
|
||
retrieve job logs retry delays = | ||
task event handler retry delays = | ||
tail command template = | ||
[[batch systems]] | ||
[[__MANY__]] | ||
err tailer = | ||
out tailer = | ||
err viewer = | ||
out viewer = | ||
job name length maximum = | ||
execution time limit polling intervals = | ||
|
||
|
||
[[default directives]] # This is probably something to do | ||
--some-directive="directive here!" # sometime after cylc8 | ||
``` | ||
|
||
#### 3.2 Legacy Hosts behaviour | ||
`[hosts]` will be deprecated but we need to keep many of its settings in | ||
`[job platforms]`. For back compatibility host should re-direct to | ||
`[runtime][[__MANY__]][[[platform]]]`. If the re-mapped `host` is part of a | ||
cluster defined in `[job platforms]` then that job will use that cluster. | ||
If a user wishes to over-ride this they can over-ride the | ||
`[job-platforms][[PLATFORM]]` section. | ||
|
||
|
||
### 4 Top level sections to merge in a more complex way | ||
|
||
#### 4.1 `[[[job]]]` & `[[[remote]]]` | ||
Old `[runtime][[__MANY__]][[[job]]]` & `[[[remote]]]` | ||
sections to be merged and rationalized, being replaced by a new | ||
`[runtime][[__MANY__]][[[job]]]` section. | ||
|
||
We should select the platform defined by `[job platforms]` | ||
|
||
```ini | ||
[runtime] | ||
|
||
[[job]] | ||
platform = | ||
``` | ||
|
||
I think that we will probably want users to set this in the | ||
[job platforms] section, leaving some of these options here as due-to-be | ||
deprecated back compat over-rides which will give warnings if set? | ||
|
||
```ini | ||
batch system = | ||
batch submit command template = | ||
execution polling intervals = | ||
execution retry delays = | ||
execution time limit = | ||
submission polling intervals = | ||
submission retry delays = | ||
host = | ||
owner = | ||
suite definition directory = | ||
retrieve job logs = | ||
retrieve job logs max size = | ||
retrieve job logs retry delays = | ||
[[[batch systems]]] | ||
err tailer = | ||
out tailer = | ||
err viewer = | ||
out viewer = | ||
job name length maximum = | ||
execution time limit polling intervals = | ||
``` | ||
|
||
### Locking down global settings | ||
There should be a mechanism by which system administators can lock global | ||
settings for their sites. This should probably be a `lock=True/False` switches | ||
within those settings that we wish to make lockable. If unset these will | ||
default to `False`. If set to `True` a user who tries to over-ride that setting | ||
will see a warning explaining that the setting has been over-ridden by a site | ||
admin. |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe suite running hosts or suite running platform?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd prefer "suite run hosts" or "suite run platform".
I'm still not sure about "platform" in general. I forget the original argument against "cluster" ... but maybe "cluster" is OK even for a single host (the minimum size limit of a cluster!)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The idea is that platforms is a more general/neutral term, and that, although clusters can include clusters of 1, that generally the term implies clusters of size >> 1.
I think that a customer hearing cluster will automatically assume we are talking about HPC/Large Compute resource, whereas "platfoms" covers submitting jobs to the raspi on my desk, my smartwatch, my desktop, Matt's desktop, a cylc server, or an HPC or SPICE system.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've made it "suite run platform" for the time being.