IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 25465


Ignore:
Timestamp:
Sep 21, 2009, 2:49:37 PM (17 years ago)
Author:
bills
Message:

Detect the completion and state updates of a magicDSRun in a new advance task.

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTasks/destreak.pro

    r25463 r25465  
    1313### indexes into Database lists
    1414$magicToDS_DB = 0
     15$magicDSAdvance_DB = 0
    1516$magicDSToRevert_DB = 0
    1617$magicDSCompletedRevert_DB = 0
     
    4142### Turn tasks on
    4243macro destreak.on
     44    # destreak and revert should not run at the same time
     45    destreak.revert.off
     46
    4347    task destreak.load
    4448        active true
     
    4751        active true
    4852    end
     53    task destreak.advance
     54        active true
     55    end
    4956end
    5057
    5158macro destreak.revert.on
     59    # destreak and revert should not run at the same time
     60    destreak.off
     61
    5262    task destreak.revert.load
    5363        active true
     
    6777    end
    6878    task destreak.run
     79        active false
     80    end
     81    task destreak.advance
    6982        active false
    7083    end
     
    100113  npending     1
    101114
    102   stdout NULL
    103   stderr $LOGDIR/magic.destreak.log
     115#  stdout NULL
     116#  stderr $LOGSUBDIR/destreak.load.log
    104117
    105118  task.exec
     
    233246end
    234247
     248task           destreak.advance
     249    # task to finish processing for magicDSRuns
     250  host         local
     251
     252  periods      -poll $LOADPOLL
     253  #periods      -exec $LOADEXEC
     254  periods      -exec 30
     255  periods      -timeout 20
     256  npending     1
     257
     258#  stdout NULL
     259#  stderr $LOGSUBDIR/destreak.advance.log
     260
     261  task.exec
     262    $run = magicdstool -advancerun
     263    if ($DB:n != 0)
     264
     265      $run = $run -dbname $DB:$magicDSAdvance_DB
     266
     267      $magicDSAdvance_DB ++
     268      if ($magicDSAdvance_DB >= $DB:n) set magicDSAdvance_DB = 0
     269    end
     270    add_poll_args run
     271    add_poll_labels run
     272    command $run
     273  end
     274
     275  # success
     276  task.exit    0
     277  end
     278
     279  # locked list
     280  task.exit    default
     281    showcommand failure
     282  end
     283
     284  task.exit    crash
     285    showcommand crash
     286  end
     287
     288  # operation times out?
     289  task.exit    timeout
     290    showcommand timeout
     291  end
     292end
     293
    235294task           destreak.revert.load
    236295  host         local
     
    386445
    387446  stdout NULL
    388   stderr $LOGSUBDIR/destreak.completed.revert
     447  stderr $LOGSUBDIR/destreak.completed.revert.log
    389448
    390449  task.exec
     
    398457      $run = $run -dbname $DB:$magicDSCompletedRevert_DB
    399458
     459      $magicDSCompletedRevert_DB ++
    400460      if ($magicDSCompletedRevert_DB >= $DB:n) set magicDSCompletedRevert_DB = 0
    401461    end
  • trunk/ippTools/share/magicdstool_completed_runs.sql

    r24683 r25465  
    11SELECT DISTINCT
    2     magic_ds_id
     2    magic_ds_id,
     3    re_place,
     4    label
    35FROM
    46    (
    57-- raw stage
    68SELECT
    7     magicDSRun.magic_ds_id
     9    magicDSRun.*
    810    FROM magicDSRun
    911    JOIN rawImfile ON stage_id = rawImfile.exp_id
     
    2325-- chip stage
    2426SELECT
    25     magicDSRun.magic_ds_id
     27    magicDSRun.*
    2628    FROM magicDSRun
    2729    JOIN chipProcessedImfile ON stage_id = chip_id
     
    4244-- camera stage
    4345SELECT
    44     magicDSRun.magic_ds_id
     46    magicDSRun.*
    4547    FROM magicDSRun
    4648    JOIN camProcessedExp ON stage_id = camProcessedExp.cam_id
     
    5961-- warp stage
    6062SELECT
    61     magicDSRun.magic_ds_id
     63    magicDSRun.*
    6264    FROM magicDSRun
    6365    JOIN warpSkyfile on stage_id = warp_id
     
    7981-- diff stage
    8082SELECT DISTINCT
    81     magicDSRun.magic_ds_id
     83    magicDSRun.*
    8284    FROM magicDSRun
    8385    JOIN magicRun USING (magic_id)
     
    101103        AND SUM(magicDSFile.fault) = 0
    102104
    103    ) as Foo
     105   ) as magicDSRun
  • trunk/ippTools/src/magicdstool.c

    r25423 r25465  
    3737static bool todestreakMode(pxConfig *config);
    3838static bool adddestreakedfileMode(pxConfig *config);
     39static bool advancerunMode(pxConfig *config);
    3940static bool revertdestreakedfileMode(pxConfig *config);
    4041static bool getskycellsMode(pxConfig *config);
     
    4445
    4546static bool setmagicDSRunState(pxConfig *config, psS64 magic_id, const char *state);
    46 static bool magicDSRunComplete(pxConfig *config, bool setmagicked);
    4747static bool magicDSGetIDs(pxConfig *config, psString stage, psS64 magic_id, psS64 *stage_id, psS64 *cam_id);
    4848
     
    7070        MODECASE(MAGICDSTOOL_MODE_TODESTREAK,          todestreakMode);
    7171        MODECASE(MAGICDSTOOL_MODE_ADDDESTREAKEDFILE,   adddestreakedfileMode);
     72        MODECASE(MAGICDSTOOL_MODE_ADVANCERUN,          advancerunMode);
    7273        MODECASE(MAGICDSTOOL_MODE_REVERTDESTREAKEDFILE,revertdestreakedfileMode);
    7374        MODECASE(MAGICDSTOOL_MODE_GETSKYCELLS,         getskycellsMode);
     
    119120    PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "==");
    120121    PXOPT_COPY_S64(config->args, where, "-diff_id", "diff_id", "==");
    121     PXOPT_COPY_S64(config->args, where, "-magic_id","magic_id", "==");
     122    PXOPT_COPY_S64(config->args, where, "-magic_id","magicRun.magic_id", "==");
    122123    PXOPT_COPY_S32(config->args, where, "-streaks_max","streaks", "<=");
    123124
     
    661662    }
    662663
    663     if (!magicDSRunComplete(config, setmagicked)) {
    664             // rollback
    665         if (!psDBRollback(config->dbh)) {
    666             psError(PS_ERR_UNKNOWN, false, "database error");
    667         }
    668         psError(PS_ERR_UNKNOWN, false, "database error");
    669         return false;
    670     }
    671 
    672664    if (!psDBCommit(config->dbh)) {
    673665        psError(PS_ERR_UNKNOWN, false, "database error");
     
    743735}
    744736
    745 static bool magicDSRunComplete(pxConfig *config, bool setmagicked)
     737static bool advancerunMode(pxConfig *config)
    746738{
    747739    PS_ASSERT_PTR_NON_NULL(config, false);
     740
     741    psMetadata *where = psMetadataAlloc();
     742    PXOPT_COPY_S64(config->args, where, "-magic_ds_id", "magicDSRun.magic_ds_id", "==");
     743    pxAddLabelSearchArgs (config, where, "-label", "magicDSRun.label", "==");
     744
     745    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
    748746
    749747    // look for completed magicDSRuns
     
    754752    }
    755753
     754    if (psListLength(where->list)) {
     755        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     756        psStringAppend(&query, " WHERE %s", whereClause);
     757        psFree(whereClause);
     758    }
     759
    756760    if (!p_psDBRunQuery(config->dbh, query)) {
    757761        psError(PS_ERR_UNKNOWN, false, "database error");
     
    771775        return true;
    772776    }
     777    if (!psDBTransaction(config->dbh)) {
     778        psError(PS_ERR_UNKNOWN, false, "database error");
     779        return false;
     780    }
    773781    for (long i = 0; i < psArrayLength(output); i++) {
    774782        psMetadata *row = output->data[i];
     
    776784        psS64 magic_ds_id = psMetadataLookupS64(NULL, row, "magic_ds_id");
    777785
    778         // if requested, set stageRun.magicked
     786        // if re_place, set stageRun.magicked
     787        bool setmagicked = psMetadataLookupBool(NULL, row, "re_place");
    779788        if (setmagicked && !setRunMagicked(config, magic_ds_id)) {
    780789            psError(PS_ERR_UNKNOWN, false, "failed to change stageRun.magicked for magic_ds_id: %" PRId64,
    781790                magic_ds_id);
     791            if (!psDBRollback(config->dbh)) {
     792                psError(PS_ERR_UNKNOWN, false, "database error");
     793            }
    782794            return false;
    783795        }
     
    788800                magic_ds_id);
    789801            psFree(output);
     802            if (!psDBRollback(config->dbh)) {
     803                psError(PS_ERR_UNKNOWN, false, "database error");
     804            }
    790805            return false;
    791806        }
    792807    }
    793 
     808    if (!psDBCommit(config->dbh)) {
     809        psError(PS_ERR_UNKNOWN, false, "database error");
     810        return false;
     811    }
    794812
    795813    return true;
     
    833851    return true;
    834852}
     853
    835854static bool completedrevertMode(pxConfig *config)
    836855{
  • trunk/ippTools/src/magicdstool.h

    r25423 r25465  
    3030    MAGICDSTOOL_MODE_TODESTREAK,
    3131    MAGICDSTOOL_MODE_ADDDESTREAKEDFILE,
     32    MAGICDSTOOL_MODE_ADVANCERUN,
    3233    MAGICDSTOOL_MODE_REVERTDESTREAKEDFILE,
    3334    MAGICDSTOOL_MODE_GETSKYCELLS,
  • trunk/ippTools/src/magicdstoolConfig.c

    r25423 r25465  
    147147    psMetadataAddU64(completedrevertArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0);
    148148
     149    // -advancerun
     150    psMetadata *advancerunArgs = psMetadataAlloc();
     151    psMetadataAddS64(advancerunArgs, PS_LIST_TAIL, "-magic_ds_id", 0, "search by magic Destreak ID", 0);
     152    psMetadataAddStr(advancerunArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "define label", NULL);
     153    psMetadataAddU64(advancerunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0);
     154
    149155    psFree(now);
    150156
     
    162168    PXOPT_ADD_MODE("-adddestreakedfile",   "add a de-streaked file",
    163169                    MAGICDSTOOL_MODE_ADDDESTREAKEDFILE, adddestreakedfileArgs);
     170    PXOPT_ADD_MODE("-advancerun", "change state for runs that have finished destrreaking",
     171                    MAGICDSTOOL_MODE_ADVANCERUN, advancerunArgs);
    164172    PXOPT_ADD_MODE("-revertdestreakedfile", " revert a faulted de-streaked file",
    165173                    MAGICDSTOOL_MODE_REVERTDESTREAKEDFILE, revertdestreakedfileArgs);
     
    174182                    MAGICDSTOOL_MODE_COMPLETEDREVERT, completedrevertArgs);
    175183
     184
    176185    if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
    177186        psError(PS_ERR_UNKNOWN, true, "option parsing failed");
Note: See TracChangeset for help on using the changeset viewer.