flux_jobtap_get_flux(3)
SYNOPSIS
#include <flux/core.h>
#include <flux/jobtap.h>
flux_t *flux_jobtap_get_flux (flux_plugin_t *p);
int flux_jobtap_service_register (flux_plugin_t *p,
const char *method,
flux_msg_handler_f cb,
void *arg);
int flux_jobtap_reprioritize_all (flux_plugin_t *p);
int flux_jobtap_reprioritize_job (flux_plugin_t *p,
flux_jobid_t id,
unsigned int priority);
int flux_jobtap_priority_unavail (flux_plugin_t *p,
flux_plugin_arg_t *args);
int flux_jobtap_reject_job (flux_plugin_t *p,
flux_plugin_arg_t *args,
const char *fmt,
...);
Link with -lflux-core.
DESCRIPTION
These interfaces are used by Flux jobtap plugins which are used to extend the job manager broker module.
flux_jobtap_get_flux()
returns the job manager's Flux handle given
the plugin's flux_plugin_t
. This can be used by a jobtap plugin
to send RPCs, schedule timer watchers, or other asynchronous work.
flux_jobtap_service_register()
registers a service name method
under the job manager which will be handled by the provided message
handler cb
. The constructed service name will be
job-manager.<name>.<method>
where name
is the name of the plugin
as returned by flux_plugin_get_name()
. As such, this call may
fail if the jobtap plugin has not yet set a name for itself using
flux_plugin_set_name()
.
flux_jobtap_reprioritize_all()
requests that the job manager begin
reprioritization of all pending jobs, i.e. jobs in the PRIORITY and
SCHED states. This will result on each job having a job.priority.get
callback invoked on it.
flux_jobtap_reprioritize_job()
allows a jobtap plugin to asynchronously
assign the priority of a job.
flux_jobtap_priority_unavail()
is a convenience function which may
be used by a plugin in the job.state.priority
priority callback to
indicate that a priority for the job is not yet available. It can be
called as:
return flux_jobtap_priority_unavail (p, args);
flux_jobtap_reject_job()
is a convenience function which may be used
by a plugin from the job.validate
callback to reject a job before its
submission is fully complete. The error and optional message supplied in
fmt
will be returned to the originating job submission request. This
function returns -1
so that it may be conveniently called as:
return flux_jobtap_reject_job (p, args,
"User exceeded %d jobs",
limit);
RETURN VALUE
flux_jobtap_get_flux()
returns a flux_t
handle on success.
NULL
is returned with errno set to EINVAL
if the supplied
flux_plugin_t
argument is not a jobtap plugin handle.
flux_jobtap_reject_job()
always returns -1
so that it may be used
to exit the job.validate
callback.
The remaining functions return 0 on success, -1 on failure.
RESOURCES
Flux: http://flux-framework.org
Flux RFC: https://flux-framework.readthedocs.io/projects/flux-rfc
Issue Tracker: https://github.com/flux-framework/flux-core/issues