#!/usr/bin/env perl use 5.008; use strict; use warnings; use Getopt::Long; use Helios::Service; our $VERSION = '2.72_0950'; our $Args; our @JobHistory; our @Logs; our $OPT_JOBID = ''; our $OPT_HELP = 0; # 1st arg is jobid if it doesn't start with - if ($ARGV[0] !~ /^-/) { $OPT_JOBID = shift @ARGV; } GetOptions( "jobid=s" => \$OPT_JOBID, "help" => \$OPT_HELP, ); # help mode if ($OPT_HELP) { require Pod::Usage; Pod::Usage::pod2usage(-verbose => 2, -exitstatus => 0); } unless ($OPT_JOBID) { warn "$0: A jobid is required.\n"; exit(1); } # this is a little old school, but we'll # instantiate the base Helios::Service to # get a collective database connection my $s = Helios::Service->new(); $s->prep(); my $dbh = $s->dbConnect(); my @placeholders; my $sql = q{ SELECT exitstatus FROM helios_job_history_tb WHERE jobid = ? ORDER BY complete_time DESC }; push(@placeholders, $OPT_JOBID ); my @rs; eval { @rs = @{ $dbh->selectall_arrayref($sql, undef, @placeholders) }; 1; } or do { my $E = $@; warn "$0: ERROR: $E\n"; exit(1); }; if ( @rs ) { print $rs[0]->[0],"\n"; } $dbh->disconnect(); exit(0); =head1 NAME helios_job_status - get a Helios job's exitstatus =head1 SYNOPSIS helios_job_status --jobid=<jobid> # return the exitstatus for job 12345 helios_job_status --jobid=12345 # first argument is assumed to be jobid, so "--jobid=" is optional helios_job_status 12345 =head1 DESCRIPTION The helios_job_status command can be used to retrieve the exitstatus a job recorded in the Helios collective database. When a job is finished using the completedJob(), failedJob(), or failedJobPermanent() methods in your Helios::Service class, an exitstatus is recorded. Successful jobs are marked with a status of 0, while failed jobs will have an nonzero status. If a job has been marked as finished in a Helios collective, this command will return that job's exitstatus via STDOUT. If the job in question does not exist or has not been completed, nothing will be returned. =head1 AUTHOR Andrew Johnson, E<lt>lajandy at cpan dot orgE<gt> =head1 COPYRIGHT AND LICENSE Copyright (C) 2013-4 by Logical Helion, LLC. 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.0 or, at your option, any later version of Perl 5 you may have available. =head1 WARRANTY This software comes with no warranty of any kind. =cut