IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 29136


Ignore:
Timestamp:
Sep 9, 2010, 1:22:02 PM (16 years ago)
Author:
bills
Message:

in magicdstool -advancerun move the transactoin inside the loop so that if one
run has a problem it doesn't rollback other runs that worked.
Get magicked status of the run. If it is already set don't try and set it again.

Location:
trunk/ippTools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/share/magicdstool_completed_runs.sql

    r25465 r29136  
    11SELECT DISTINCT
    22    magic_ds_id,
     3    magicked,
    34    re_place,
    45    label
     
    78-- raw stage
    89SELECT
    9     magicDSRun.*
     10    magicDSRun.*,
     11    rawExp.magicked
    1012    FROM magicDSRun
    1113    JOIN rawImfile ON stage_id = rawImfile.exp_id
     14    JOIN rawExp using(exp_id)
    1215    LEFT JOIN magicDSFile
    1316        ON magicDSRun.magic_ds_id = magicDSFile.magic_ds_id
     
    2528-- chip stage
    2629SELECT
    27     magicDSRun.*
     30    magicDSRun.*,
     31    chipRun.magicked
    2832    FROM magicDSRun
    29     JOIN chipProcessedImfile ON stage_id = chip_id
     33    JOIN chipRun ON stage_id = chip_id
     34    JOIN chipProcessedImfile USING(chip_id)
    3035    LEFT JOIN magicDSFile
    3136        ON magicDSFile.magic_ds_id = magicDSRun.magic_ds_id
     
    4449-- camera stage
    4550SELECT
    46     magicDSRun.*
     51    magicDSRun.*,
     52    camRun.magicked
    4753    FROM magicDSRun
    48     JOIN camProcessedExp ON stage_id = camProcessedExp.cam_id
     54    JOIN camRun ON stage_id = camRun.cam_id
     55    JOIN camProcessedExp ON camRun.cam_id = camProcessedExp.cam_id
    4956    LEFT JOIN magicDSFile
    5057        ON magicDSFile.magic_ds_id = magicDSRun.magic_ds_id
     
    6168-- warp stage
    6269SELECT
    63     magicDSRun.*
     70    magicDSRun.*,
     71    warpRun.magicked
    6472    FROM magicDSRun
    65     JOIN warpSkyfile on stage_id = warp_id
     73    JOIN warpRun on stage_id = warp_id
     74    JOIN warpSkyfile USING(warp_id)
    6675    LEFT JOIN magicDSFile
    6776        ON magicDSRun.magic_ds_id = magicDSFile.magic_ds_id
     
    8190-- diff stage
    8291SELECT DISTINCT
    83     magicDSRun.*
     92    magicDSRun.*,
     93    diffRun.magicked
    8494    FROM magicDSRun
    8595    JOIN magicRun USING (magic_id)
    8696    JOIN magicInputSkyfile USING(magic_id)
     97    JOIN diffRun
     98        ON magicRun.diff_id = diffRun.diff_id
    8799    JOIN diffSkyfile
    88         ON magicRun.diff_id = diffSkyfile.diff_id
     100        ON diffRun.diff_id = diffSkyfile.diff_id
    89101        AND magicInputSkyfile.node = diffSkyfile.skycell_id
    90102    LEFT JOIN magicDSFile
  • trunk/ippTools/src/magicdstool.c

    r28936 r29136  
    950950        return true;
    951951    }
    952     if (!psDBTransaction(config->dbh)) {
    953         psError(PS_ERR_UNKNOWN, false, "database error");
    954         return false;
    955     }
    956952    for (long i = 0; i < psArrayLength(output); i++) {
    957953        psMetadata *row = output->data[i];
    958954
    959955        psS64 magic_ds_id = psMetadataLookupS64(NULL, row, "magic_ds_id");
     956        psS64 magicked =  psMetadataLookupS64(NULL, row, "magicked");
     957        if (!psDBTransaction(config->dbh)) {
     958            psError(PS_ERR_UNKNOWN, false, "database error");
     959            return false;
     960        }
    960961
    961962        // if re_place, set stageRun.magicked
    962963        bool setmagicked = psMetadataLookupBool(NULL, row, "re_place");
    963         if (setmagicked && !setRunMagicked(config, magic_ds_id)) {
    964             psError(PS_ERR_UNKNOWN, false, "failed to change stageRun.magicked for magic_ds_id: %" PRId64,
    965                 magic_ds_id);
    966             if (!psDBRollback(config->dbh)) {
    967                 psError(PS_ERR_UNKNOWN, false, "database error");
     964        if (setmagicked) {
     965            if (magicked <= 0) {
     966                if (!setRunMagicked(config, magic_ds_id)) {
     967                    psError(PS_ERR_UNKNOWN, false, "failed to change stageRun.magicked for magic_ds_id: %" PRId64,
     968                        magic_ds_id);
     969                    if (!psDBRollback(config->dbh)) {
     970                        psError(PS_ERR_UNKNOWN, false, "database error");
     971                    }
     972                    return false;
     973                }
     974            } else {
     975                fprintf(stderr, "run is already marked as destreaked for magic_ds_id %" PRId64 "\n", magic_ds_id);
    968976            }
    969             return false;
    970977        }
    971978
     
    980987            return false;
    981988        }
    982     }
    983     if (!psDBCommit(config->dbh)) {
    984         psError(PS_ERR_UNKNOWN, false, "database error");
    985         return false;
     989        if (!psDBCommit(config->dbh)) {
     990            psError(PS_ERR_UNKNOWN, false, "database error");
     991            return false;
     992        }
    986993    }
    987994
Note: See TracChangeset for help on using the changeset viewer.