IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 3, 2010, 8:50:52 AM (16 years ago)
Author:
eugene
Message:

updates from trunk

Location:
branches/simtest_nebulous_branches
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/simtest_nebulous_branches

  • branches/simtest_nebulous_branches/ippTools/src

    • Property svn:ignore
      •  

        old new  
         1*.la
         2*.lo
        13.deps
        24.gdb_history
         
        46Makefile
        57Makefile.in
         8addtool
         9caltool
         10camtool
         11chiptool
        612config.h
        713config.h.in
        8 stamp-h1
        9 *.la
        10 *.lo
         14detselect
         15dettool
         16difftool
         17disttool
         18dqstatstool
         19faketool
         20flatcorr
         21guidetool
         22magicdstool
         23magictool
         24pstamptool
         25pubtool
         26pxadmin
         27pxdata.c
         28pxinject
        1129pxtoolsErrorCodes.c
        1230pxtoolsErrorCodes.h
        13 pxadmin
        14 pxinject
        15 pztool
        1631pzgetexp
        1732pzgetimfiles
         33pztool
         34receivetool
        1835regtool
        19 guidetool
        20 chiptool
        21 camtool
         36stacktool
         37stamp-h1
        2238warptool
        23 difftool
        24 stacktool
        25 faketool
        26 dettool
        27 detselect
        28 pxdata.c
        29 magictool
        30 magicdstool
        31 caltool
        32 flatcorr
        33 pstamptool
        34 disttool
        35 receivetool
        36 
        37 pubtool
  • branches/simtest_nebulous_branches/ippTools/src/camtool.c

    r24681 r27840  
    109109    psMetadata *where = psMetadataAlloc();
    110110    pxcamGetSearchArgs (config, where);
    111     pxAddLabelSearchArgs (config, where, "-label", "camRun.label", "==");
    112     PXOPT_COPY_STR(config->args, where, "-reduction", "camRun.reduction", "==");
     111    pxAddLabelSearchArgs (config, where, "-label", "chipRun.label", "=="); // define using chipRun label
     112    PXOPT_COPY_STR(config->args, where, "-reduction", "chipRun.reduction", "==");
    113113
    114114    if (!psListLength(where->list) &&
    115115        !psMetadataLookupBool(NULL, config->args, "-all")) {
    116116        psFree(where);
    117         psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
     117        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
    118118        return false;
    119119    }
     
    121121    PXOPT_LOOKUP_STR(workdir, config->args, "-set_workdir", false, false);
    122122    PXOPT_LOOKUP_STR(label, config->args, "-set_label", false, false);
     123    PXOPT_LOOKUP_STR(data_group, config->args, "-set_data_group", false, false);
     124    PXOPT_LOOKUP_STR(dist_group, config->args, "-set_dist_group", false, false);
    123125    PXOPT_LOOKUP_STR(reduction, config->args, "-set_reduction", false, false);
    124126    PXOPT_LOOKUP_STR(expgroup, config->args, "-set_expgroup", false, false);
     
    126128    PXOPT_LOOKUP_STR(tess_id, config->args, "-set_tess_id", false, false);
    127129    PXOPT_LOOKUP_STR(end_stage, config->args, "-set_end_stage", false, false);
     130    PXOPT_LOOKUP_STR(note, config->args, "-set_note", false, false);
    128131
    129132    // find the exp_id of all the exposures that we want to queue up.
    130133    psString query = pxDataGet("camtool_find_chip_id.sql");
    131134    if (!query) {
    132         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     135        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    133136        psFree(where);
    134137        return false;
     
    181184        bool status;
    182185        char *end_stage = psMetadataLookupStr(&status, md, "end_stage");
    183         if (end_stage && strcasecmp(end_stage, "warp")) continue;
     186        if (end_stage && strcasecmp(end_stage, "warp")) continue;
    184187
    185188        char *raw_tess_id   = psMetadataLookupStr(&status, md, "tess_id");
    186         if (raw_tess_id || tess_id) continue;
     189        if (raw_tess_id || tess_id) continue;
    187190
    188191        char *label  = psMetadataLookupStr(&status, md, "label");
     
    190193
    191194        if (!status) {
    192             psError(PS_ERR_UNKNOWN, false, "cannot queue analysis to WARP without a defined tess id: label: %s, exp_id %" PRId64, label, exp_id);
     195            psError(PS_ERR_UNKNOWN, false, "cannot queue analysis to WARP without a defined tess id: label: %s, exp_id %" PRId64, label, exp_id);
    193196            psFree(output);
    194197            return false;
     
    196199    }
    197200
    198     // loop over our list of camRun rows
     201    // loop over our list of chipRun rows
    199202    for (long i = 0; i < psArrayLength(output); i++) {
    200203        psMetadata *md = output->data[i];
    201204
    202         camRunRow *row = camRunObjectFromMetadata(md);
     205        chipRunRow *row = chipRunObjectFromMetadata(md);
    203206        if (!row) {
    204             psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun");
     207            psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into chipRun");
    205208            psFree(output);
    206209            return false;
     
    212215                    workdir     ? workdir   : row->workdir,
    213216                    label       ? label     : row->label,
     217                    data_group  ? data_group: row->data_group,
     218                    dist_group  ? dist_group: row->dist_group,
    214219                    reduction   ? reduction : row->reduction,
    215220                    expgroup    ? expgroup  : row->expgroup,
    216221                    dvodb       ? dvodb     : row->dvodb,
    217222                    tess_id     ? tess_id   : row->tess_id,
    218                     end_stage   ? end_stage : row->end_stage
     223                    end_stage   ? end_stage : row->end_stage,
     224                    row->magicked,
     225                    note
    219226        )) {
    220227            if (!psDBRollback(config->dbh)) {
     
    248255    PXOPT_COPY_S64(config->args, where, "-cam_id",    "camRun.cam_id", "==");
    249256    PXOPT_COPY_STR(config->args, where, "-label",     "camRun.label", "==");
     257    PXOPT_COPY_STR(config->args, where, "-data_group","camRun.data_group", "==");
    250258    PXOPT_COPY_STR(config->args, where, "-state",     "camRun.state", "==");
    251259    PXOPT_COPY_STR(config->args, where, "-reduction", "camRun.reduction", "==");
    252260
    253     if (!psListLength(where->list)
    254         && !psMetadataLookupBool(NULL, config->args, "-all")) {
     261    if (!psListLength(where->list)) {
    255262        psFree(where);
    256         psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
    257         return false;
    258     }
    259 
    260     PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false);
    261     PXOPT_LOOKUP_STR(label, config->args, "-set_label", false, false);
    262 
    263     if ((!state) && (!label)) {
    264         psError(PXTOOLS_ERR_DATA, false, "parameters are required");
    265         psFree(where);
    266         return false;
    267     }
    268 
    269     if (state) {
    270         // set camRun.state to state
    271         if (!pxcamRunSetStateByQuery(config, where, state)) {
    272             psFree(where);
    273             return false;
    274         }
    275     }
    276 
    277     if (label) {
    278         // set camRun.label to label
    279         if (!pxcamRunSetLabelByQuery(config, where, label)) {
    280             psFree(where);
    281             return false;
    282         }
    283     }
    284 
     263        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
     264        return false;
     265    }
     266    psString query = psStringCopy("UPDATE camRun JOIN chipRun USING(chip_id) JOIN rawExp USING(exp_id)");
     267
     268    // pxUpdateRun gets parameters from config->args and updates
     269    bool result = pxUpdateRun(config, where, &query, "camRun", "cam_id", "camProcessedExp", true);
     270    if (!result) {
     271        psError(psErrorCodeLast(), false, "pxUpdateRun failed");
     272    }
     273
     274    psFree(query);
    285275    psFree(where);
    286276
    287     return true;
     277    return result;
    288278}
    289279
     
    304294    psString query = pxDataGet("camtool_find_pendingexp.sql");
    305295    if (!query) {
    306         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     296        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    307297        return false;
    308298    }
     
    369359    psString query = pxDataGet("camtool_find_pendingimfile.sql");
    370360    if (!query) {
    371         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     361        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    372362        return false;
    373363    }
     
    491481    PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false);
    492482    PXOPT_LOOKUP_S16(quality, config->args, "-quality", false, false);
    493    
    494     PXOPT_LOOKUP_S64(magicked, config->args, "-magicked", false, false);
     483
     484//    Get this from the chipRun
     485//    PXOPT_LOOKUP_S64(magicked, config->args, "-magicked", false, false);
    495486
    496487    // generate restrictions
     
    500491    psString query = pxDataGet("camtool_find_pendingexp.sql");
    501492    if (!query) {
    502         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     493        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    503494        return false;
    504495    }
     
    535526        return false;
    536527    }
     528
     529    bool status;
     530    psS64 chip_magicked = psMetadataLookupS64(&status, output->data[0], "chip_magicked");
    537531
    538532    camRunRow *pendingRow = camRunObjectFromMetadata(output->data[0]);
     
    615609    }
    616610
    617     // since there is only one exp per 'new' set camRun.state = 'full'
    618     if (!pxcamRunSetState(config, row->cam_id, "full", magicked)) {
    619         psError(PS_ERR_UNKNOWN, false, "failed to change camRun.state for cam_id: %" PRId64, row->cam_id);
    620         psFree(row);
    621         psFree(pendingRow);
    622         return false;
    623     }
    624 
    625     // NULL for end_stage means go as far as possible
    626     // EAM : skip here if fault != 0
    627     // Also, we can run fake even if tess_id is not defined
    628     if (fault || (pendingRow->end_stage && psStrcasestr(pendingRow->end_stage, "cam"))) {
     611    if (fault) {
    629612        psFree(row);
    630613        psFree(pendingRow);
     
    635618        return true;
    636619    }
     620    // else continue on...
     621
     622    // since there is only one exp per 'new' set camRun.state = 'full'
     623    // propagate magicked state from chipRun
     624    if (!pxcamRunSetState(config, row->cam_id, "full", chip_magicked)) {
     625        psError(PS_ERR_UNKNOWN, false, "failed to change camRun.state for cam_id: %" PRId64, row->cam_id);
     626        psFree(row);
     627        psFree(pendingRow);
     628        return false;
     629    }
    637630    psFree(row);
    638     // else continue on...
     631
     632    // EAM:  NULL for end_stage means go as far as possible
     633    // Also, we can run fake even if tess_id is not defined
     634    if (pendingRow->end_stage && psStrcasestr(pendingRow->end_stage, "cam")) {
     635        psFree(pendingRow);
     636        if (!psDBCommit(config->dbh)) {
     637            psError(PS_ERR_UNKNOWN, false, "database error");
     638            return false;
     639        }
     640        return true;
     641    }
    639642
    640643    if (!pxfakeQueueByCamID(config,
     
    642645            pendingRow->workdir,
    643646            pendingRow->label,
     647            pendingRow->data_group,
     648            pendingRow->dist_group,
    644649            pendingRow->reduction,
    645650            pendingRow->expgroup,
    646651            pendingRow->dvodb,
    647652            pendingRow->tess_id,
    648             pendingRow->end_stage
     653            pendingRow->end_stage,
     654            NULL    // note does not propagate
    649655    )) {
    650656        // rollback
     
    656662        return false;
    657663    }
     664
    658665    psFree(pendingRow);
    659666
     
    674681    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    675682    PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false);
     683    PXOPT_LOOKUP_BOOL(pstamp_order, config->args, "-pstamp_order", false);
    676684
    677685    // generate restrictions
     
    680688    PXOPT_COPY_S64(config->args, where, "-cam_id",    "camRun.cam_id",    "==");
    681689    pxAddLabelSearchArgs (config, where, "-label",    "camRun.label",     "==");
     690    pxAddLabelSearchArgs (config, where, "-data_group", "camRun.data_group",     "LIKE");
    682691    PXOPT_COPY_STR(config->args, where, "-reduction", "camRun.reduction", "==");
    683692
    684     if (!psListLength(where->list) &&
     693    psString where2 = NULL;
     694    if (!pxspaceAddWhere(config, &where2, "rawExp")) {
     695        psError(psErrorCodeLast(), false, "pxSpaceAddWhere failed");
     696        return false;
     697    }
     698    if (!pxmagicAddWhere(config, &where2, "chipRun")) {
     699        psError(psErrorCodeLast(), false, "pxSpaceAddWhere failed");
     700        return false;
     701    }
     702    if (!psListLength(where->list) && !where2 &&
    685703        !psMetadataLookupBool(NULL, config->args, "-all")) {
    686704        psFree(where);
    687         psError(PXTOOLS_ERR_DATA, false, "search parameters (or -all) are required");
     705        psError(PXTOOLS_ERR_CONFIG, false, "search parameters (or -all) are required");
    688706        return false;
    689707    }
     
    691709    psString query = pxDataGet("camtool_find_processedexp.sql");
    692710    if (!query) {
    693         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     711        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    694712        return false;
    695713    }
     
    699717        psStringAppend(&query, " WHERE %s", whereClause);
    700718        psFree(whereClause);
    701     } 
     719    }
    702720
    703721    // we either add AND (condition) or WHERE (condition):
     
    705723        // list only faulted rows
    706724        psStringAppend(&query, " %s", " AND camProcessedExp.fault != 0");
    707     } 
     725    }
    708726    if (where->list && !faulted) {
    709727        // don't list faulted rows
     
    713731        // list only faulted rows
    714732        psStringAppend(&query, " %s", " WHERE camProcessedExp.fault != 0");
    715     } 
     733    }
    716734    if (!where->list && !faulted) {
    717735        // don't list faulted rows
     
    719737    }
    720738    psFree(where);
    721 
    722     // order by cam_id so that the postage stamp parser can easliy find the 'latest' astrometry
    723     psStringAppend(&query, " ORDER BY cam_id");
     739    if (where2) {
     740        psStringAppend(&query, " %s", where2);
     741        psFree(where2);
     742    }
     743
     744
     745    if (pstamp_order) {
     746        // put runs in order of exposure id with newest chip Runs first
     747        // The postage stamp parser depends on this behavior
     748        psStringAppend(&query, " ORDER BY exp_id, cam_id DESC");
     749    }
    724750
    725751    // treat limit == 0 as "no limit"
     
    774800    if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
    775801        psFree(where);
    776         psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
     802        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
    777803        return false;
    778804    }
     
    787813        psString query = pxDataGet("camtool_reset_faulted_runs.sql");
    788814        if (!query) {
    789             psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     815            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    790816            psFree(where);
    791817            return false;
     
    819845                psError(PS_ERR_UNKNOWN, false, "database error");
    820846            }
    821             psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     847            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    822848            psFree(where);
    823849            return false;
     
    959985    psString query = pxDataGet("camtool_pendingcleanuprun.sql");
    960986    if (!query) {
    961         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     987        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    962988        return false;
    963989    }
     
    10241050    psString query = pxDataGet("camtool_pendingcleanupexp.sql");
    10251051    if (!query) {
    1026         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1052        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    10271053        return false;
    10281054    }
     
    10851111    psString query = pxDataGet("camtool_donecleanup.sql");
    10861112    if (!query) {
    1087         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1113        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    10881114        return false;
    10891115    }
     
    11551181  }
    11561182
     1183  if (!pxExportVersion(config, f)) {
     1184    psError(PS_ERR_UNKNOWN, false, "failed to write dbversion output file");
     1185    return false;
     1186  }
     1187
    11571188  psMetadata *where = psMetadataAlloc();
    11581189  PXOPT_COPY_S64(config->args, where, "-cam_id", "cam_id", "==");
     
    11661197    psString query = pxDataGet(tables[i].sqlFilename);
    11671198    if (!query) {
    1168       psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1199      psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    11691200      return false;
    11701201    }
     
    12351266  psMetadata *input = psMetadataConfigRead (NULL, &nFail, infile, false);
    12361267
    1237   fprintf (stdout, "---- input ----\n");
     1268#ifdef notdef
     1269  fprintf (stderr, "---- input ----\n");
    12381270  psMetadataPrint (stderr, input, 1);
     1271#endif
     1272
     1273  if (!pxCheckImportVersion(config, input)) {
     1274      psError(PS_ERR_UNKNOWN, false, "pxCheckImportVersion failed");
     1275      return false;
     1276  }
    12391277
    12401278  psMetadataItem *item = psMetadataLookup (input, "camRun");
Note: See TracChangeset for help on using the changeset viewer.