IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 28940


Ignore:
Timestamp:
Aug 17, 2010, 10:43:39 AM (16 years ago)
Author:
bills
Message:

"improvements" to psstatus

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/psstatus

    r28355 r28940  
    1010use File::Temp qw(tempfile);
    1111
    12 my $limit = 20;
     12my $limit = 0;
    1313my $running;
     14my $finished;
    1415my $req_faulted;
    1516my $job_faulted;
     
    2324GetOptions(
    2425    'running|r',     \$running,
     26    'finished|f',    \$finished,
    2527    'req_faulted',   \$req_faulted,
    2628    'job_faulted',   \$job_faulted,
     
    3234pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
    3335
    34 my $no_args = ! (defined $running or defined $req_faulted or defined $job_faulted );
     36my $no_args = ! (defined $running or defined $finished or defined $req_faulted or defined $job_faulted );
     37
     38die "cannot supply --running and --finished\n" if ($running and $finished);
     39   
    3540
    3641my $ipprc =  PS::IPP::Config->new();
    3742my $dbh = getDBHandle();
    3843
    39 my $select = "SELECT req_id, name, label, reqType, pstampRequest.state, pstampRequest.fault, count(job_id) AS numJobs, timestamp";
     44my $jobLabel = $running ? "Running jobs" : "Num Jobs";
     45my $select = "SELECT req_id, name, label, reqType, pstampRequest.state, pstampRequest.fault, count(job_id) AS '$jobLabel', timestamp";
    4046
    4147$select .= ", outdir" if ($verbose);
     
    4551my $sql = $select . $from . $where;
    4652
    47 if ($no_args and $limit) {
     53$limit = 20 if ($no_args);
     54# if ($no_args and $limit) {
     55if (0 and $limit) {
    4856    # use mysql to get the last_req_id
    4957    # this works but it prints out the @last_req_id value which is distracting. Use dbi for the query
    50     my $stmt = $dbh->prepare("SELECT req_id FROM pstampRequest ORDER BY req_id DESC LIMIT 1");
     58    my $where = "";
     59    if ($running) {
     60        $where = " WHERE pstampRequest.state = 'run' OR pstampRequest.state = 'new'";
     61    } elsif ($finished) {
     62        $where = " WHERE pstampRequest.state = 'stop'";
     63    }
     64    my $stmt = $dbh->prepare("SELECT req_id FROM pstampRequest $where ORDER BY req_id DESC LIMIT 1");
    5165    $stmt->execute();
    5266    my $row = $stmt->fetchrow_hashref();
     
    5973}
    6074if ($running) {
    61     $sql .= " AND (pstampRequest.state = 'new' OR pstampRequest.state = 'run')"
     75    $sql .= " AND (pstampRequest.state = 'new' OR pstampRequest.state = 'run') AND (pstampJob.state = 'run' OR pstampJob.state IS NULL)";
     76} elsif ($finished) {
     77    $sql .= " AND (pstampRequest.state = 'stop') AND date_add(timestamp, interval 1 day) >=utc_timestamp()"
    6278}
    6379if ($req_faulted) {
     
    6985$sql .= " GROUP BY req_id";
    7086
     87if ($finished) {
     88    $sql .= " ORDER BY timestamp DESC";
     89}
    7190if ($limit and !$no_args) {
    7291    $sql .= " LIMIT $limit";
Note: See TracChangeset for help on using the changeset viewer.