IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 6, 2011, 2:34:55 PM (15 years ago)
Author:
eugene
Message:

updates from trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20110213/pstamp/scripts/pstamp_checkdependent.pl

    r30676 r30812  
    2727my $IPP_DIFF_MODE_STACK_STACK = 4;
    2828
    29 my ($dep_id, $stage, $stage_id, $component, $imagedb, $rlabel, $need_magic, $fault_count, $max_fault_count);
     29my ($dep_id, $stage, $stage_id, $component, $imagedb, $rlabel, $need_magic, $fault_count, $max_fault_count, $logfile);
    3030my ($dbname, $ps_dbserver, $verbose, $save_temps, $no_update);
    3131
     
    4040    'fault_count=i' =>  \$fault_count,
    4141    'max_fault_count=i' =>  \$max_fault_count,
     42    'logfile=s'     =>  \$logfile,
    4243    'dbname=s'      =>  \$dbname,       # postage stamp server dbname
    4344    'dbserver=s'    =>  \$ps_dbserver,  # postage stamp server dbserver
     
    6869my $ipprc = PS::IPP::Config->new();
    6970
     71if ($logfile) {
     72   $ipprc->redirect_output($logfile);
     73}
     74
    7075if (!$ps_dbserver) {
    7176    $ps_dbserver =  metadataLookupStr($ipprc->{_siteConfig}, 'PS_DBSERVER');
     
    314319    my $data_state = $metadata->{data_state};
    315320
     321    # The update system currently requires that data that has been magicked be destreaked
     322    # at chip stage so it needs magic even if the customer doesn't.
     323    if ($metadata->{magicked} != 0) {
     324        $need_magic = 1;
     325    }
     326
    316327    if (($state =~ /error/) or ($state =~ /purged/) or ($state =~ /scrubbed/) or ($state eq 'drop') or
    317328         ($data_state =~ /error/) or ($data_state =~ /purged/) or ($data_state =~ /scrubbed/) or ($data_state eq 'drop')) {
     
    350361    foreach my $chip (@$data) {
    351362        $chip_id = $chip->{chip_id};
    352         if (($chip->{data_state} ne 'full') or ($need_magic and ($chip->{magicked} <= 0))) {
     363
     364        # if chip has been magicked before require it to be magicked again
     365        # because the warp pending query requires it.
     366        if ($chip->{magicked} < 0) {
     367            print "Input has been destreaked so we must destreak before warping\n";
     368            $need_magic = 1
     369        }
     370
     371        if ($need_magic and ($chip->{magicked} eq 0)) {
     372            my_die("Client requires magic, but chip never magicked. How did this dependent get queued?", $PS_EXIT_PROG_ERROR);
     373        }
     374
     375        if (($chip->{data_state} ne 'full') or ($need_magic and ($chip->{magicked} < 0))) {
    353376            $chips_ready = 0;
    354377            $chip->{fault} = $chip->{chip_fault};
     
    399422    my $skycell = $metadata;
    400423    my $skycell_id = $skycell->{skycell_id};
     424
     425    # The update system currently requires that data that has been magicked be destreaked
     426    # at chip stage so it needs magic even if the customer doesn't.
     427    if ($metadata->{magicked} != 0) {
     428        $need_magic = 1;
     429    }
    401430
    402431    if ($diff_mode == $IPP_DIFF_MODE_WARP_STACK ) {
Note: See TracChangeset for help on using the changeset viewer.