IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 25465 for trunk


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.