NAME
XAS::Lib::Batch::Job - A class for the XAS environment
SYNOPSIS
use XAS::Lib::Batch::Job;
my $job = XAS::Lib::Batch::Job->new();
my $id = $job->qsub(...);
printf("job %s has started\n", $id);
while (my $stat = $job->qstat(-job => $id)) {
    if ($stat->{job_state} eq 'C') {
        printf("job %s has finished\n", $id);
    }
    sleep 10;
}
DESCRIPTION
This module provides an interface for manipulating jobs in a Batch System. Each available method is a wrapper around a given command. A command line is built, executed, and the return code is checked. If the return code is non-zero an exception is thrown. The exception will include the return code and the first line from stderr.
Since each method is a wrapper, there is a corresponding man page for the actual command. They should also be checked when problems arise.
METHODS
new
This method initializes the module and takes these parameters:
- -interface
 - 
The command line interface to use. This defaults to 'XAS::Lib::Batch::Interface::Torque'.
 
qsub(...)
This method will submit a job to the batch system and returns the jobs ID. It takes the following parameters:
- -jobname
 - 
The name of the job.
 - -queue
 - 
The queue to run the job on.
 - 
The email address to send status reports too. There can be more then one address or this can be a mailing list.
 - -command
 - 
The command to run.
 - -jobfile
 - 
The name of the job file to use. This needs to be a Badger::Filesystem::File object.
 - -logfile
 - 
The log file to use. This needs to be a Badger::Filesystem::File object.
 - -rerunable
 - 
Wither the job is rerunnable, this is optional and default to no.
 - -join_path
 - 
Wither to join stdout and stderr into one log file, this is optional and defaults to 'oe'.
 - -account
 - 
The optional account to run under.
 - -attributes
 - 
The optinal attributes that may be applied to this job. This should be a comma seperated list of name value pairs.
 - -environment
 - 
The optional environment variables that may be defined for the job. This should be a comma sperated list of name value pairs.
 - -env_export
 - 
Wither to export the users environment.
 - -exclusive
 - 
The option to run this job exclusivily. Default is no.
 - -hold
 - 
The option to submit this job in a hold state.
 - -resources
 - 
Optional resources to associate with this job. This should be a comma seperated list of name value pairs.
 - -user
 - 
The optional user account to run this job under.
 - -host
 - 
The optional host to run this job on.
 - -mail_points
 - 
The optional mail points that the user will be notified at. Defaults to 'bea'.
 - -after
 - 
The optional time to run the job after. This must be a DateTime object.
 - -shell_path
 - 
The optional path to the jobs shell. Defaults to /bin/sh.
 - -work_path
 - 
The optional path to put work files. This must be a Badger::Filesystem::Directory. Defaults to /tmp.
 - -priority
 - 
The optional priority to run the job at. Defaults to 0.
 
qstat(...)
This method returns that status of a job. This status will be a hash reference of the parsed output on stdout. It takes the following paramters:
- -job
 - 
The ID of the job, as returned from submit().
 - -host
 - 
The optional host that the job may be running on. Defaults to 'localhost'.
 
qdel(...)
This method will delete a job. It takes the following parameters:
- -job
 - 
The ID of the job, as returned from submit().
 - -host
 - 
The optional host that the job may be running on. Defaults to 'localhost'.
 - -force
 - 
Wither to force the jobs deletion. Defaults to no.
 - -message
 - 
The optional message to be placed into the log file.
 
qsig(...)
This method will send a signal to a job. It takes the following parameters:
- -job
 - 
The ID of the job, as returned from submit().
 - -host
 - 
The optional host that the job may be running on. Defaults to 'localhost'.
 - -signal
 - 
The signal to send to the job.
 
qhold(...)
This method will place a job into a hold status. It takes the following parameters:
- -job
 - 
The ID of the job, as returned from submit().
 - -host
 - 
The optional host that the job may be running on. Defaults to 'localhost'.
 - -type
 - 
The type of hold to place on the job. They can be any of the following:
user, other, system, noneIf more then one type is used, they need to be comma seperated.
 
qrls(...)
This method will release a job that was placed into a hold status. It takes the following parameters:
- -job
 - 
The ID of the job, as returned from submit().
 - -host
 - 
The optional host that the job may be running on. Defaults to 'localhost'.
 - -type
 - 
The type of hold to place on the job. They can be any of the following:
user, other, system, noneIf more then one type is used, they need to be comma seperated.
 
qmove(...)
This method will move a job from one queue to another. That queue may exist on another host. It takes the following parameters:
- -job
 - 
The ID of the job, as returned from submit().
 - -queue
 - 
The queue to move the job too.
 - -host
 - 
The optional host that the job may be running on. Defaults to 'localhost'.
 - -dhost
 - 
The optional destination host that the queue is on.
 
qmsg(...)
This method will place a message into the log file of a job. It takes the following parameters:
- -job
 - 
The ID of the job, as returned from submit().
 - -host
 - 
The optional host that the job may be running on. Defaults to 'localhost'.
 - -message
 - 
The message to be used.
 - -output
 - 
The log to place the message, It can be one of the following:
E - stderr O - stdout 
qrerun(...)
This method will attempt to rerun a job. It takes the following parameters:
- -job
 - 
The ID of the job, as returned from submit().
 - -host
 - 
The optional host that the job may be running on. Defaults to 'localhost'.
 
qalter(...)
This method will alter the parameters of a job. It takes the following parameters:
- -job
 - 
The ID of the job, as returned from submit().
 - -host
 - 
The optional host that the job may be running on. Defaults to 'localhost'.
 - -jobname
 - 
This will change the jobs name.
 - -rerunable
 - 
This will change the jobs rerunable status.
 - 
This will change the jobs email destinations.
 - -account
 - 
This will change the jobs account.
 - -attributes
 - 
This will change the optional job attributes.
 - -exclusive
 - 
This will change wither the job has exclusive access to the server.
 - -resources
 - 
This will change the jobs optional resources.
 - -user
 - 
This will change the jobs user.
 - -mail_points
 - 
This will change the jobs mail points.
 - -shell_path
 - 
This will change the jobs shell.
 - -hold
 - 
This will hold the job.
 - -join_path
 - 
This will change the jobs join path.
 - -after
 - 
This will change the time that job will run after.
 - -out_path
 - 
This will changes the jobs output path, it must be a Badger::Filesystem::File object.
 - -error_path
 - 
This will changes the jobs error path, it must be a Badger::Filesystem::File object.
 - -priority
 - 
This will change the jobs priority.
 
SEE ALSO
AUTHOR
Kevin L. Esteb, <kevin@kesteb.us>
COPYRIGHT AND LICENSE
Copyright (c) 2015 Kevin L. Esteb
This is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0. For details, see the full text of the license at http://www.perlfoundation.org/artistic_license_2_0.