IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 29258


Ignore:
Timestamp:
Sep 29, 2010, 10:57:34 AM (16 years ago)
Author:
rhenders
Message:

Now reporting when load has failed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippToPsps/perl/checkOdmStatus.pl

    r29196 r29258  
    9090
    9191    print "\n";
    92     printf("+----------------------+--------------+--------------+----------------+---------------+---------+----------+\n");
    93     printf("|      Timestamp       |    Batch     |  Exposure ID | Loaded to ODM? | Merge worthy? | Merged? | Deleted? |\n");
    94     printf("+----------------------+--------------+--------------+----------------+---------------+---------+----------+\n");
     92    printf("+----------------------+--------------+--------------+----------------+--------------+--------------+---------+----------+\n");
     93    printf("|      Timestamp       |    Batch     |  Exposure ID | Loaded to ODM? | Load failed? |Merge worthy? | Merged? | Deleted? |\n");
     94    printf("+----------------------+--------------+--------------+----------------+--------------+--------------+---------+----------+\n");
    9595
    9696    # loop round batches
     
    101101    my $numDeleted = 0;
    102102    foreach $batch ( @{$batches} ) {
    103         my ($timestamp, $type, $expId, $batchId, $surveyType, $deleted, $dvoDb, $processed, $onDatastore, $loadedToOdm, $mergeWorthy, $merged) =  @{$batch};
     103        my ($timestamp, $type, $expId, $batchId, $surveyType, $deleted, $dvoDb, $processed, $onDatastore, $loadedToOdm, $loadFailed, $mergeWorthy, $merged) =  @{$batch};
    104104
    105105        if (!$onDatastore) {next;}
     
    125125        $numBatchesToCheck++;
    126126
    127 
    128127        # if not merged then update by polling ODM for status
    129         if (!$merged) {
    130 
    131             if (checkODM($batch->getName(), \$loadedToOdm, \$mergeWorthy, \$merged)) {$numChecked++;}
     128        if (!$merged && !$loadFailed) {
     129
     130            if (checkODM($batch->getName(), \$loadedToOdm, \$loadFailed, \$mergeWorthy, \$merged)) {$numChecked++;}
    132131            else {next;}
    133132        }
    134133
    135134        # delete from datastore
    136         if (defined $product && !$deleted && $loadedToOdm && $mergeWorthy) {
     135        if (defined $product && !$deleted && $loadedToOdm && ($mergeWorthy || $loadFailed)) {
     136
    137137
    138138            $deleted = $datastore->remove($batch->getName());
     
    149149
    150150        # update database
    151         $ippToPspsDb->updateODMStatus($batchId, $expId, $loadedToOdm, $mergeWorthy, $merged, $deleted);
    152         printf( "| %18s  | %11s  | %10d   |    %6s      |    %6s    | %6s  |  %5s   |\n",
     151        $ippToPspsDb->updateODMStatus($batchId, $expId, $loadedToOdm, $loadFailed, $mergeWorthy, $merged, $deleted);
     152        printf( "| %18s  | %11s  | %10d   |    %6s      |    %6s    |   %6s    | %6s  |  %5s   |\n",
    153153                $timestamp,
    154154                $batch->getName(),
    155155                $expId,
    156156                $loadedToOdm ? "yes" : "no",
     157                $loadFailed ? "yes" : "no",
    157158                $mergeWorthy ? "yes" : "no",
    158159                $merged ? "yes" : "no",
     
    160161    }
    161162
    162     printf("+----------------------+--------------+--------------+----------------+---------------+---------+----------+\n");
    163 
     163    printf("+----------------------+--------------+--------------+----------------+--------------+--------------+---------+----------+\n");
    164164    printf( "* Successfully checked %d batch%s out of %d\n", $numChecked, ($numChecked==1) ? "" : "es", $numBatchesToCheck);
    165165    printf( "* Successfully removed %d batch%s from the datastore\n", $numRemovedFromDatastore, ($numRemovedFromDatastore==1) ? "" : "es");
     
    174174########################################################################################
    175175sub checkODM {
    176     my ($batchName, $loadedToOdm, $mergeWorthy, $merged) = @_;
     176    my ($batchName, $loadedToOdm, $loadFailed, $mergeWorthy, $merged) = @_;
    177177
    178178    my $statusFilter = "*";
     
    194194
    195195    my ($tempFile, $tempName) = tempfile( "/tmp/ippToPsps_odmXml.XXXX", UNLINK => !$save_temps);
     196    #print $response->content. "\n";
    196197    print $tempFile $response->content;
    197198    close($tempFile);
    198199
    199200    ${$loadedToOdm} = 0;
     201    ${$loadFailed} = 0;
    200202    ${$mergeWorthy} = 0;
    201203    ${$merged} = 0;
    202204
    203     parseXml($tempName, $loadedToOdm, $mergeWorthy, $merged);
     205    parseXml($tempName, $loadedToOdm, $loadFailed, $mergeWorthy, $merged);
     206
     207    unlink($tempFile);
    204208
    205209    return 1;
    206210}
    207211
    208 ######################################################################################y
     212
     213
     214########################################################################################
    209215#
    210216# Parses ODM XML
     
    212218########################################################################################
    213219sub parseXml {
    214     my ($xmlFile, $loadedToOdm, $mergeWorthy, $merged) = @_;
     220    my ($xmlFile, $loadedToOdm, $loadFailed, $mergeWorthy, $merged) = @_;
    215221
    216222    my $parser = XML::LibXML->new;
     
    218224    my $xc = XML::LibXML::XPathContext->new($doc);
    219225    $xc->registerNs('ArrayOfOdmBatchState', 'PanSTARRS.Services.OdmWebService');
    220     my $result = $xc->findvalue('//ArrayOfOdmBatchState:Message');
     226    my $result = $xc->findvalue('//ArrayOfOdmBatchState:BatchState');
     227
     228    if ($result =~ m/failed/) {
     229        ${$loadFailed} = 1;
     230        ${$loadedToOdm} = 1;
     231    return;
     232    }
     233
     234    $result = $xc->findvalue('//ArrayOfOdmBatchState:Message');
    221235    ${$loadedToOdm} = 0;
    222236    ${$mergeWorthy} = 0;
Note: See TracChangeset for help on using the changeset viewer.