| PBS documentation | Contained in the PBS distribution. |
PBS - Perl extension for PBS
use strict;
use PBS;
use PBS::Status;
use PBS::Attr();
my $pbs = PBS->new();
$pbs->connect() || die $pbs->error(), "\n";
my $stat = $pbs->stat_queue("queue_name");
or
my $stat = $pbs->stat_node("node_name");
or
my $stat = $pbs->stat_job("job_id");
foreach my $s (@$stat) {
print $s->{'name'}, " ", $s->{'text'}, "\n";
my $attrs = $s->{'attributes'};
my $attr_list = $attrs->get();
foreach my $a (@$attr_list) {
print $a->{'name'}, "=", $a->{'value'}, "\n";
}
}
$pbs->disconnect();
Perl interface to the Portable Batch System
None by default.
MAXNAMLEN MAXPATHLEN MAX_ENCODE_BFR MGR_CMD_ACTIVE MGR_CMD_CREATE MGR_CMD_DELETE MGR_CMD_LIST MGR_CMD_PRINT MGR_CMD_SET MGR_CMD_UNSET MGR_OBJ_JOB MGR_OBJ_NODE MGR_OBJ_NONE MGR_OBJ_QUEUE MGR_OBJ_SERVER MSG_ERR MSG_OUT PBS_BATCH_SERVICE_PORT PBS_BATCH_SERVICE_PORT_DIS PBS_INTERACTIVE PBS_MANAGER_SERVICE_PORT PBS_MAXCLTJOBID PBS_MAXDEST PBS_MAXGRPN PBS_MAXHOSTNAME PBS_MAXPORTNUM PBS_MAXQUEUENAME PBS_MAXROUTEDEST PBS_MAXSEQNUM PBS_MAXSERVERNAME PBS_MAXSVRJOBID PBS_MAXUSER PBS_MOM_SERVICE_PORT PBS_SCHEDULER_SERVICE_PORT PBS_TERM_BUF_SZ PBS_TERM_CCA PBS_USE_IFF RESOURCE_T_ALL RESOURCE_T_NULL SHUT_DELAY SHUT_IMMEDIATE SHUT_QUICK SHUT_SIG
Also see the documentation for PBS::Status and PBS::Attr
Todd Merritt, <tmerritt@email.arizona.edu>
Copyright (C) 2004 by Todd Merritt
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.1 or, at your option, any later version of Perl 5 you may have available.
| PBS documentation | Contained in the PBS distribution. |
package PBS; use 5.008001; use strict; use warnings; use Carp; require Exporter; use AutoLoader; our @ISA = qw(Exporter); # Items to export into callers namespace by default. Note: do not export # names by default without a very good reason. Use EXPORT_OK instead. # Do not simply export all your public functions/methods/constants. # This allows declaration use PBS ':all'; # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK # will save memory. our %EXPORT_TAGS = ( 'all' => [ qw( MAXNAMLEN MAXPATHLEN MAX_ENCODE_BFR MGR_CMD_ACTIVE MGR_CMD_CREATE MGR_CMD_DELETE MGR_CMD_LIST MGR_CMD_PRINT MGR_CMD_SET MGR_CMD_UNSET MGR_OBJ_JOB MGR_OBJ_NODE MGR_OBJ_NONE MGR_OBJ_QUEUE MGR_OBJ_SERVER MSG_ERR MSG_OUT PBS_BATCH_SERVICE_PORT PBS_BATCH_SERVICE_PORT_DIS PBS_INTERACTIVE PBS_MANAGER_SERVICE_PORT PBS_MAXCLTJOBID PBS_MAXDEST PBS_MAXGRPN PBS_MAXHOSTNAME PBS_MAXPORTNUM PBS_MAXQUEUENAME PBS_MAXROUTEDEST PBS_MAXSEQNUM PBS_MAXSERVERNAME PBS_MAXSVRJOBID PBS_MAXUSER PBS_MOM_SERVICE_PORT PBS_SCHEDULER_SERVICE_PORT PBS_TERM_BUF_SZ PBS_TERM_CCA PBS_USE_IFF RESOURCE_T_ALL RESOURCE_T_NULL SHUT_DELAY SHUT_IMMEDIATE SHUT_QUICK SHUT_SIG ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( MAXNAMLEN MAXPATHLEN MAX_ENCODE_BFR MGR_CMD_ACTIVE MGR_CMD_CREATE MGR_CMD_DELETE MGR_CMD_LIST MGR_CMD_PRINT MGR_CMD_SET MGR_CMD_UNSET MGR_OBJ_JOB MGR_OBJ_NODE MGR_OBJ_NONE MGR_OBJ_QUEUE MGR_OBJ_SERVER MSG_ERR MSG_OUT PBS_BATCH_SERVICE_PORT PBS_BATCH_SERVICE_PORT_DIS PBS_INTERACTIVE PBS_MANAGER_SERVICE_PORT PBS_MAXCLTJOBID PBS_MAXDEST PBS_MAXGRPN PBS_MAXHOSTNAME PBS_MAXPORTNUM PBS_MAXQUEUENAME PBS_MAXROUTEDEST PBS_MAXSEQNUM PBS_MAXSERVERNAME PBS_MAXSVRJOBID PBS_MAXUSER PBS_MOM_SERVICE_PORT PBS_SCHEDULER_SERVICE_PORT PBS_TERM_BUF_SZ PBS_TERM_CCA PBS_USE_IFF RESOURCE_T_ALL RESOURCE_T_NULL SHUT_DELAY SHUT_IMMEDIATE SHUT_QUICK SHUT_SIG ); our $VERSION = '0.02'; sub AUTOLOAD { # This AUTOLOAD is used to 'autoload' constants from the constant() # XS function. my $constname; our $AUTOLOAD; ($constname = $AUTOLOAD) =~ s/.*:://; croak "&PBS::constant not defined" if $constname eq 'constant'; my ($error, $val) = constant($constname); if ($error) { croak $error; } { no strict 'refs'; # Fixed between 5.005_53 and 5.005_61 #XXX if ($] >= 5.00561) { #XXX *$AUTOLOAD = sub () { $val }; #XXX } #XXX else { *$AUTOLOAD = sub { $val }; #XXX } } goto &$AUTOLOAD; } require XSLoader; XSLoader::load('PBS', $VERSION); # Preloaded methods go here. sub new { my $self = shift; my $type = ref($self) || $self; my $obj = bless {}, $type; $obj->{'conn'} = -1; return($obj); } sub DESTROY { my $self = shift; if ($self->{'conn'} > 0) { $self->_pbs_disconnect($self->{'conn'}); } } sub disconnect { my $self = shift; if ($self->{'conn'} > 0) { $self->_pbs_disconnect($self->{'conn'}); } } sub connect { my $self = shift; my $server = shift || $self->pbs_default(); if ($server) { $self->{'conn'} = $self->_pbs_connect($server); return(1); } else { return(undef); } } sub stat_queue { my $self = shift; my $target = shift; my $stat = $self->_pbs_statque($self->{'conn'}, $target); return($stat); } sub stat_node { my $self = shift; my $target = shift; my $stat = $self->_pbs_statnode($self->{'conn'}, $target); return($stat); } sub stat_job { my $self = shift; my $target = shift; my $stat = $self->_pbs_statjob($self->{'conn'}, $target); return($stat); } sub stat_server { my $self = shift; my $stat = $self->_pbs_statserver($self->{'conn'}); return($stat); } sub error { my $self = shift; return($self->get_error()); } # Autoload methods go after =cut, and are processed by the autosplit program. 1; __END__