Policy implementation is done using a script file plug-in written in Perl. The qb.conf setting for this is as follows:
supervisor_policy_binding = Perlsupervisor_policy_library = plugin_path
This document isn't meant to be a tutorial on the Perl scripting language so we will assume administrators modifying this module in the following documentation already have a functional knowledge of Perl's syntax. Good online resources for learning Perl can be found at {+}http://www.perl.com+ there also many good published books such as Learning Perl published by O'Reilly which can get a beginning developer started with Perl scripting.
To create a new queuing algorithm, the developer must create a Perl module with the following Perl functions:
- qb_init()
- qb_approve_modify($oldjob, $newjob)
- qb_approve_submit($job)
- qb_calcstatus($subjobstatus, $agendastatus)
- qb_sudo_admin($username, $job)
A function if not defined will automatically be overridden with the "Default Policy".
Example scripts can be found here:
Linux: /usr/local/pfx/qube/examples/supervisor
Windows: C:\Program Files\pfx\qube\examples\supervisor
OS X: /Applications/pfx/qube/examples/supervisor
The functions defined are all used to control the queuing algorithm's properties.