IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 10, 2008, 4:02:14 PM (18 years ago)
Author:
jhoblitt
Message:

MERGE from HEAD

Location:
branches/cleanup/ippTools/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/cleanup/ippTools/src

    • Property svn:ignore
      •  

        old new  
        2323difftool
        2424stacktool
         25faketool
        2526dettool
        2627detselect
  • branches/cleanup/ippTools/src/faketool.c

    r17357 r18076  
    3232
    3333#include "faketool.h"
    34 #include "camtool.h"
    3534
    3635static bool queueMode(pxConfig *config);
    3736static bool updaterunMode(pxConfig *config);
     37static bool pendingexpMode(pxConfig *config);
    3838static bool pendingimfileMode(pxConfig *config);
    3939static bool addprocessedimfileMode(pxConfig *config);
     
    6767        MODECASE(FAKETOOL_MODE_QUEUE,                   queueMode);
    6868        MODECASE(FAKETOOL_MODE_UPDATERUN,               updaterunMode);
     69        MODECASE(FAKETOOL_MODE_PENDINGEXP,              pendingexpMode);
    6970        MODECASE(FAKETOOL_MODE_PENDINGIMFILE,           pendingimfileMode);
    7071        MODECASE(FAKETOOL_MODE_ADDPROCESSEDIMFILE,      addprocessedimfileMode);
     
    171172
    172173    // find the exp_id of all the exposures that we want to queue up.
    173     psString query = pxDataGet("faketool_find_rawexp.sql");
     174    psString query = pxDataGet("faketool_find_camrun.sql");
    174175    if (!query) {
    175176        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     
    179180
    180181    if (where && psListLength(where->list)) {
    181         psString whereClause = psDBGenerateWhereConditionSQL(where, "rawExp");
    182         psStringAppend(&query, " AND %s", whereClause);
     182        psString whereClause = psDBGenerateWhereSQL(where, NULL);
     183        psStringAppend(&query, " %s", whereClause);
    183184        psFree(whereClause);
    184185    }
     
    219220    }
    220221
    221     // loop over our list of exp_ids
     222    // loop over our list of cam_ids
    222223    for (long i = 0; i < psArrayLength(output); i++) {
    223224        psMetadata *md = output->data[i];
    224225
    225226        bool status;
    226         psS64 exp_id = psMetadataLookupS64(&status, md, "exp_id");
     227        psS64 cam_id = psMetadataLookupS64(&status, md, "cam_id");
    227228        if (!status) {
    228             psError(PS_ERR_UNKNOWN, false, "failed to lookup value for exp_id");
     229            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for cam_id");
    229230            psFree(output);
    230231            return false;
     
    232233
    233234        // queue the exp
    234         if (!pxfakeQueueByExpTag(config, exp_id, workdir, label, reduction, expgroup, dvodb, tess_id, end_stage)) {
     235        if (!pxfakeQueueByCamID(config, cam_id, workdir, label, reduction, expgroup, dvodb, tess_id, end_stage)) {
    235236            if (!psDBRollback(config->dbh)) {
    236237                psError(PS_ERR_UNKNOWN, false, "database error");
    237238            }
    238239            psError(PS_ERR_UNKNOWN, false,
    239                     "failed to trying to queue exp_id: %" PRId64, exp_id);
     240                    "failed to trying to queue cam_id: %" PRId64, cam_id);
    240241            psFree(output);
    241242            return false;
     
    354355
    355356
     357static bool pendingexpMode(pxConfig *config)
     358{
     359    PS_ASSERT_PTR_NON_NULL(config, false);
     360
     361    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     362    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     363
     364    psMetadata *where = psMetadataAlloc();
     365    PXOPT_COPY_STR(config->args, where, "-fake_id", "fake_id", "==");
     366    PXOPT_COPY_STR(config->args, where, "-cam_id", "cam_id", "==");
     367    PXOPT_COPY_STR(config->args, where, "-chip_id", "chip_id", "==");
     368
     369    psString query = pxDataGet("faketool_find_pendingexp.sql");
     370    if (!query) {
     371        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     372        psFree(where);
     373        return false;
     374    }
     375
     376    if (where && psListLength(where->list)) {
     377        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     378        psStringAppend(&query, " AND %s", whereClause);
     379        psFree(whereClause);
     380    }
     381    psFree(where);
     382
     383    // treat limit == 0 as "no limit"
     384    if (limit) {
     385        psString limitString = psDBGenerateLimitSQL(limit);
     386        psStringAppend(&query, " %s", limitString);
     387        psFree(limitString);
     388    }
     389
     390    if (!p_psDBRunQuery(config->dbh, query)) {
     391        psError(PS_ERR_UNKNOWN, false, "database error");
     392        psFree(query);
     393        return false;
     394    }
     395    psFree(query);
     396
     397    psArray *output = p_psDBFetchResult(config->dbh);
     398    if (!output) {
     399        psError(PS_ERR_UNKNOWN, false, "database error");
     400        return false;
     401    }
     402    if (!psArrayLength(output)) {
     403        psTrace("camtool", PS_LOG_INFO, "no rows found");
     404        psFree(output);
     405        return true;
     406    }
     407
     408    if (!convertIdToStr(output)) {
     409        psError(PS_ERR_UNKNOWN, false, "failed to convert id fields into a strings");
     410        psFree(output);
     411        return false;
     412    }
     413
     414    // negate simple so the default is true
     415    if (!ippdbPrintMetadatas(stdout, output, "fakePendingExp", !simple)) {
     416        psError(PS_ERR_UNKNOWN, false, "failed to print array");
     417        psFree(output);
     418        return false;
     419    }
     420
     421    psFree(output);
     422
     423    return true;
     424}
     425
     426
    356427static bool pendingimfileMode(pxConfig *config)
    357428{
     
    448519
    449520    // fake_id, ext_tag, class_id are required
    450     PXOPT_LOOKUP_STR(fake_id, config->args, "-fake_id", true, false);
    451     PXOPT_LOOKUP_STR(exp_id, config->args, "-exp_id", true, false);
    452     PXOPT_LOOKUP_STR(class_id, config->args, "-class_id", true, false);
     521    PXOPT_LOOKUP_STR(fake_id, config->args,     "-fake_id", true, false);
     522    PXOPT_LOOKUP_STR(exp_id, config->args,      "-exp_id", true, false);
     523    PXOPT_LOOKUP_STR(class_id, config->args,    "-class_id", true, false);
    453524
    454525    // optional
    455     PXOPT_LOOKUP_STR(uri, config->args,            "-uri", false, false);
    456     PXOPT_LOOKUP_F32(bg, config->args,             "-bg", false, false);
    457     PXOPT_LOOKUP_F32(bg_stdev, config->args,       "-bg_stdev", false, false);
    458     PXOPT_LOOKUP_F32(bg_mean_stdev, config->args,  "-bg_mean_stdev", false, false);
    459     PXOPT_LOOKUP_F32(bias, config->args,           "-bias", false, false);
    460     PXOPT_LOOKUP_F32(bias_stdev, config->args,     "-bias_stdev", false, false);
    461     PXOPT_LOOKUP_F32(fringe_0, config->args,       "-fringe_0", false, false);
    462     PXOPT_LOOKUP_F32(fringe_1, config->args,       "-fringe_1", false, false);
    463     PXOPT_LOOKUP_F32(fringe_2, config->args,       "-fringe_2", false, false);
    464     PXOPT_LOOKUP_F32(sigma_ra, config->args,       "-sigma_ra", false, false);
    465     PXOPT_LOOKUP_F32(sigma_dec, config->args,      "-sigma_dec", false, false);
    466     PXOPT_LOOKUP_F32(ap_resid, config->args,       "-ap_resid", false, false);
    467     PXOPT_LOOKUP_F32(ap_resid_stdev, config->args, "-ap_resid_stdev", false, false);
    468     PXOPT_LOOKUP_F32(zp_mean, config->args,        "-zp_mean", false, false);
    469     PXOPT_LOOKUP_F32(zp_stdev, config->args,       "-zp_stdev", false, false);
    470     PXOPT_LOOKUP_F32(fwhm_major, config->args,     "-fwhm_major", false, false);
    471     PXOPT_LOOKUP_F32(fwhm_minor, config->args,     "-fwhm_minor", false, false);
    472     PXOPT_LOOKUP_F32(dtime_detrend, config->args,  "-dtime_detrend", false, false);
    473     PXOPT_LOOKUP_F32(dtime_photom,  config->args,  "-dtime_photom",  false, false);
    474     PXOPT_LOOKUP_F32(dtime_astrom,  config->args,  "-dtime_astrom",  false, false);
    475     PXOPT_LOOKUP_STR(hostname, config->args,       "-hostname", false, false);
    476     PXOPT_LOOKUP_F32(n_stars, config->args, "-n_stars", false, false);
    477     PXOPT_LOOKUP_F32(n_extended, config->args, "-n_extended", false, false);
    478     PXOPT_LOOKUP_F32(n_cr, config->args, "-n_cr", false, false);
    479     PXOPT_LOOKUP_F32(n_astrom, config->args, "-n_astrom", false, false);
    480     PXOPT_LOOKUP_STR(path_base, config->args, "-path_base", false, false);
     526    PXOPT_LOOKUP_STR(uri, config->args,         "-uri", false, false);
     527
     528    PXOPT_LOOKUP_F32(dtime_fake, config->args,  "-dtime_fake", false, false);
     529    PXOPT_LOOKUP_STR(hostname, config->args,    "-hostname", false, false);
     530    PXOPT_LOOKUP_STR(path_base, config->args,   "-path_base", false, false);
    481531
    482532    // default values
    483     PXOPT_LOOKUP_S16(code, config->args, "-code", false, false);
     533    PXOPT_LOOKUP_S16(code, config->args,        "-code", false, false);
    484534
    485535    if (!psDBTransaction(config->dbh)) {
     
    493543                                   class_id,
    494544                                   uri,
    495                                    bg,
    496                                    bg_stdev,
    497                                    bg_mean_stdev,
    498                                    bias,
    499                                    bias_stdev,
    500                                    fringe_0,
    501                                    fringe_1,
    502                                    fringe_2,
    503                                    sigma_ra,
    504                                    sigma_dec,
    505                                    ap_resid,
    506                                    ap_resid_stdev,
    507                                    zp_mean,
    508                                    zp_stdev,
    509                                    fwhm_major,
    510                                    fwhm_minor,
    511                                    dtime_detrend,
    512                                    dtime_photom,
    513                                    dtime_astrom,
     545                                   dtime_fake,
    514546                                   hostname,
    515                                    n_stars,
    516                                    n_extended,
    517                                    n_cr,
    518                                    n_astrom,
    519547                                   path_base,
    520                                    code
     548                                   code,
     549                                   NULL         // epoch
    521550            )) {
    522551        // rollback
     
    748777    PXOPT_LOOKUP_S16(code, config->args, "-code", true, false);
    749778
    750     if (!pxSetFaultCode(config->dbh, "fakeProcessedImfile", config->where, code)) {
     779    psMetadata *where = psMetadataAlloc();
     780    PXOPT_LOOKUP_STR(fake_id, config->args, "-fake_id", false, false);
     781    // convert fake_id into a psS64
     782    if (fake_id) {
     783        if (!psMetadataAddS64(where, PS_LIST_TAIL, "fake_id", 0, "==", (psS64)atoll(fake_id))) {
     784            psError(PS_ERR_UNKNOWN, false, "failed to add item fake_id");
     785            psFree(where);
     786            return false;
     787        }
     788    }
     789    PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "==");
     790
     791    if (!pxSetFaultCode(config->dbh, "fakeProcessedImfile", where, code)) {
    751792        psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
    752         return false;
    753     }
     793        psFree(where);
     794        return false;
     795    }
     796    psFree(where);
    754797
    755798    return true;
     
    9841027        // camQueueFakeID() can only be run after fakeRun.state has been set to
    9851028        // stop
    986         if (!pxcamQueueByFakeID(config,
     1029        if (!pxwarpQueueByFakeID(config,
    9871030                    fakeRun->fake_id,
    9881031                    fakeRun->workdir,
    9891032                    fakeRun->label,
    990                     fakeRun->reduction,
    991                     fakeRun->expgroup,
    9921033                    fakeRun->dvodb,
    9931034                    fakeRun->tess_id,
Note: See TracChangeset for help on using the changeset viewer.