flux.job.frobnicator.frobnicator module
- class flux.job.frobnicator.frobnicator.FrobnicatorPlugin(parser)
Bases:
object
Base class for plugins which modify jobspec in place
- configure(args, config)
Configure a FrobnicatorPlugin. Run after arguments are parsed
- Parameters
args (
Namespace
) -- The resulting namespace after callingargparse.parse_args() --
config (
dict
) -- The current broker config, stored as a Pythondictionary. --
- abstract frob(jobspec, userid, urgency, flags)
Modify jobspec. A FrobnicatorPlugin must implement this method.
The plugin should modify the jobspec parameter directly. Extra job information (user, urgency, flags) are available in the
info
parameter.- Parameters
jobspec (
Jobspec
) -- The jobspec to modifyuserid (
int
) -- Submitting userurgency (
int
) -- Initial job urgencyflags (
int
) -- Job submission flags
- Returns
None or raises exception.
- class flux.job.frobnicator.frobnicator.JobFrobnicator(argv, pluginpath=None, parser=None)
Bases:
object
A plugin-based job modification class
JobFrobnicator loads an ordered stack of plugins that implement the FrobnicatorPlugin interface from the 'flux.job.frobnicator.plugins' namespace.
- default_frobnicators = ['defaults', 'constraints']
- frob(jobspec, user=None, flags=None, urgency=16)
Modify jobspec using stack of loaded frobnicator plugins
- Parameters
jobspec (
Jobspec
) -- A Jobspec or JobspecV1 object which will be modified in placeuserid (
int
) -- Submitting userflags (
int
) -- Job submission flagsurgency (
int
) -- Initial job urgency
- Returns
A dictionary containing a result object, including keys:
{ 'errnum': 0, 'errmsg': "An error message", 'data': jobspec or None }
- Return type
dict
- plugin_namespace = 'flux.job.frobnicator.plugins'
- start()
Read broker config, select and configure frobnicator plugins