Changeset 28940
- Timestamp:
- Aug 17, 2010, 10:43:39 AM (16 years ago)
- File:
-
- 1 edited
-
trunk/tools/psstatus (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/psstatus
r28355 r28940 10 10 use File::Temp qw(tempfile); 11 11 12 my $limit = 20;12 my $limit = 0; 13 13 my $running; 14 my $finished; 14 15 my $req_faulted; 15 16 my $job_faulted; … … 23 24 GetOptions( 24 25 'running|r', \$running, 26 'finished|f', \$finished, 25 27 'req_faulted', \$req_faulted, 26 28 'job_faulted', \$job_faulted, … … 32 34 pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV; 33 35 34 my $no_args = ! (defined $running or defined $req_faulted or defined $job_faulted ); 36 my $no_args = ! (defined $running or defined $finished or defined $req_faulted or defined $job_faulted ); 37 38 die "cannot supply --running and --finished\n" if ($running and $finished); 39 35 40 36 41 my $ipprc = PS::IPP::Config->new(); 37 42 my $dbh = getDBHandle(); 38 43 39 my $select = "SELECT req_id, name, label, reqType, pstampRequest.state, pstampRequest.fault, count(job_id) AS numJobs, timestamp"; 44 my $jobLabel = $running ? "Running jobs" : "Num Jobs"; 45 my $select = "SELECT req_id, name, label, reqType, pstampRequest.state, pstampRequest.fault, count(job_id) AS '$jobLabel', timestamp"; 40 46 41 47 $select .= ", outdir" if ($verbose); … … 45 51 my $sql = $select . $from . $where; 46 52 47 if ($no_args and $limit) { 53 $limit = 20 if ($no_args); 54 # if ($no_args and $limit) { 55 if (0 and $limit) { 48 56 # use mysql to get the last_req_id 49 57 # 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"); 51 65 $stmt->execute(); 52 66 my $row = $stmt->fetchrow_hashref(); … … 59 73 } 60 74 if ($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()" 62 78 } 63 79 if ($req_faulted) { … … 69 85 $sql .= " GROUP BY req_id"; 70 86 87 if ($finished) { 88 $sql .= " ORDER BY timestamp DESC"; 89 } 71 90 if ($limit and !$no_args) { 72 91 $sql .= " LIMIT $limit";
Note:
See TracChangeset
for help on using the changeset viewer.
