IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 15, 2010, 1:12:26 PM (16 years ago)
Author:
watersc1
Message:

Change to make stack summary code run at 9PM HST to attempt to dodge a race condition. Probablyl not a final solution, but will work for now.

Location:
branches/czw_branch/20100519
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/czw_branch/20100519

  • branches/czw_branch/20100519/ippTools/src/pstamptool.c

    r28334 r28338  
    870870
    871871    PXOPT_LOOKUP_S64(job_id,    config->args, "-job_id", false, false);
     872    PXOPT_LOOKUP_S64(req_id,    config->args, "-req_id", false, false);
    872873    PXOPT_LOOKUP_S64(dep_id,    config->args, "-dep_id", false, false);
    873874
    874     if (!job_id && !dep_id) {
    875         psError(PS_ERR_UNKNOWN, true, "at least -job_id or -dep_id is required");
     875    if (!job_id && !req_id && !dep_id) {
     876        psError(PS_ERR_UNKNOWN, true, "at least one of -job_id -req_id or -dep_id is required");
    876877        return false;
    877878    }
     
    888889
    889890    PXOPT_COPY_S64(config->args, where, "-job_id", "job_id", "==");
     891    PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "==");
    890892    PXOPT_COPY_S64(config->args, where, "-dep_id", "dep_id", "==");
     893    PXOPT_COPY_STR(config->args, where, "-state",  "pstampJob.state", "==");
    891894
    892895    psString query = pxDataGet("pstamptool_updatejob.sql");
  • branches/czw_branch/20100519/ippTools/src/pstamptoolConfig.c

    r28334 r28338  
    160160    // -updatejob
    161161    psMetadata *updatejobArgs = psMetadataAlloc();
    162     psMetadataAddS64(updatejobArgs, PS_LIST_TAIL, "-job_id", 0,            "req_id for which to change state", 0);
    163     psMetadataAddS64(updatejobArgs, PS_LIST_TAIL, "-dep_id", 0,            "dep_id for which to change state", 0);
     162    psMetadataAddS64(updatejobArgs, PS_LIST_TAIL, "-req_id", 0,            "req_id of jobs to update", 0);
     163    psMetadataAddS64(updatejobArgs, PS_LIST_TAIL, "-job_id", 0,            "job_id of jobs to update", 0);
     164    psMetadataAddS64(updatejobArgs, PS_LIST_TAIL, "-dep_id", 0,            "dep_id of jobs to update", 0);
     165    psMetadataAddStr(updatejobArgs, PS_LIST_TAIL, "-state", 0,            "current state of jobs to update", 0);
    164166    psMetadataAddStr(updatejobArgs, PS_LIST_TAIL, "-set_state", 0,            "new state", NULL);
    165167    psMetadataAddS16(updatejobArgs, PS_LIST_TAIL, "-set_fault", 0,            "new result", 0);
  • branches/czw_branch/20100519/ippTools/src/pubtool.c

    r27071 r28338  
    151151    PS_ASSERT_PTR_NON_NULL(config, false);
    152152
    153     psMetadata *where = psMetadataAlloc(); // WHERE conditions
     153    psMetadata *diffWhere = psMetadataAlloc(); // WHERE conditions for diffs
     154    psMetadata *camWhere = psMetadataAlloc(); // WHERE conditions for cams
    154155
    155156    // required
    156157
    157158    // optional
    158     PXOPT_COPY_S64(config->args, where, "-client_id", "client_id", "==");
    159     pxAddLabelSearchArgs(config, where, "-label", "label", "=="); // define using newExp label
     159    PXOPT_COPY_S64(config->args, diffWhere, "-client_id", "client_id", "==");
     160    pxAddLabelSearchArgs(config, diffWhere, "-label", "diffRun.label", "==");
     161    pxAddLabelSearchArgs(config, diffWhere, "-data_group", "diffRun.data_group", "LIKE");
     162    PXOPT_COPY_TIME(config->args, diffWhere, "-dateobs_begin", "rawExp.dateobs", ">=");
     163    PXOPT_COPY_TIME(config->args, diffWhere, "-dateobs_end", "rawExp.dateobs", "<=");
     164    PXOPT_COPY_STR(config->args, diffWhere, "-filter", "rawExp.filter", "LIKE");
     165    PXOPT_COPY_STR(config->args, diffWhere, "-obs_mode", "rawExp.obs_mode", "LIKE");
     166
     167    PXOPT_COPY_S64(config->args, camWhere, "-client_id", "client_id", "==");
     168    pxAddLabelSearchArgs(config, camWhere, "-label", "camRun.label", "==");
     169    pxAddLabelSearchArgs(config, camWhere, "-data_group", "camRun.data_group", "LIKE");
     170    PXOPT_COPY_TIME(config->args, camWhere, "-dateobs_begin", "rawExp.dateobs", ">=");
     171    PXOPT_COPY_TIME(config->args, camWhere, "-dateobs_end", "rawExp.dateobs", "<=");
     172    PXOPT_COPY_STR(config->args, camWhere, "-filter", "rawExp.filter", "LIKE");
     173    PXOPT_COPY_STR(config->args, camWhere, "-obs_mode", "rawExp.obs_mode", "LIKE");
     174
     175    PXOPT_LOOKUP_BOOL(rerun, config->args, "-rerun", false);
     176    PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false);
     177    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     178    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    160179
    161180    psString query = pxDataGet("pubtool_definerun.sql"); // Query to run
    162181    if (!query) {
    163182        psError(PXTOOLS_ERR_SYS, false, "Failed to retreive SQL statement");
    164         psFree(where);
    165         return false;
     183        psFree(diffWhere);
     184        psFree(camWhere);
     185        return false;
     186    }
     187
     188    if (!rerun) {
     189        psStringAppend(&query, "\nWHERE publishRun.client_id IS NULL");
     190    }
     191
     192    if (limit) {
     193        psString limitString = psDBGenerateLimitSQL(limit);
     194        psStringAppend(&query, "\n%s", limitString);
     195        psFree(limitString);
    166196    }
    167197
    168198    if (!psDBTransaction(config->dbh)) {
    169199        psError(PS_ERR_UNKNOWN, false, "Database error");
    170         psFree(where);
    171         return false;
    172     }
    173 
    174     psString whereClause = psStringCopy(""); // Additional constraints to add to query
    175     if (psListLength(where->list)) {
    176         psString clause = psDBGenerateWhereConditionSQL(where, NULL);
    177         psStringAppend(&whereClause, "\n AND %s", clause);
     200        psFree(diffWhere);
     201        psFree(camWhere);
     202        return false;
     203    }
     204
     205    psString whereDiff = psStringCopy(""); // Additional constraints to add to query
     206    if (psListLength(diffWhere->list)) {
     207        psString clause = psDBGenerateWhereConditionSQL(diffWhere, NULL);
     208        psStringAppend(&whereDiff, "\n AND %s", clause);
    178209        psFree(clause);
    179210    }
    180     psFree(where);
    181 
    182     if (!p_psDBRunQueryF(config->dbh, query, whereClause, whereClause)) {
     211    psFree(diffWhere);
     212
     213    psString whereCam = psStringCopy(""); // Additional constraints to add to query
     214    if (psListLength(camWhere->list)) {
     215        psString clause = psDBGenerateWhereConditionSQL(camWhere, NULL);
     216        psStringAppend(&whereCam, "\n AND %s", clause);
     217        psFree(clause);
     218    }
     219    psFree(camWhere);
     220
     221    if (!p_psDBRunQueryF(config->dbh, query, whereDiff, whereCam)) {
    183222        psError(PS_ERR_UNKNOWN, false, "Database error");
    184223        psFree(query);
    185         psFree(whereClause);
     224        psFree(whereDiff);
     225        psFree(whereCam);
    186226        if (!psDBRollback(config->dbh)) {
    187227            psError(PS_ERR_UNKNOWN, false, "Database error");
     
    190230    }
    191231    psFree(query);
    192     psFree(whereClause);
     232    psFree(whereDiff);
     233    psFree(whereCam);
    193234
    194235    psArray *output = p_psDBFetchResult(config->dbh); // Output of SELECT statement
     
    202243    if (!psArrayLength(output)) {
    203244        psTrace("pubtool", PS_LOG_INFO, "No rows found");
     245        psFree(output);
     246        return true;
     247    }
     248
     249    if (pretend) {
     250        if (!ippdbPrintMetadatas(stdout, output, "publishRun", !simple)) {
     251            psError(psErrorCodeLast(), false, "Failed to print array");
     252            psFree(output);
     253            return false;
     254        }
    204255        psFree(output);
    205256        return true;
     
    241292    PXOPT_COPY_STR(config->args, where, "-stage", "publishClient.stage", "==");
    242293    PXOPT_COPY_STR(config->args, where, "-comment", "publishClient.comment", "LIKE");
    243     PXOPT_COPY_STR(config->args, where, "-label", "publishRun.label", "==");
     294    pxAddLabelSearchArgs(config, where, "-label", "label", "==");
    244295
    245296    // optional
  • branches/czw_branch/20100519/ippTools/src/pubtoolConfig.c

    r27311 r28338  
    6464    psMetadataAddS64(definerunArgs, PS_LIST_TAIL, "-client_id", 0, "search by client_id", 0);
    6565    psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "set and search by label", NULL);
     66    psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-data_group", PS_META_DUPLICATE_OK, "search by data_group", NULL);
     67    psMetadataAddTime(definerunArgs, PS_LIST_TAIL, "-dateobs_begin", 0, "search for exposures by time (>=)", NULL);
     68    psMetadataAddTime(definerunArgs, PS_LIST_TAIL, "-dateobs_end", 0, "search for exposures by time (<=)", NULL);
     69    psMetadataAddStr(definerunArgs,  PS_LIST_TAIL, "-filter", 0, "search for filter", NULL);
     70    psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-obs_mode", 0, "search by observation mode", NULL);
     71    psMetadataAddBool(definerunArgs, PS_LIST_TAIL, "-rerun", 0, "Re-run publish?", false);
     72    psMetadataAddBool(definerunArgs, PS_LIST_TAIL, "-pretend", 0, "Pretend to define?", false);
     73    psMetadataAddBool(definerunArgs, PS_LIST_TAIL, "-simple",  0, "use simple output format?", false);
     74    psMetadataAddU64(definerunArgs, PS_LIST_TAIL, "-limit",  0, "limit result set", 0);
    6675
    6776    // -pending
     
    7079    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-stage", 0, "search on source", NULL);
    7180    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-comment", 0, "search on comment (LIKE)", NULL);
    72     psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-label", 0, "search on label", NULL);
     81    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search on label", NULL);
    7382    psMetadataAddBool(pendingArgs, PS_LIST_TAIL, "-simple",  0, "use simple output format?", false);
    7483    psMetadataAddU64(pendingArgs, PS_LIST_TAIL, "-limit",  0, "limit result set", 0);
  • branches/czw_branch/20100519/ippTools/src/pxtools.c

    r28304 r28338  
    250250        psMetadataItem *item = NULL;
    251251        while ((item = psListGetAndIncrement(iter))) {
     252            psMetadataItem *new = psMetadataItemCopy(item);
    252253            // need to change the name and comment
    253             psFree (item->name);
    254             item->name = psStringCopy (field);
    255             psFree (item->comment);
    256             item->comment = psStringCopy (op);
    257             if (!psMetadataAddItem(where, item, PS_LIST_TAIL, PS_META_DUPLICATE_OK)) {
     254            psFree (new->name);
     255            new->name = psStringCopy (field);
     256            psFree (new->comment);
     257            new->comment = psStringCopy (op);
     258            if (!psMetadataAddItem(where, new, PS_LIST_TAIL, PS_META_DUPLICATE_OK)) {
    258259                psError(psErrorCodeLast(), false, "failed to add item %s", field);
    259260                psFree(where);
     
    261262            }
    262263        }
    263         psFree (iter);
     264        psFree(iter);
    264265    }
    265266    return true;
Note: See TracChangeset for help on using the changeset viewer.