IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 11033


Ignore:
Timestamp:
Jan 11, 2007, 12:11:08 PM (19 years ago)
Author:
jhoblitt
Message:

rework fault handling:

remove p2PendingImfile.fault
add p2ProcessedImfile.fault
remove -pendingimfile -fault
add -addprocessedimfile -code
add -processedimfile mode
rename -faultimfile -> -updatedprocessedimfile

Location:
trunk/ippTools/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/src/chiptool.c

    r11024 r11033  
    3333static bool pendingimfileMode(pxConfig *config);
    3434static bool addprocessedimfileMode(pxConfig *config);
    35 static bool faultimfileMode(pxConfig *config);
     35static bool processedimfileMode(pxConfig *config);
     36static bool updateprocessedimfileMode(pxConfig *config);
    3637static bool blockMode(pxConfig *config);
    3738static bool maskedMode(pxConfig *config);
    3839static bool unblockMode(pxConfig *config);
     40
    3941static p2ProcessedImfileRow *p2PendingToProcessedImfile(pxConfig *config, p2PendingImfileRow *imfile);
    4042static p2ProcessedExpRow *p2PendingToProcessedExp(pxConfig *config, p2PendingExpRow *pendingExp);
     
    5961        MODECASE(P2TOOL_MODE_PENDINGIMFILE,         pendingimfileMode);
    6062        MODECASE(P2TOOL_MODE_ADDPROCESSEDIMFILE,    addprocessedimfileMode);
    61         MODECASE(P2TOOL_MODE_FAULTIMFILE,           faultimfileMode);
     63        MODECASE(P2TOOL_MODE_PROCESSEDIMFILE,       processedimfileMode);
     64        MODECASE(P2TOOL_MODE_UPDATEPROCESSEDIMFILE, updateprocessedimfileMode);
    6265        MODECASE(P2TOOL_MODE_BLOCK,                 blockMode);
    6366        MODECASE(P2TOOL_MODE_MASKED,                maskedMode);
     
    183186    }
    184187
    185     bool faulted = psMetadataLookupU64(&status, config->args, "-faulted");
    186     if (!status) {
    187         psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -faulted");
    188         return false;
    189     }
    190 
    191188    // XXX does this need to be constrained so that it won't return any results
    192189    // if a match p2PendingExp hasn't been registered?
     
    212209    }
    213210
    214     if (faulted) {
    215         // list only faulted rows
    216         psStringAppend(&query, " %s", "AND p2PendingImfile.fault != 0");
    217     } else {
    218         // don't list faulted rows
    219         psStringAppend(&query, " %s", "AND p2PendingImfile.fault = 0");
    220     }
    221 
    222211    // treat limit == 0 as "no limit"
    223212    if (limit) {
     
    433422
    434423
    435 static bool faultimfileMode(pxConfig *config)
     424static bool processedimfileMode(pxConfig *config)
     425{
     426    PS_ASSERT_PTR_NON_NULL(config, NULL);
     427
     428    bool status = false;
     429    psU64 limit = psMetadataLookupU64(&status, config->args, "-limit");
     430    if (!status) {
     431        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -limit");
     432        return false;
     433    }
     434
     435    bool faulted = psMetadataLookupU64(&status, config->args, "-faulted");
     436    if (!status) {
     437        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -faulted");
     438        return false;
     439    }
     440
     441    // XXX does this need to be constrained so that it won't return any results
     442    // if a match p2PendingExp hasn't been registered?
     443    psString query = psStringCopy(
     444            "SELECT"
     445            "   p2ProcessedImfile.*,"
     446            "   rawScienceExp.camera"
     447            " FROM p2ProcessedImfile"
     448            " JOIN rawScienceExp"
     449            "   USING(exp_tag)"
     450            " WHERE "
     451            "   p2ProcessedImfile.exp_tag is NOT NULL" // bogus test -- just here so there there is a 'WHERE' stmt to append conditionals too
     452        );
     453
     454    if (config->where) {
     455        psString whereClause = psDBGenerateWhereConditionSQL(config->where, "p2ProcessedImfile");
     456        psStringAppend(&query, " AND %s", whereClause);
     457        psFree(whereClause);
     458    }
     459
     460    if (faulted) {
     461        // list only faulted rows
     462        psStringAppend(&query, " %s", "AND p2ProcessedImfile.fault != 0");
     463    } else {
     464        // don't list faulted rows
     465        psStringAppend(&query, " %s", "AND p2ProcessedImfile.fault = 0");
     466    }
     467
     468    // treat limit == 0 as "no limit"
     469    if (limit) {
     470        psString limitString = psDBGenerateLimitSQL(limit);
     471        psStringAppend(&query, " %s", limitString);
     472        psFree(limitString);
     473    }
     474
     475    if (!p_psDBRunQuery(config->dbh, query)) {
     476        psError(PS_ERR_UNKNOWN, false, "database error");
     477        psFree(query);
     478        return false;
     479    }
     480    psFree(query);
     481
     482    psArray *output = p_psDBFetchResult(config->dbh);
     483    if (!output) {
     484        psError(PS_ERR_UNKNOWN, false, "database error");
     485        return false;
     486    }
     487    if (!psArrayLength(output)) {
     488        // XXX check psError here
     489        psError(PS_ERR_UNKNOWN, false, "no p2ProcessedImfile rows found");
     490        psFree(output);
     491        return true;
     492    }
     493
     494    bool simple = false;
     495    {
     496        bool status = false;
     497        simple = psMetadataLookupBool(&status, config->args, "-simple");
     498        if (!status) {
     499            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -simple");
     500            return false;
     501        }
     502    }
     503
     504    // negative simple so the default is true
     505    if (!ippdbPrintMetadatas(stdout, output, "p2ProcessedImfile", !simple)) {
     506        psError(PS_ERR_UNKNOWN, false, "failed to print array");
     507        psFree(output);
     508        return false;
     509    }
     510
     511    psFree(output);
     512
     513    return true;
     514}
     515
     516
     517static bool updateprocessedimfileMode(pxConfig *config)
    436518{
    437519    PS_ASSERT_PTR_NON_NULL(config, false);
     
    444526    }
    445527
    446     if (!pxSetFaultCode(config->dbh, "p2PendingImfile", config->where, code)) {
     528    if (!pxSetFaultCode(config->dbh, "p2ProcessedImfile", config->where, code)) {
    447529        psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
    448530        return false;
     
    733815    }
    734816
     817    // default values
     818    psS8 code = psMetadataLookupS8(&status, config->args, "-code");
     819    if (!status) {
     820        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -code");
     821        return false;
     822    }
     823
    735824    return p2ProcessedImfileRowAlloc(
    736825        imfile->exp_tag,
     
    744833        b2_uri,
    745834        imfile->p1_version,
    746         imfile->p2_version
     835        imfile->p2_version,
     836        code
    747837    );
    748838}
  • trunk/ippTools/src/chiptool.h

    r11002 r11033  
    2929    P2TOOL_MODE_PENDINGIMFILE,
    3030    P2TOOL_MODE_ADDPROCESSEDIMFILE,
    31     P2TOOL_MODE_FAULTIMFILE,
     31    P2TOOL_MODE_PROCESSEDIMFILE,
     32    P2TOOL_MODE_UPDATEPROCESSEDIMFILE,
    3233    P2TOOL_MODE_BLOCK,
    3334    P2TOOL_MODE_MASKED,
  • trunk/ippTools/src/chiptoolConfig.c

    r11002 r11033  
    4747    // -pendingimfile
    4848    psMetadata *pendingimfileArgs = psMetadataAlloc();
    49     psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-inst",  0,
    50             "define camera of interest", NULL);
    51     psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-filter",  0,
    52             "define filter of interest", NULL);
    5349    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-exp_tag",  0,
    5450            "define exposure ID", NULL);
     
    5753    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-class_id",  0,
    5854            "define class ID", NULL);
     55    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-inst",  0,
     56            "define camera of interest", NULL);
     57    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-filter",  0,
     58            "define filter of interest", NULL);
    5959    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-uri",  0,
    6060            "define URL", NULL);
    6161    psMetadataAddU64(pendingimfileArgs, PS_LIST_TAIL, "-limit",  0,
    62         "limit result set to N items", 0);
    63     psMetadataAddBool(pendingimfileArgs, PS_LIST_TAIL, "-faulted",  0,
    64         "only return imfiles with a fault status set", false);
     62            "limit result set to N items", 0);
    6563    psMetadataAddBool(pendingimfileArgs, PS_LIST_TAIL, "-simple",  0,
    6664            "use the simple output format", false);
     
    8684    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-b2_uri",  0,
    8785            "define banana 2", NULL);
    88 
    89     // -faultimfile
    90     psMetadata *faultimfileArgs = psMetadataAlloc();
    91     psMetadataAddStr(faultimfileArgs, PS_LIST_TAIL, "-exp_tag",  0,
    92         "search by exposure ID", NULL);
    93     psMetadataAddStr(faultimfileArgs, PS_LIST_TAIL, "-class",  0,
    94         "search by class", NULL);
    95     psMetadataAddStr(faultimfileArgs, PS_LIST_TAIL, "-class_id",  0,
    96         "search by class ID", NULL);
    97     psMetadataAddS8(faultimfileArgs, PS_LIST_TAIL, "-code",  0,
    98         "set fault code (required)", 0);
     86    psMetadataAddS8(addprocessedimfileArgs, PS_LIST_TAIL, "-code",  0,
     87            "set fault code (required)", 0);
     88
     89    // -processedimfile
     90    psMetadata *processedimfileArgs = psMetadataAlloc();
     91    psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-exp_tag",  0,
     92            "define exposure ID", NULL);
     93    psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-class",  0,
     94            "define class", NULL);
     95    psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-class_id",  0,
     96            "define class ID", NULL);
     97    psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-inst",  0,
     98            "define camera of interest", NULL);
     99    psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-filter",  0,
     100            "define filter of interest", NULL);
     101    psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-uri",  0,
     102            "define URL", NULL);
     103    psMetadataAddU64(processedimfileArgs, PS_LIST_TAIL, "-limit",  0,
     104            "limit result set to N items", 0);
     105    psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-faulted",  0,
     106            "only return imfiles with a fault status set", false);
     107    psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-simple",  0,
     108            "use the simple output format", false);
     109
     110    // -updateprocessedimfile
     111    psMetadata *updateprocessedimfileArgs = psMetadataAlloc();
     112    psMetadataAddStr(updateprocessedimfileArgs, PS_LIST_TAIL, "-exp_tag",  0,
     113            "search by exposure ID", NULL);
     114    psMetadataAddStr(updateprocessedimfileArgs, PS_LIST_TAIL, "-class",  0,
     115            "search by class", NULL);
     116    psMetadataAddStr(updateprocessedimfileArgs, PS_LIST_TAIL, "-class_id",  0,
     117            "search by class ID", NULL);
     118    psMetadataAddS8(updateprocessedimfileArgs, PS_LIST_TAIL, "-code",  0,
     119            "set fault code (required)", 0);
    99120
    100121
     
    133154
    134155    psMetadata *argSets = psMetadataAlloc();
    135     PXTOOL_MODE("-quick",       P2TOOL_MODE_QUICK,        quickArgs);
    136     PXTOOL_MODE("-define",      P2TOOL_MODE_DEFINE,       defineArgs);
    137     PXTOOL_MODE("-pendingimfile", P2TOOL_MODE_PENDINGIMFILE, pendingimfileArgs);
     156    PXTOOL_MODE("-quick",           P2TOOL_MODE_QUICK,          quickArgs);
     157    PXTOOL_MODE("-define",          P2TOOL_MODE_DEFINE,         defineArgs);
     158    PXTOOL_MODE("-pendingimfile",   P2TOOL_MODE_PENDINGIMFILE, pendingimfileArgs);
    138159    PXTOOL_MODE("-addprocessedimfile",P2TOOL_MODE_ADDPROCESSEDIMFILE,addprocessedimfileArgs);
    139     PXTOOL_MODE("-faultimfile",  P2TOOL_MODE_FAULTIMFILE,   faultimfileArgs);
    140     PXTOOL_MODE("-block",        P2TOOL_MODE_BLOCK,          blockArgs);
    141     PXTOOL_MODE("-masked",       P2TOOL_MODE_MASKED,         maskedArgs);
    142     PXTOOL_MODE("-unblock",      P2TOOL_MODE_UNBLOCK,        unblockArgs);
     160    PXTOOL_MODE("-processedimfile",P2TOOL_MODE_PROCESSEDIMFILE, processedimfileArgs);
     161    PXTOOL_MODE("-updateprocessedimfile",P2TOOL_MODE_UPDATEPROCESSEDIMFILE,    updateprocessedimfileArgs);
     162    PXTOOL_MODE("-block",           P2TOOL_MODE_BLOCK,          blockArgs);
     163    PXTOOL_MODE("-masked",          P2TOOL_MODE_MASKED,         maskedArgs);
     164    PXTOOL_MODE("-unblock",         P2TOOL_MODE_UNBLOCK,        unblockArgs);
    143165
    144166    bool argErr = false;
  • trunk/ippTools/src/regtool.c

    r11002 r11033  
    800800        0xff,   // XXX calc version number
    801801        0xff,   // XXX calc version number
    802         label,
    803         0       // fault code
     802        label
    804803    );
    805804
     
    815814        "my recipe",
    816815        0xff, // XXX calc version number
    817         0xff, // XXX calc version number
    818         0       // fault code
     816        0xff  // XXX calc version number
    819817    );
    820818}
Note: See TracChangeset for help on using the changeset viewer.