IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 6, 2012, 6:32:19 PM (14 years ago)
Author:
watersc1
Message:

merge from trunk. Preliminary versions of stacktool/warptool updates and regenerate_background.pl script. The warp code is finished and tested, and I still need to get the stack version resolved.

Location:
branches/czw_branch/20120906/pstamp/scripts
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/czw_branch/20120906/pstamp/scripts

  • branches/czw_branch/20120906/pstamp/scripts/pstamp_checkdependent.pl

    r34238 r34772  
    137137        print "skipping $command\n";
    138138    }
    139 } elsif (($it->{state} eq 'cleaned') or ($it->{state} eq 'update')) {
     139} elsif (($it->{state} eq 'cleaned') or ($it->{state} eq 'goto_cleaned') or ($it->{state} eq 'update')) {
    140140    #       For warp and diff stages we need to call the 'queue_update' subroutines even if the
    141141    #       data_state is update in order to check the state of inputs in earlier stages in the pipeline
     
    260260            # caller will fault the jobs
    261261            return $error_code;
     262        } elsif ($chip->{state} eq 'goto_cleaned') {
     263
     264            # we don't need to check for full data_state
     265            # if ($chip->{data_state} eq 'full') {
     266            {
     267                # cleanup must not be running. Set state to update. If this chip is not 'full' it will be
     268                # set to be updated the next time this script is invoked
     269                # XXX: In the very rare case that this chip run is actually in the running cleanup pantasks
     270                # queue things may get confused but we can live with that
     271                my $command = "$chiptool -updaterun -set_state update -chip_id $chip_id";
     272                $command .= " -set_label $rlabel" if $rlabel;
     273
     274                if (!$no_update) {
     275                    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     276                                run(command => $command, verbose => $verbose);
     277                    unless ($success) {
     278                        my_die("failed to change ${stage}Run $stage_id $component from goto_cleaned to update", $PS_EXIT_UNKNOWN_ERROR);
     279                    }
     280                } else {
     281                    print "skipping $command\n";
     282                }
     283                $queued_update = 1;
     284            }
    262285        } elsif (($chip->{data_state} ne 'update') and ($chip->{data_state} ne 'full')) {
    263286
     
    320343    }
    321344}
     345
     346    my $tess_id = $metadata->{tess_id};
     347    if ($tess_id eq 'RINGS.V0') {
     348        # we have stopped updating data from RINGS.V0
     349        return $PSTAMP_GONE
     350    }
    322351    if (($state =~ /error/) or ($state =~ /purged/) or ($state =~ /scrubbed/) or ($state eq 'drop') or
    323352         ($data_state =~ /error/) or ($data_state =~ /purged/) or ($data_state =~ /scrubbed/) or ($data_state eq 'drop')) {
     
    343372
    344373    my $skycell = $metadata;
     374
     375    # if ($skycell->{state} eq 'goto_cleaned' and $skycell->{data_state} eq 'full') {
     376    if ($skycell->{state} eq 'goto_cleaned') {
     377        # cleanup has been queued, but hasn't finished, probably due to an error or cleanup is not running.
     378        # It's "safe" to set the state to update. If the skycell is not full it will be set to update
     379        # the next time this task runs
     380        my $command = "$warptool -updaterun -set_state update -warp_id $warp_id";
     381        $command .= " -set_label $rlabel" if $rlabel;
     382
     383        if (!$no_update) {
     384            my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     385                        run(command => $command, verbose => $verbose);
     386            unless ($success) {
     387                my_die("failed to change state of ${stage}Run $stage_id from goto_cleaned to update", $PS_EXIT_UNKNOWN_ERROR);
     388            }
     389        } else {
     390            print "skipping $command\n";
     391        }
     392        return 0;
     393    }
    345394
    346395    # get the list of input chips for this skycell
     
    428477    my $skycell = $metadata;
    429478    my $skycell_id = $skycell->{skycell_id};
     479
     480    # if ($metadata->{state} eq 'goto_cleaned' and $metadata->{data_state} eq 'full') {
     481    if ($metadata->{state} eq 'goto_cleaned') {
     482        # cleanup must not be running. Set state to update. If the skycell is not 'full' it will be
     483        # set to be updated the next time this script is invoked
     484        print "changing state of diffRun $diff_id from goto_cleaned to update. skycell $skycell_id is full\n";
     485        my $command = "$difftool -updaterun -set_state update -diff_id $diff_id";
     486        $command .= " -set_label $rlabel" if $rlabel;
     487
     488        if (!$no_update) {
     489            my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     490                        run(command => $command, verbose => $verbose);
     491            unless ($success) {
     492                my_die("failed to queue ${stage}Run $stage_id $component for update", $PS_EXIT_UNKNOWN_ERROR);
     493            }
     494        } else {
     495            print "skipping $command\n";
     496        }
     497        return 0;
     498    }
    430499
    431500    if ($diff_mode == $IPP_DIFF_MODE_WARP_STACK ) {
Note: See TracChangeset for help on using the changeset viewer.