Skip to content
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

Allow suites to override the run directory location? #390

Closed
hjoliver opened this issue Mar 27, 2013 · 4 comments
Closed

Allow suites to override the run directory location? #390

hjoliver opened this issue Mar 27, 2013 · 4 comments
Assignees
Labels

Comments

@hjoliver
Copy link
Member

I have one user who wants to be able to put all suite and job logs, and share and work directories etc. inside his suite definition directories. This used to be possible pre site/user config file when all these directories were individually configurable in runtime namespaces. Personally I'm not fond of the idea, but I'm posting this to flag it for consideration... It could be achieved in several ways, e.g.:

  • a "run directory" item in the suite.rc which if used would override the site/user item.
  • a single "put suite output in suite definition directory" option in the site/user file.
  • suite-specific variables in site/user "run directory" (requiring the suite definition to be parsed before site/user settings)

Implications for other task hosts would have to be thought through. And: non-suite access to the suite would require parsing the suite definition again.

Low priority at best as users can use symbolic links in the suite definition directory to get essentially the same effect now.

@hjoliver
Copy link
Member Author

The more I think about this the (even) less it seems worth doing. Having to parse a suite definition to find the output location is not good. For example, dependence between suites: if the upstream suite is being edited it may not parse, thus breaking the downstream suite even though the upstream suite is still running fine.

One way around this would be to parse the suite definition at registration time, and to store certain parameters like output locations along with the suite name registration. But this is not ideal, the registration db could get out sync with the suite if not updated quickly after suite changes. There is no server process watching for changes in registered suites, but I suppose we could have the registration db access code do a time stamp comparison every time a suite is accessed by a cylc command, and reparse if necessary to update itself (but again, same problem if the suite is currently broken due to editing in progress).

@m214089
Copy link

m214089 commented Mar 27, 2013

Hi Hilary,
as we do not have operational setups, we hope to get properly encapsulated 'working' units.

Means something like (just a sketch):

/etc
/bin
/lib
/share/restart
/share/output
/var

where the suite.def can be as well in etc/. The suite itself does not need to know much of this. That it does for the time being is just the try to transfer the existing setup one-to-one, which isn't a good idea anyway.
Hope that helps in your decision. I think you are right and the stuff should be adapted. There is only one thing:
it would be good to be able to determine a 'task run directory' so that a job can have a separate preparation/cleanup step.
Cheerio,
Luis

@hjoliver
Copy link
Member Author

@m214089 - question sent via email regarding your comment above.

@ghost ghost assigned hjoliver Apr 12, 2013
@hjoliver hjoliver removed this from the some-day milestone Jun 19, 2016
@hjoliver
Copy link
Member Author

Closing this. No one can think of a good reason to not use the standard locations, especially after #1885, when data directories can be redirected with symlinks as required.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants