IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 14112


Ignore:
Timestamp:
Jul 10, 2007, 2:34:45 PM (19 years ago)
Author:
jhoblitt
Message:

add stacktool -revertsumskyfile

Location:
trunk/ippTools
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/share/Makefile.am

    r14108 r14112  
    3737        stacktool_sumskyfile.sql \
    3838        stacktool_tosum.sql \
     39        stacktool_revertsumskyfile.sql \
    3940        warptool_exp.sql \
    4041        warptool_imfile.sql \
  • trunk/ippTools/src/stacktool.c

    r14110 r14112  
    3838static bool addsumskyfileMode(pxConfig *config);
    3939static bool sumskyfileMode(pxConfig *config);
     40static bool revertsumskyfileMode(pxConfig *config);
    4041
    4142static bool setstackRunState(pxConfig *config, const char *stack_id, const char *state);
     
    6667        MODECASE(STACKTOOL_MODE_ADDSUMSKYFILE,      addsumskyfileMode);
    6768        MODECASE(STACKTOOL_MODE_SUMSKYFILE,         sumskyfileMode);
     69        MODECASE(STACKTOOL_MODE_REVERTSUMSKYFILE,   revertsumskyfileMode);
    6870        default:
    6971            psAbort("invalid option (this should not happen)");
     
    666668
    667669
     670static bool revertsumskyfileMode(pxConfig *config)
     671{
     672    PS_ASSERT_PTR_NON_NULL(config, false);
     673   
     674    psString query = pxDataGet("stacktool_revertsumskyfile.sql");
     675    if (!query) {
     676        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     677        return false;
     678    }
     679
     680    if (config->where) {
     681        psString whereClause = psDBGenerateWhereConditionSQL(config->where, "stackSumSkyfile");
     682        psStringAppend(&query, " AND %s", whereClause);
     683        psFree(whereClause);
     684    }
     685
     686    if (!p_psDBRunQuery(config->dbh, query)) {
     687        psError(PS_ERR_UNKNOWN, false, "database error");
     688        psFree(query);
     689        return false;
     690    }
     691    psFree(query);
     692
     693    if (psDBAffectedRows(config->dbh) < 1) {
     694        psError(PS_ERR_UNKNOWN, false, "should have affected atleast 1 row");
     695        return false;
     696    }
     697
     698    return true;
     699}
     700
     701
    668702static bool setstackRunState(pxConfig *config, const char *stack_id, const char *state)
    669703{
  • trunk/ippTools/src/stacktool.h

    r12025 r14112  
    3232    STACKTOOL_MODE_ADDSUMSKYFILE,
    3333    STACKTOOL_MODE_SUMSKYFILE,
     34    STACKTOOL_MODE_REVERTSUMSKYFILE,
    3435} stacktoolMode;
    3536
  • trunk/ippTools/src/stacktoolConfig.c

    r14110 r14112  
    121121            "set fault code", 0);
    122122
    123 
    124123    // -sumskyfile
    125124    psMetadata *sumskyfileArgs= psMetadataAlloc();
     
    133132            "use the simple output format", false);
    134133
     134    // -revertsumskyfile
     135    psMetadata *revertsumskyfileArgs= psMetadataAlloc();
     136    psMetadataAddStr(revertsumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,
     137            "search by stack ID (required)", NULL);
     138    psMetadataAddS16(revertsumskyfileArgs, PS_LIST_TAIL, "-code",  0,
     139            "search by fault code", 0);
     140
    135141    psFree(now);
    136142
     
    145151    PXTOOL_ADD_MODE("-addsumskyfile",   "", STACKTOOL_MODE_ADDSUMSKYFILE,   addsumskyfileArgs);
    146152    PXTOOL_ADD_MODE("-sumskyfile",      "", STACKTOOL_MODE_SUMSKYFILE,      sumskyfileArgs);
     153    PXTOOL_ADD_MODE("-revertsumskyfile","", STACKTOOL_MODE_REVERTSUMSKYFILE,      revertsumskyfileArgs);
    147154
    148155    if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
     
    199206    }
    200207}
     208
     209{
     210    psString str = NULL;
     211    bool status = false;
     212    if ((str = psMetadataLookupStr(&status, config->args, "-stack_id"))) {
     213        if (!psMetadataAddS64(config->where, PS_LIST_TAIL, "stack_id", 0, "==", (psS64)atoll(str))) {
     214            psError(PS_ERR_UNKNOWN, false, "failed to add item stack_id");
     215            psFree(config);
     216            return NULL;
     217        }
     218    }
     219}
     220
    201221    addWhereStr(skycell_id);
    202222    addWhereStr(tess_id);
    203     addWhereStr(exp_id);
     223
     224    // convert '-code' to 'fault'
     225    {
     226        psS16 fault = 0;
     227        bool status = false;
     228        if ((fault = psMetadataLookupS16(&status, config->args, "-code"))) {
     229            if (!psMetadataAddS16(config->where, PS_LIST_TAIL, "fault", 0, "==", fault)) {
     230                psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     231                psFree(config);
     232                return NULL;
     233            }
     234        }
     235    }
    204236
    205237    if (config->where->list->n < 1) {
Note: See TracChangeset for help on using the changeset viewer.