IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 29, 2010, 3:55:49 PM (16 years ago)
Author:
eugene
Message:

update merges from trunk

Location:
branches/eam_branches/20100225
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/20100225

  • branches/eam_branches/20100225/ippTools/src/pstamptool.c

    r26981 r27517  
    116116    PS_ASSERT_PTR_NON_NULL(config, false);
    117117
    118     PXOPT_LOOKUP_STR(uri,         config->args, "-uri",           true, false);
    119     PXOPT_LOOKUP_STR(outProduct,  config->args, "-out_product",   true, false);
    120     PXOPT_LOOKUP_STR(lastFileset, config->args, "-last_fileset", false, false);
    121     PXOPT_LOOKUP_STR(state,       config->args, "-state",         false, false);
     118    PXOPT_LOOKUP_STR(uri,         config->args, "-set_uri",           true, false);
     119    PXOPT_LOOKUP_STR(outProduct,  config->args, "-set_out_product",   true, false);
     120    PXOPT_LOOKUP_STR(lastFileset, config->args, "-set_last_fileset", false, false);
     121    PXOPT_LOOKUP_STR(state,       config->args, "-set_state",         false, false);
     122    PXOPT_LOOKUP_STR(label,       config->args, "-set_label",         false, false);
     123    PXOPT_LOOKUP_S32(pollInterval, config->args, "-set_poll_interval",false, false);
    122124
    123125    if (!pstampDataStoreInsert(config->dbh,
     
    125127            state,
    126128            lastFileset,
     129            NULL,       // timestamp
     130            label,      // label
    127131            outProduct,
    128             uri
     132            uri,
     133            pollInterval
    129134        )) {
    130135        psError(PS_ERR_UNKNOWN, false, "database error");
     
    142147    PXOPT_COPY_S64(config->args, where, "-ds_id", "ds_id", "==");
    143148
     149    PXOPT_LOOKUP_BOOL(ready, config->args, "-ready", false);
    144150    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    145151
     
    156162    }
    157163    psFree(where);
     164    if (ready) {
     165        psStringAppend(&query, " %s", "\nAND TIMESTAMPDIFF(SECOND, timestamp, now()) > pollInterval");
     166    }
    158167
    159168    if (!p_psDBRunQuery(config->dbh, query)) {
     
    189198
    190199    PXOPT_LOOKUP_S64(ds_id,       config->args, "-ds_id",         true, false);
    191     PXOPT_LOOKUP_STR(lastFileset, config->args, "-last_fileset",  false, false);
    192     PXOPT_LOOKUP_STR(state,       config->args, "-state",         false, false);
    193 
    194     if (!state && !lastFileset) {
    195         psError(PS_ERR_UNKNOWN, true, "at least one of -last_fileset or -state is required");
    196         return false;
    197     }
    198 
    199     char *query = psStringCopy ("UPDATE pstampDataStore SET");
    200     bool needComma = false;
     200    PXOPT_LOOKUP_STR(lastFileset, config->args, "-set_last_fileset",  false, false);
     201    PXOPT_LOOKUP_STR(state,       config->args, "-set_state",         false, false);
     202    PXOPT_LOOKUP_STR(label,       config->args, "-set_label",         false, false);
     203    PXOPT_LOOKUP_S32(pollInterval, config->args, "-set_poll_interval",         false, false);
     204    PXOPT_LOOKUP_BOOL(update_timestamp, config->args, "-update_timestamp", false);
     205
     206    if (!state && !lastFileset && !pollInterval && !update_timestamp && !label) {
     207        psError(PS_ERR_UNKNOWN, true, "at least one of -last_fileset or -set_state is required");
     208        return false;
     209    }
     210
     211    char *query = psStringCopy ("UPDATE pstampDataStore SET timestamp = CURRENT_TIMESTAMP() ");
    201212
    202213    if (lastFileset) {
    203         psStringAppend(&query, " lastFileset = '%s'", lastFileset);
    204         needComma = true;
     214        psStringAppend(&query, " , lastFileset = '%s'", lastFileset);
    205215    }
    206216
    207217    if (state) {
    208         psStringAppend(&query, "%s state = '%s'", needComma ? "," : " ", state);
    209         needComma = true; // be ready in case we add another field
     218        psStringAppend(&query, ", state = '%s'", state);
     219    }
     220
     221    if (label) {
     222        psStringAppend(&query, ", label = '%s'", label);
     223    }
     224
     225    if (pollInterval) {
     226        psStringAppend(&query, ", pollInterval = %d", pollInterval);
    210227    }
    211228
     
    265282    psMetadata *where = psMetadataAlloc();
    266283    PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "==");
     284    pxAddLabelSearchArgs(config, where, "-label", "label", "LIKE");
    267285
    268286    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     
    387405    PS_ASSERT_PTR_NON_NULL(config, false);
    388406
     407    psMetadata *where = psMetadataAlloc();
     408    pxAddLabelSearchArgs(config, where, "-label", "label", "LIKE");
     409
    389410    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
    390411    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    391412
    392413    psString query = pxDataGet("pstamptool_completedreq.sql");
     414
     415    if (psListLength(where->list)) {
     416        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     417        psStringAppend(&query, " AND %s", whereClause);
     418        psFree(whereClause);
     419    }
     420    psFree(where);
    393421
    394422    // treat limit == 0 as "no limit"
     
    502530    PXOPT_COPY_S64(config->args, where, "-fault", "req_id", "==");
    503531    PXOPT_COPY_STR(config->args, where, "-state", "pstampRequest.state", "==");
     532    pxAddLabelSearchArgs(config, where, "-label", "pstampRequest.label", "LIKE");
    504533
    505534    if (!psListLength(where->list)) {
     
    674703    PXOPT_COPY_S64(config->args, where, "-job_id", "job_id", "==");
    675704    PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "==");
     705    pxAddLabelSearchArgs(config, where, "-label", "label", "LIKE");
     706
    676707    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
    677708    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     
    685716    // use psDBGenerateWhereSQL because the SQL yields an intermediate table
    686717    if (psListLength(where->list)) {
    687         psString whereClause = psDBGenerateWhereConditionSQL(where, "pstampJob");
     718        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    688719        psStringAppend(&query, " AND %s", whereClause);
    689720        psFree(whereClause);
     
    772803    PXOPT_COPY_S64(config->args, where, "-job_id", "job_id", "==");
    773804    PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "==");
    774     PXOPT_COPY_S64(config->args, where, "-fault",  "fault", "==");
     805    PXOPT_COPY_S64(config->args, where, "-fault",  "pstampJob.fault", "==");
    775806    PXOPT_COPY_S64(config->args, where, "-req_id_min",  "req_id", ">=");
     807    pxAddLabelSearchArgs(config, where, "-label", "pstampRequest.label", "LIKE");
    776808
    777809    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
     
    794826    }
    795827    if (psListLength(where->list)) {
    796         psString whereClause = psDBGenerateWhereConditionSQL(where, "pstampJob");
     828        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    797829        psStringAppend(&query, " AND %s", whereClause);
    798830        psFree(whereClause);
Note: See TracChangeset for help on using the changeset viewer.