This is a placeholder for work around introducing a new stackable plugin interface responsible for running what exist today as the Prolog / Epilog / PrologSlurmctld / EpilogSlurmctld / TaskProlog / TaskEpilog script interfaces. Those existing interfaces would be served by a "script" plugin; additional plugins could be stacked, and would each be provided with access to the appropriate struct with the pertinent job details. Alongside this, the work will require some cleanup and unification of the existing mix of structs, and result in a wider range of values exposed than are currently accessible as environment variable to the various script interfaces.
First commit in this series. I've decided to name these "PrEpPlugins" as a somewhat-coherent abbreviation of "Prolog/Epilog/PrologSlurmctld/EpilogSlurmctldPlugins". I'll have some additional commits to build the prep/script plugin, and move the existing behavior for those individual options, behind that interface. commit d18fd7841fa24829e06490d0c2bae2ca09f41b73 Author: Tim Wickberg <tim@schedmd.com> AuthorDate: Thu Oct 3 12:21:33 2019 -0600 Commit: Tim Wickberg <tim@schedmd.com> CommitDate: Thu Oct 3 22:34:07 2019 -0600 Add PrEpParameters and PrEpPlugins to slurm.conf. PrEp is short for "Prolog / Epilog".
My apologies for not updating this ticket sooner, we lost track of getting the documentation done. This API is included in the 20.02 release, and we thank Dresden for their sponsorship of this work. After some internal deliberation, the best name we could come up with for this was "PrEpPlugins" - short for Prolog/EpilogPlugins. The existing Prolog / Epilog / PrologSlurmctld / EpilogSlurmctld script handling code was all relocated to the first of these new "prep" plugins as "prep/script", and this plugin is enabled by default if the option has not been specified. As should be clear from the name, this interface is designed to stack, and allow for multiple C plugins to be developed with direct access to the underlying job record (in the slurmctld) or job_env and job_cred details (in the slurmd). I do plan to evolve this further in future releases once we have had a chance to re-unify the task launch code. There is a lot of cleanup work being done on the master branch (which will become 20.11 this fall) that needs to complete before that can proceed, but that does not stop this from being a useful API today. Initial documentation has been pushed now as well, and can be seen on the website at https://slurm.schedmd.com/prep_plugins.html . I'm marking this ticket as resolved, and ask if there are further followup questions that they be submitted as new separate tickets. cheers, - Tim