IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 19, 2014, 4:05:27 PM (12 years ago)
Author:
eugene
Message:

merge changes from trunk

Location:
branches/eam_branches/ps2-tc3-20130727
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ps2-tc3-20130727

  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/camtool.c

    r36680 r37403  
    501501    PXOPT_LOOKUP_S16(quality, config->args, "-quality", false, false);
    502502    PXOPT_LOOKUP_S16(background_model, config->args, "-background_model", false, false);
     503    PXOPT_LOOKUP_S64(astrom_chips, config->args, "-astrom_chips", false, false);
     504
    503505   
    504506    PXOPT_LOOKUP_STR(ver_pslib, config->args, "-ver_pslib", false, false);
     
    692694        deteff_uq,
    693695        quality,
    694         background_model
     696        background_model,
     697        astrom_chips
    695698        );
    696699
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/camtoolConfig.c

    r36680 r37403  
    205205    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-deteff_inst_uq", 0, "define deteff_uq", NAN);
    206206    psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "-background_model", 0, "set background_model value", 0);
     207    psMetadataAddS64(addprocessedexpArgs, PS_LIST_TAIL, "-astrom_chips", 0, "chips with successful astrom", 0);
    207208
    208209    // -processedexp
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/disttool.c

    r36680 r37403  
    605605    PXOPT_COPY_TIME(config->args, where, "-time_stamp_begin", "distRun.time_stamp", ">=");
    606606    PXOPT_COPY_TIME(config->args, where, "-time_stamp_end", "distRun.time_stamp", "<=");
     607    PXOPT_COPY_S64(config->args, where, "-dist_id_min", "dist_id", ">=");
     608    PXOPT_COPY_S64(config->args, where, "-dist_id_max", "dist_id", "<=");
    607609
    608610    PXOPT_LOOKUP_BOOL(clean, config->args, "-clean", false);
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/disttoolConfig.c

    r36680 r37403  
    8585    psMetadataAddTime(updaterunArgs, PS_LIST_TAIL, "-time_stamp_begin", 0, "limit updates by time_stamp (>=)", NULL);
    8686    psMetadataAddTime(updaterunArgs, PS_LIST_TAIL, "-time_stamp_end", 0, "limit updates by time_stamp (<=)", NULL);
     87    psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-dist_id_min",  0, "limit updates by dist_id (>=)", 0);
     88    psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-dist_id_max",  0, "limit updates by dist_id (<=)", 0);
    8789    psMetadataAddBool(updaterunArgs, PS_LIST_TAIL,"-clean",     0, "limit updates to clean distRuns", false);
    8890    psMetadataAddBool(updaterunArgs, PS_LIST_TAIL,"-full",      0, "limit updates to not clean distRuns", false);
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/laptool.c

    r36680 r37403  
    2525static bool pendingrunMode(pxConfig *config);
    2626static bool updaterunMode(pxConfig *config);
     27static bool revertsassMode(pxConfig *config);
    2728
    2829// Exposure level
     
    6970    MODECASE(LAPTOOL_MODE_PENDINGRUN,    pendingrunMode);
    7071    MODECASE(LAPTOOL_MODE_UPDATERUN,     updaterunMode);
    71 
     72    MODECASE(LAPTOOL_MODE_REVERTSASS,    revertsassMode);
     73   
    7274    MODECASE(LAPTOOL_MODE_PENDINGEXP,    pendingexpMode);
    7375    MODECASE(LAPTOOL_MODE_EXPOSURES,     exposuresMode);
     
    695697}
    696698
     699static bool revertsassMode(pxConfig *config)
     700{
     701  PS_ASSERT_PTR_NON_NULL(config, false);
     702
     703  psMetadata *where = psMetadataAlloc();
     704  PXOPT_COPY_S64(config->args, where, "-lap_id", "lap_id", "==");
     705  PXOPT_COPY_S64(config->args, where, "-sass_id", "final_sass_id", "==");
     706  if (!psListLength(where->list)) {
     707    psFree(where);
     708    psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
     709    return false;
     710  }
     711
     712  psString query = pxDataGet("laptool_revertsass.sql");
     713  if (!query) {
     714    psError(PXTOOLS_ERR_SYS, false, "failed to retrieve SQL statement");
     715    return(false);
     716  }
     717  psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     718  psStringAppend(&query, "\n WHERE %s", whereClause);
     719  psFree(whereClause);
     720
     721  if (!psDBTransaction(config->dbh)) {
     722    psError(PS_ERR_UNKNOWN, false, "database error");
     723    return false;
     724  }
     725 
     726  if (!p_psDBRunQuery(config->dbh, query)) {
     727    psError(PS_ERR_UNKNOWN, false, "database error");
     728    psFree(query);
     729    return false;
     730  }
     731  psFree(query);
     732
     733  long numUpdated = psDBAffectedRows(config->dbh);
     734  if (numUpdated != 1) {
     735    psError(PS_ERR_UNKNOWN, false, "should have updated only one row. updated %ld", numUpdated);
     736    return false;
     737  }
     738
     739  if (!psDBCommit(config->dbh)) {
     740    psError(PS_ERR_UNKNOWN, false, "database error");
     741    return false;
     742  }
     743 
     744  return true;
     745}
    697746// Exposure level
    698747
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/laptool.h

    r35566 r37403  
    1919  LAPTOOL_MODE_EXPOSURES,
    2020  LAPTOOL_MODE_STACKS,
     21  LAPTOOL_MODE_REVERTSASS,
    2122  LAPTOOL_MODE_UPDATEEXP,
    2223  LAPTOOL_MODE_DIFFCHECK,
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/laptoolConfig.c

    r35568 r37403  
    117117  ADD_OPT(S64, updaterunArgs, "-set_final_sass_id",           "set final stack sass_id", 0);
    118118 
     119  // -revertsass
     120  psMetadata *revertsassArgs = psMetadataAlloc();
     121  ADD_OPT(S64, revertsassArgs, "-lap_id",                     "search by lap run id", 0);
     122  ADD_OPT(S64, revertsassArgs, "-sass_id",                    "sass id that is being removed", 0);
     123
    119124  // -pendingexp
    120125  psMetadata *pendingexpArgs = psMetadataAlloc();
     
    136141  ADD_OPT(Bool,stacksArgs, "-simple",                         "use the simple output format", false);
    137142  ADD_OPT(U64, stacksArgs, "-limit",                          "limit result set to N items", 0);
    138  
     143         
    139144  // -updateexp
    140145  psMetadata *updateexpArgs = psMetadataAlloc();
     
    227232  PXOPT_ADD_MODE("-listrun",                 "", LAPTOOL_MODE_PENDINGRUN,       listrunArgs);
    228233  PXOPT_ADD_MODE("-updaterun",               "", LAPTOOL_MODE_UPDATERUN,        updaterunArgs);
     234  PXOPT_ADD_MODE("-revertsass",              "mode to remove the sass_id", LAPTOOL_MODE_REVERTSASS,   revertsassArgs);
    229235  PXOPT_ADD_MODE("-pendingexp",              "", LAPTOOL_MODE_PENDINGEXP,       pendingexpArgs);
    230236  PXOPT_ADD_MODE("-exposures",               "", LAPTOOL_MODE_EXPOSURES,        exposuresArgs);
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/releasetool.c

    r36680 r37403  
    4444static bool updaterelexpMode(pxConfig *config);
    4545static bool listrelexpMode(pxConfig *config);
     46static bool deleterelexpMode(pxConfig *config);
    4647static bool definerelstackMode(pxConfig *config);
    4748static bool updaterelstackMode(pxConfig *config);
     49static bool setrelstackcalibratedfromskycalMode(pxConfig *config);
    4850static bool listrelstackMode(pxConfig *config);
     51static bool deleterelstackMode(pxConfig *config);
    4952static bool summaryMode(pxConfig *config);
    5053static bool definerelgroupMode(pxConfig *config);
     
    8184        MODECASE(RELEASETOOL_MODE_UPDATERELEXP,     updaterelexpMode);
    8285        MODECASE(RELEASETOOL_MODE_LISTRELEXP,       listrelexpMode);
     86        MODECASE(RELEASETOOL_MODE_DELETERELEXP,     deleterelexpMode);
    8387
    8488        MODECASE(RELEASETOOL_MODE_DEFINERELSTACK,   definerelstackMode);
    8589        MODECASE(RELEASETOOL_MODE_UPDATERELSTACK,   updaterelstackMode);
     90        MODECASE(RELEASETOOL_MODE_SETRELSTACKCALIBRATEDFROMSKYCAL, setrelstackcalibratedfromskycalMode);
    8691        MODECASE(RELEASETOOL_MODE_LISTRELSTACK,     listrelstackMode);
     92        MODECASE(RELEASETOOL_MODE_DELETERELSTACK,   deleterelstackMode);
    8793        MODECASE(RELEASETOOL_MODE_SUMMARY,          summaryMode);
    8894
     
    780786
    781787    if (priority_order) {
    782         psStringAppend(&query, "\nAND priority > 0 order by exp_id, priority DESC");
     788        psStringAppend(&query, "\nAND priority > 0 ORDER BY exp_id, priority DESC");
     789    } else {
     790        psStringAppend(&query, "\nORDER BY exp_id, relexp_id DESC");
    783791    }
    784792
     
    815823
    816824    psFree(output);
     825
     826    return true;
     827}
     828
     829static bool deleterelexpMode(pxConfig *config)
     830{
     831    PS_ASSERT_PTR_NON_NULL(config, false);
     832
     833    PXOPT_LOOKUP_S64(relexp_id, config->args,   "-relexp_id", false, false);
     834    // If relexp_id is supplied that is all that we need
     835    if (!relexp_id) {
     836        // Otherwise we need to identify the release ...
     837        PXOPT_LOOKUP_STR(release_name, config->args, "-release_name", false, false);
     838        PXOPT_LOOKUP_S32(rel_id, config->args,      "-rel_id", false, false);
     839
     840        if (!release_name && !rel_id) {
     841            psError(PXTOOLS_ERR_CONFIG, true, "at least one of -relexp_id, -release_name, or -rel_id is required\n");
     842            return false;
     843        }
     844        // ... and the exposure
     845        PXOPT_LOOKUP_STR(label, config->args,       "-label", false, false);
     846        PXOPT_LOOKUP_S64(cam_id, config->args,      "-cam_id", false, false);
     847        PXOPT_LOOKUP_S64(exp_id, config->args,      "-exp_id", false, false);
     848        PXOPT_LOOKUP_STR(exp_name, config->args,    "-exp_name", false, false);
     849        if (!label && !cam_id && !exp_id && !exp_name) {
     850            psError(PXTOOLS_ERR_CONFIG, true, "at least one of -label, -cam_id, -exp_id, -exp_name is required\n");
     851            return false;
     852        }
     853    }
     854
     855    psMetadata *where = psMetadataAlloc();
     856
     857    PXOPT_COPY_S32(config->args, where, "-relexp_id", "relExp.relexp_id", "==");
     858    PXOPT_COPY_STR(config->args, where, "-label",  "camRun.label", "==");
     859    PXOPT_COPY_S64(config->args, where, "-cam_id", "relExp.cam_id", "==");
     860    PXOPT_COPY_S64(config->args, where, "-exp_id", "relExp.exp_id", "==");
     861    PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "==");
     862
     863    PXOPT_COPY_S32(config->args, where, "-rel_id",  "relExp.rel_id", "==");
     864    PXOPT_COPY_STR(config->args, where, "-release_name", "ippRelease.release_name", "==");
     865
     866    psString query = pxDataGet("releasetool_deleterelexp.sql");
     867
     868    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     869    psStringAppend(&query, "\n    AND %s", whereClause);
     870    psFree(whereClause);
     871
     872    if (!p_psDBRunQuery(config->dbh, query)) {
     873        psError(PS_ERR_UNKNOWN, false, "database error");
     874        psFree(query);
     875        return false;
     876    }
     877
     878    psU64 affected = psDBAffectedRows(config->dbh);
     879    psLogMsg("releasetool", PS_LOG_INFO, "Deleted %" PRIu64 " relExp rows", affected);
     880
     881
     882    psFree(query);
    817883
    818884    return true;
     
    10261092    return false;
    10271093}
     1094static bool setrelstackcalibratedfromskycalMode(pxConfig *config)
     1095{
     1096    PS_ASSERT_PTR_NON_NULL(config, NULL);
     1097
     1098    psMetadata *where = psMetadataAlloc();
     1099
     1100    PXOPT_COPY_STR(config->args, where, "-skycal_label", "skycalRun.label", "==");
     1101    PXOPT_COPY_STR(config->args, where, "-skycal_data_group", "skycalRun.data_group", "LIKE");
     1102    PXOPT_COPY_S64(config->args, where, "-skycal_id",  "skycalRun.skycal_id", "==");
     1103    if (!psListLength(where->list)) {
     1104        psError(PXTOOLS_ERR_CONFIG, false, "at least one of -skycal_label, -skycal_data_group, or -skycal_id is required");
     1105        return false;
     1106    }
     1107
     1108    PXOPT_COPY_STR(config->args, where, "-tess_id",    "stackRun.tess_id", "==");
     1109    PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "==");
     1110    pxskycellAddWhere(config, where);
     1111
     1112    // insure that at least one of these is supplied to select the release
     1113    PXOPT_LOOKUP_S64(rel_id, config->args,      "-rel_id", false, false);
     1114    PXOPT_LOOKUP_STR(release_name, config->args, "-release_name", false, false);
     1115    if (!rel_id && !release_name) {
     1116        psError(PXTOOLS_ERR_CONFIG, true, "either -rel_id or -release_name is required");
     1117        return false;
     1118    }
     1119
     1120    // limit query to the target release. (Note: this will select nothing if release_name and rel_id don't match)
     1121    // note: we add these after above to insure that search args are supplied
     1122    PXOPT_COPY_STR(config->args, where, "-release_name", "ippRelease.release_name", "==");
     1123    PXOPT_COPY_S32(config->args, where, "-rel_id", "ippRelease.rel_id", "==");
     1124
     1125    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     1126    PXOPT_LOOKUP_BOOL(replace, config->args, "-replace", false);
     1127
     1128    psString query = pxDataGet("releasetool_setrelstackcalibratedfromskycal.sql");
     1129    if (!query) {
     1130        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1131        psFree(where);
     1132        return false;
     1133    }
     1134
     1135    if (replace) {
     1136        // don't cut on relStack.state
     1137        psStringAppend(&query, "\nWHERE ");;
     1138    } else {
     1139        // normal path only update rows in state processed
     1140        psStringAppend(&query, "\nWHERE relStack.state = 'processed'\nAND ");;
     1141    }
     1142       
     1143    // Add in the where conditions
     1144    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1145    psStringAppend(&query, "%s", whereClause);
     1146    psFree(whereClause);
     1147
     1148    if (limit) {
     1149        psString limitString = psDBGenerateLimitSQL(limit);
     1150        psStringAppend(&query, " %s", limitString);
     1151        psFree(limitString);
     1152    }
     1153
     1154    if (!p_psDBRunQuery(config->dbh, query)) {
     1155        psError(PS_ERR_UNKNOWN, false, "database error");
     1156        psFree(query);
     1157        return false;
     1158    }
     1159    psFree(query);
     1160
     1161    psU64 affected = psDBAffectedRows(config->dbh);
     1162    psLogMsg("releasetool", PS_LOG_INFO, "Updated %" PRIu64 " relStack rows", affected);
     1163
     1164    return true;
     1165}
     1166
     1167static bool deleterelstackMode(pxConfig *config)
     1168{
     1169    PS_ASSERT_PTR_NON_NULL(config, false);
     1170
     1171    PXOPT_LOOKUP_S64(relstack_id, config->args,   "-relstack_id", false, false);
     1172    // If relexp_id is supplied that is all that we need
     1173    if (!relstack_id) {
     1174        // Otherwise we need to identify the release ...
     1175        PXOPT_LOOKUP_STR(release_name, config->args, "-release_name", false, false);
     1176        PXOPT_LOOKUP_S32(rel_id, config->args,      "-rel_id", false, false);
     1177
     1178        if (!release_name && !rel_id) {
     1179            psError(PXTOOLS_ERR_CONFIG, true, "at least one of -relstack_id, -release_name, or -rel_id is required\n");
     1180            return false;
     1181        }
     1182        // ... and the Stack
     1183        PXOPT_LOOKUP_STR(label, config->args,       "-label", false, false);
     1184        PXOPT_LOOKUP_S64(stack_id, config->args,    "-stack_id", false, false);
     1185        if (!label && !stack_id) {
     1186            psError(PXTOOLS_ERR_CONFIG, true, "at least one of -label and  -stack_id is required\n");
     1187            return false;
     1188        }
     1189    }
     1190
     1191    psMetadata *where = psMetadataAlloc();
     1192
     1193    PXOPT_COPY_S32(config->args, where, "-relstack_id", "relStack.relstack_id", "==");
     1194    PXOPT_COPY_STR(config->args, where, "-label", "stackRun.label", "==");
     1195    PXOPT_COPY_S64(config->args, where, "-stack_id", "relStack.stack_id", "==");
     1196
     1197    PXOPT_COPY_S32(config->args, where, "-rel_id", "relStack.rel_id", "==");
     1198    PXOPT_COPY_STR(config->args, where, "-release_name", "ippRelease.release_name", "==");
     1199
     1200    psString query = pxDataGet("releasetool_deleterelstack.sql");
     1201
     1202    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1203    psStringAppend(&query, "\n    AND %s", whereClause);
     1204    psFree(whereClause);
     1205
     1206    if (!p_psDBRunQuery(config->dbh, query)) {
     1207        psError(PS_ERR_UNKNOWN, false, "database error");
     1208        psFree(query);
     1209        return false;
     1210    }
     1211
     1212    psU64 affected = psDBAffectedRows(config->dbh);
     1213    psLogMsg("releasetool", PS_LOG_INFO, "Deleted %" PRIu64 " relStack rows", affected);
     1214
     1215
     1216    psFree(query);
     1217
     1218    return true;
     1219}
    10281220
    10291221static bool listrelstackMode(pxConfig *config)
     
    10501242
    10511243    PXOPT_COPY_STR(config->args, where, "-surveyName",  "survey.surveyName", "LIKE");
    1052     PXOPT_COPY_S32(config->args, where, "-rel_id",      "relExp.rel_id", "==");
     1244    PXOPT_COPY_S32(config->args, where, "-rel_id",      "relStack.rel_id", "==");
    10531245    pxskycellAddWhere(config, where);
    10541246
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/releasetool.h

    r36680 r37403  
    3434    RELEASETOOL_MODE_TOCALIBEXP,
    3535    RELEASETOOL_MODE_LISTRELEXP,
     36    RELEASETOOL_MODE_DELETERELEXP,
    3637    RELEASETOOL_MODE_DEFINERELSTACK,
    3738    RELEASETOOL_MODE_UPDATERELSTACK,
     39    RELEASETOOL_MODE_SETRELSTACKCALIBRATEDFROMSKYCAL,
     40    RELEASETOOL_MODE_DELETERELSTACK,
    3841    RELEASETOOL_MODE_TOCALIBSTACK,
    3942    RELEASETOOL_MODE_LISTRELSTACK,
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/releasetoolConfig.c

    r36680 r37403  
    6767    psMetadataAddStr(definereleaseArgs, PS_LIST_TAIL, "-set_ubercal_file", 0,  "define ubercal file name", NULL);
    6868
    69     // -uptdaterelease
     69    // -updaterelease
    7070    psMetadata *updatereleaseArgs = psMetadataAlloc();
    7171
     
    183183    psMetadataAddBool(listrelexpArgs, PS_LIST_TAIL, "-simple",      0, "use the simple output format", false);
    184184
     185    // -deleterelexp
     186    psMetadata *deleterelexpArgs = psMetadataAlloc();
     187    psMetadataAddS64(deleterelexpArgs, PS_LIST_TAIL,  "-relexp_id", 0,   "select by released exposure ID", 0);
     188    psMetadataAddS64(deleterelexpArgs, PS_LIST_TAIL,  "-exp_id", 0,      "select by exposure ID", 0);
     189    psMetadataAddStr(deleterelexpArgs,  PS_LIST_TAIL, "-exp_name", 0,    "select by exposure name", NULL);
     190    psMetadataAddS32(deleterelexpArgs, PS_LIST_TAIL,  "-rel_id", 0,      "select by release ID", 0);
     191    psMetadataAddS32(deleterelexpArgs, PS_LIST_TAIL,  "-cam_id", 0,      "select by cam run ID", 0);
     192    psMetadataAddStr(deleterelexpArgs,  PS_LIST_TAIL, "-label", 0,       "select by camRun.label", NULL);
     193    psMetadataAddStr(deleterelexpArgs,  PS_LIST_TAIL, "-release_name", 0, "select by release name (LIKE comparision)", NULL);
     194
     195
    185196    // -definerelstack
    186197    psMetadata *definerelstackArgs = psMetadataAlloc();
     
    248259    psMetadataAddBool(listrelstackArgs, PS_LIST_TAIL, "-simple",      0, "use the simple output format", false);
    249260
     261    // -updaterelstack
     262    psMetadata *updaterelstackArgs = psMetadataAlloc();
     263
     264    psMetadata *calibraterelstackArgs = psMetadataAlloc();
     265
     266        // set the target release and collection of relStacks (one of these is required)
     267    psMetadataAddStr(calibraterelstackArgs,  PS_LIST_TAIL, "-release_name", 0, "define release name", NULL);
     268    psMetadataAddS32(calibraterelstackArgs, PS_LIST_TAIL,  "-rel_id", 0,      "define release ID", 0);
     269
     270        // select the processing
     271    psMetadataAddStr(calibraterelstackArgs,  PS_LIST_TAIL, "-skycal_label",  0, "select by skycalRun.label", NULL);
     272    psMetadataAddStr(calibraterelstackArgs,  PS_LIST_TAIL, "-skycal_data_group", 0,  "select by skycalRun.data_group", NULL);
     273    psMetadataAddS64(calibraterelstackArgs, PS_LIST_TAIL,  "-skycal_id", 0,      "select by skycalRun.skycal_id", 0);
     274
     275    psMetadataAddStr(calibraterelstackArgs,  PS_LIST_TAIL, "-tess_id", 0,  "select by tess_id", NULL);
     276    psMetadataAddStr(calibraterelstackArgs,  PS_LIST_TAIL, "-skycell_id", 0,  "select by skycell_id", NULL);
     277    pxskycellAddArguments(calibraterelstackArgs);
     278
     279    psMetadataAddBool(calibraterelstackArgs, PS_LIST_TAIL, "-replace",   0, "replace any existing calibrations", false);
     280    psMetadataAddU64(calibraterelstackArgs, PS_LIST_TAIL,  "-limit",   0, "limit result set to N items", 0);
     281
     282    // -deleterelstack
     283    psMetadata *deleterelstackArgs = psMetadataAlloc();
     284    psMetadataAddS64(deleterelstackArgs, PS_LIST_TAIL,  "-relstack_id", 0,   "select by released exposure ID", 0);
     285    psMetadataAddS64(deleterelstackArgs, PS_LIST_TAIL,  "-stack_id", 0,   "select by stack ID", 0);
     286//    psMetadataAddS64(deleterelstackArgs, PS_LIST_TAIL,  "-skycal_id", 0,   "select by skycal ID", 0);
     287    psMetadataAddStr(deleterelstackArgs,  PS_LIST_TAIL, "-release_name", 0, "select by release name (LIKE comparision)", NULL);
     288    psMetadataAddS32(deleterelstackArgs, PS_LIST_TAIL,  "-rel_id", 0,   "select by release ID", 0);
     289
     290    psMetadataAddStr(deleterelstackArgs,  PS_LIST_TAIL, "-label",  0,      "select by stackRun.label", NULL);
     291//    psMetadataAddStr(deleterelstackArgs,  PS_LIST_TAIL, "-data_group", 0,  "select by stackRun.data_group", NULL);
     292//    psMetadataAddStr(deleterelstackArgs,  PS_LIST_TAIL, "-skycal_label",  0, "select by skycalRun.label", NULL);
     293//    psMetadataAddStr(deleterelstackArgs,  PS_LIST_TAIL, "-skycal_data_group", 0,  "select by skycalRun.data_group", NULL);
     294
    250295    // -summary
    251296    psMetadata *summaryArgs = psMetadataAlloc();
     
    348393    PXOPT_ADD_MODE("-tocalibexp",       "list relExps pending calibration",  RELEASETOOL_MODE_TOCALIBEXP,  tocalibexpArgs);
    349394    PXOPT_ADD_MODE("-listrelexp",       "list released exposures",      RELEASETOOL_MODE_LISTRELEXP,    listrelexpArgs);
     395    PXOPT_ADD_MODE("-deleterelexp",     "delete a released exposure",   RELEASETOOL_MODE_DELETERELEXP,  deleterelexpArgs);
    350396
    351397    PXOPT_ADD_MODE("-definerelstack",     "define a released stack",    RELEASETOOL_MODE_DEFINERELSTACK,  definerelstackArgs);
    352398    PXOPT_ADD_MODE("-listrelstack",       "list released stacks",      RELEASETOOL_MODE_LISTRELSTACK,    listrelstackArgs);
     399    PXOPT_ADD_MODE("-updaterelstack",     "update parameters of released stacks",      RELEASETOOL_MODE_LISTRELSTACK,    updaterelstackArgs);
     400    PXOPT_ADD_MODE("-setrelstackcalibratedfromskycal", "update parameters of using skycalResults",      RELEASETOOL_MODE_SETRELSTACKCALIBRATEDFROMSKYCAL,    calibraterelstackArgs);
     401    PXOPT_ADD_MODE("-deleterelstack",     "update parameters of released stacks",      RELEASETOOL_MODE_DELETERELSTACK,  deleterelstackArgs);
     402
    353403    PXOPT_ADD_MODE("-summary",            "list stackSummaryes for released stacks", RELEASETOOL_MODE_SUMMARY,    summaryArgs);
    354404
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/remotetool.c

    r36680 r37403  
    2323
    2424// Update
     25static bool dropcomponentMode(pxConfig *config);
    2526static bool updaterunMode(pxConfig *config);
    2627static bool updatepollMode(pxConfig *config);
     
    4950    MODECASE(REMOTETOOL_MODE_LISTRUN,       listrunMode);
    5051    MODECASE(REMOTETOOL_MODE_LISTCOMPONENT, listcomponentMode);
     52    MODECASE(REMOTETOOL_MODE_DROPCOMPONENT, dropcomponentMode);
    5153    MODECASE(REMOTETOOL_MODE_UPDATERUN,     updaterunMode);
    5254    MODECASE(REMOTETOOL_MODE_UPDATEPOLL,    updatepollMode);
     
    9496
    9597  // Get a list of the things we can insert into a new component
     98  // CZW: these labels no longer need to be linked to the table, as I've split stageRun and remoteRun into sub-queries.
    9699  psString query = NULL;
     100  psString whereOption = psStringCopy("");
    97101  if (!strcmp(stage,"chip")) {
    98102    query = pxDataGet("remotetool_definebyquery_chip.sql");
     
    103107   
    104108    if (label) {
    105       psStringAppend(&query, " AND (chipRun.label = '%s')", label);
     109      psStringAppend(&whereOption, "\n AND (label = '%s')", label);
    106110    }
    107111  }
     
    114118   
    115119    if (label) {
    116       psStringAppend(&query, " AND (camRun.label = '%s')", label);
     120      psStringAppend(&whereOption, "\n AND (label = '%s')", label);
    117121    }
    118122  }   
     
    125129   
    126130    if (label) {
    127       psStringAppend(&query, " AND (warpRun.label = '%s')", label);
     131      // Because warp has to check to see if something other than the state is set correctly, I have to use this wonky way to pass the label in.
     132      //      psStringAppend(&query, " AND (warpRun.label = '%s')", label);
     133      psStringAppend(&whereOption, "\n AND (label = '%s')", label);
    128134    }
    129135  }   
     
    136142   
    137143    if (label) {
    138       psStringAppend(&query, " AND (stackRun.label = '%s')", label);
     144      psStringAppend(&whereOption, "\n AND (label = '%s')", label);
    139145    }
    140146  }   
     
    149155    psFree(limitString);
    150156  }
    151   if (!p_psDBRunQuery(config->dbh, query)) {
     157  if (!p_psDBRunQueryF(config->dbh, query,whereOption,whereOption)) { // This needs to be here twice because we need to restrict on label twice.
    152158    psError(PS_ERR_UNKNOWN, false, "database error");
    153159    psFree(query);
     
    310316// Update
    311317
     318static bool dropcomponentMode(pxConfig *config)
     319{
     320  // Assert that we have a unique component to operate on.
     321  PXOPT_LOOKUP_S64(remote_id,config->args, "-remote_id",true, false);
     322  psAssert(remote_id,"This must exist for this mode to be safe.");
     323  PXOPT_LOOKUP_S64(stage_id, config->args, "-stage_id", true, false);
     324  psAssert(stage_id,"This must exist for this mode to be safe.");
     325
     326  psString query = pxDataGet("remotetool_dropcomponent.sql");
     327  if (!query) {
     328    psError(PXTOOLS_ERR_SYS, false, "Failed to retreive SQL statement");
     329    return false;
     330  }
     331 
     332  if (!psDBTransaction(config->dbh)) {
     333    psError(PS_ERR_UNKNOWN, false, "database error");
     334    return false;
     335  }
     336
     337  if (!p_psDBRunQueryF(config->dbh, query, remote_id, stage_id)) {
     338    psError(PS_ERR_UNKNOWN, false, "Database error");
     339    psFree(query);
     340    return false;
     341  }
     342  psFree(query);
     343 
     344 
     345
     346  // point of no return
     347  if (!psDBCommit(config->dbh)) {
     348    psError(PS_ERR_UNKNOWN, false, "database error");
     349    return false;
     350  }
     351 
     352  return true;
     353}
     354
    312355static bool updaterunMode(pxConfig *config)
    313356{
    314357  PS_ASSERT_PTR_NON_NULL(config, false);
    315   // PXOPT_LOOKUP_S64(remote_id,  config->args, "-remote_id",    true, false);
    316  
     358  PXOPT_LOOKUP_S64(remote_id,  config->args, "-remote_id",    true, false);
     359  psAssert(remote_id,"This should have failed before this point.");
     360
    317361  psMetadata *where = psMetadataAlloc();
    318362  psMetadata *values = psMetadataAlloc();
     
    341385{
    342386  PS_ASSERT_PTR_NON_NULL(config, false);
    343   // PXOPT_LOOKUP_S64(remote_id,  config->args, "-remote_id",    true, false);
    344  
     387  PXOPT_LOOKUP_S64(remote_id,  config->args, "-remote_id",    true, false);
     388  psAssert(remote_id,"This should have failed before this point.");
     389
    345390  psMetadata *where = psMetadataAlloc();
    346391  // Wheres
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/remotetool.h

    r36680 r37403  
    1313  REMOTETOOL_MODE_LISTRUN,
    1414  REMOTETOOL_MODE_LISTCOMPONENT,
     15  REMOTETOOL_MODE_DROPCOMPONENT,
    1516  REMOTETOOL_MODE_UPDATERUN,
    1617  REMOTETOOL_MODE_UPDATEPOLL,
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/remotetoolConfig.c

    r36680 r37403  
    6464  ADD_OPT(S16, listcomponentArgs, "-limit",              "limit to number of runs to display", 0);
    6565  ADD_OPT(Bool, listcomponentArgs, "-simple",            "simple print format", false);
     66
     67  // -dropcomponent
     68  psMetadata *dropcomponentArgs = psMetadataAlloc();
     69  ADD_OPT(S64, dropcomponentArgs, "-remote_id",         "run to update", 0);
     70  ADD_OPT(S64, dropcomponentArgs, "-stage_id",          "stage_id to remote", 0);
     71 
    6672  // -updaterun
    6773  psMetadata *updaterunArgs = psMetadataAlloc();
     
    95101  PXOPT_ADD_MODE("-listrun",           "", REMOTETOOL_MODE_LISTRUN,        listrunArgs);
    96102  PXOPT_ADD_MODE("-listcomponent",     "", REMOTETOOL_MODE_LISTCOMPONENT,  listcomponentArgs);
     103  PXOPT_ADD_MODE("-dropcomponent",     "", REMOTETOOL_MODE_DROPCOMPONENT,  dropcomponentArgs);
    97104  PXOPT_ADD_MODE("-updaterun",         "", REMOTETOOL_MODE_UPDATERUN,      updaterunArgs);
    98105  PXOPT_ADD_MODE("-updatepoll",        "", REMOTETOOL_MODE_UPDATEPOLL,     updatepollArgs);
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/stacktool.c

    r36680 r37403  
    4141static bool sumskyfileMode(pxConfig *config);
    4242static bool sassskyfileMode(pxConfig *config);
     43static bool updatesassMode(pxConfig *config);
    4344static bool revertsumskyfileMode(pxConfig *config);
    4445static bool tosummaryMode(pxConfig *config);
     
    8283        MODECASE(STACKTOOL_MODE_ADDSUMSKYFILE,         addsumskyfileMode);
    8384        MODECASE(STACKTOOL_MODE_SUMSKYFILE,            sumskyfileMode);
    84         MODECASE(STACKTOOL_MODE_SASSSKYFILE,            sassskyfileMode);
     85        MODECASE(STACKTOOL_MODE_SASSSKYFILE,           sassskyfileMode);
     86        MODECASE(STACKTOOL_MODE_UPDATESASS,            updatesassMode);
    8587        MODECASE(STACKTOOL_MODE_REVERTSUMSKYFILE,      revertsumskyfileMode);
    8688        MODECASE(STACKTOOL_MODE_TOSUMMARY,             tosummaryMode);
     
    260262    // these are used to build the HAVING restriction
    261263    PXOPT_COPY_S32(config->args, having, "-min_num", "num_warp", ">=");
     264    PXOPT_COPY_S32(config->args, having, "-max_num", "num_warp", "<=");
     265   
    262266    PXOPT_LOOKUP_S32(min_num,     config->args, "-min_num",  false, false);
    263267    if (min_num < 2) {
     
    754758    PXOPT_COPY_STR(config->args, where, "-data_group", "stackRun.data_group", "==");
    755759    PXOPT_COPY_STR(config->args, where, "-state",     "stackRun.state",     "==");
    756     PXOPT_COPY_S64(config->args, where, "-sass_id",   "stackAssociationMap.sass_id",  "==");
     760
    757761    PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false);
     762    PXOPT_LOOKUP_S64(sass_id, config->args, "-sass_id", false, false);
     763
     764    if (sass_id) {
     765      PXOPT_COPY_S64(config->args, where, "-sass_id",   "stackAssociationMap.sass_id",  "==");
     766    }
     767   
    758768    if (!psListLength(where->list)) {
    759769        psFree(where);
     
    769779        PXOPT_COPY_S16(config->args, where, "-fault", "stackSumSkyfile.fault", "==");
    770780    }
    771 
     781    if (sass_id) {
     782      psStringAppend(&query, " JOIN stackAssociationMap USING(stack_id)");
     783    }
     784   
    772785    // pxUpdateRun gets parameters from config->args and updates
    773786    bool result = pxUpdateRun(config, where, &query, "stackRun", "stack_id", "stackSumSkyfile", true, false);
     
    12931306    PXOPT_COPY_STR(config->args, where, "-data_group", "stackAssociation.data_group", "LIKE");
    12941307
    1295 //  The following three selectors are incompatible with the sql so omit them
    1296 //    PXOPT_COPY_S64(config->args, where, "-warp_id", "warpRun.warp_id", "==");
    1297 //     PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "==");
    1298 //    PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "==");
    1299 
    13001308    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
    13011309
     
    13671375}
    13681376
     1377static bool updatesassMode(pxConfig *config)
     1378{
     1379  PS_ASSERT_PTR_NON_NULL(config, false);
     1380
     1381  psMetadata *where = psMetadataAlloc();
     1382  PXOPT_COPY_S64(config->args, where, "-sass_id", "sass_id", "==");
     1383  PXOPT_COPY_STR(config->args, where, "-data_group", "data_group", "==");
     1384  PXOPT_COPY_STR(config->args, where, "-projection_cell", "projection_cell", "==");
     1385  PXOPT_COPY_STR(config->args, where, "-tess_id", "tess_id", "==");
     1386  PXOPT_COPY_STR(config->args, where, "-filter", "filter", "==");
     1387  if (!psListLength(where->list)) {
     1388    psFree(where);
     1389    psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
     1390    return false;
     1391  }
     1392
     1393  psMetadata *values = psMetadataAlloc();
     1394  PXOPT_COPY_STR(config->args, values, "-set_data_group", "data_group", "==");
     1395  if (!psListLength(values->list)) {
     1396    psFree(values);
     1397    psError(PXTOOLS_ERR_CONFIG, false, "data_group to assign not found");
     1398    return false;
     1399  }
     1400
     1401  if (!psDBTransaction(config->dbh)) {
     1402    psError(PS_ERR_UNKNOWN, false, "database error");
     1403    return false;
     1404  }
     1405 
     1406  long rows = psDBUpdateRows(config->dbh, "stackAssociation", where, values);
     1407  psFree(values);
     1408  psFree(where);
     1409
     1410  if (rows != 1) {
     1411    psError(PS_ERR_UNKNOWN, false, "should have updated only one row. updated %ld", rows);
     1412    return false;
     1413  }
     1414
     1415  if (!psDBCommit(config->dbh)) {
     1416    psError(PS_ERR_UNKNOWN, false, "database error");
     1417    return false;
     1418  }
     1419
     1420  return true;
     1421}
    13691422
    13701423static bool revertsumskyfileMode(pxConfig *config)
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/stacktool.h

    r36680 r37403  
    3535    STACKTOOL_MODE_SUMSKYFILE,
    3636    STACKTOOL_MODE_SASSSKYFILE,
     37    STACKTOOL_MODE_UPDATESASS,
    3738    STACKTOOL_MODE_REVERTSUMSKYFILE,
    3839    STACKTOOL_MODE_TOSUMMARY,
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/stacktoolConfig.c

    r36680 r37403  
    9898    psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-random", 0, "use this number of random elements", 0);
    9999    psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-min_num", 0, "minimum number of inputs", 0);
     100    psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-max_num", 0, "maximum number of inputs", 0);
    100101    psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-min_new", 0, "minimum number of new inputs", 0);
    101102    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-min_frac", 0, "minumum fraction of new inputs", NAN);
     
    237238    psMetadataAddBool(sassskyfileArgs, PS_LIST_TAIL, "-all",  0,            "enable search without arguments", false);
    238239
     240    // -updatesass
     241    psMetadata *updatesassArgs = psMetadataAlloc();
     242    psMetadataAddS64(updatesassArgs, PS_LIST_TAIL, "-sass_id", 0,           "search by stack association id", 0);
     243    psMetadataAddStr(updatesassArgs, PS_LIST_TAIL, "-data_group", 0,        "search by data group", 0);
     244    psMetadataAddStr(updatesassArgs, PS_LIST_TAIL, "-projection_cell", 0,   "search by projection cell", 0);
     245    psMetadataAddStr(updatesassArgs, PS_LIST_TAIL, "-tess_id", 0,           "search by tess_id", 0);
     246    psMetadataAddStr(updatesassArgs, PS_LIST_TAIL, "-filter", 0,            "search by filter", 0);
     247
     248    psMetadataAddStr(updatesassArgs, PS_LIST_TAIL, "-set_data_group", 0,    "data_group to assign", 0);
     249
    239250    // -revertsumskyfile
    240251    psMetadata *revertsumskyfileArgs= psMetadataAlloc();
     
    347358    PXOPT_ADD_MODE("-donecleanup",           "show runs that have been cleaned",     STACKTOOL_MODE_DONECLEANUP,          donecleanupArgs);
    348359
    349     PXOPT_ADD_MODE("-sassskyfile",      "list results of stackAssociation", STACKTOOL_MODE_SASSSKYFILE,      sassskyfileArgs);
     360    PXOPT_ADD_MODE("-sassskyfile",          "list results of stackAssociation", STACKTOOL_MODE_SASSSKYFILE,      sassskyfileArgs);
     361    PXOPT_ADD_MODE("-updatesass",           "update data_group of stackAssociation", STACKTOOL_MODE_UPDATESASS,  updatesassArgs);
    350362    PXOPT_ADD_MODE("-tosummary",            "show runs that can be summarized", STACKTOOL_MODE_TOSUMMARY, tosummaryArgs);
    351363    PXOPT_ADD_MODE("-summary",              "show runs that have been summarized", STACKTOOL_MODE_SUMMARY, summaryArgs);
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/staticskytool.c

    r36680 r37403  
    10571057    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    10581058    PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false);
     1059    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
    10591060
    10601061    psString query = pxDataGet("staticskytool_defineskycalrun.sql");
     
    10841085    }
    10851086
     1087    if (limit) {
     1088        psString limitString = psDBGenerateLimitSQL(limit);
     1089        psStringAppend(&query, "\n%s", limitString);
     1090        psFree(limitString);
     1091    }
    10861092
    10871093    if (!p_psDBRunQueryF(config->dbh, query, labelHook)) {
     
    11711177    PXOPT_COPY_S64(config->args, where, "-sky_id",   "sky_id",   "==");
    11721178    PXOPT_COPY_S64(config->args, where, "-stack_id", "stack_id",   "==");
     1179    PXOPT_COPY_STR(config->args, where, "-skycell_id",  "stackRun.skycell_id",    "==");
    11731180    PXOPT_COPY_STR(config->args, where, "-label",   "skycalRun.label",    "==");
    11741181    PXOPT_COPY_STR(config->args, where, "-state",   "skycalRun.state",    "==");
  • branches/eam_branches/ps2-tc3-20130727/ippTools/src/staticskytoolConfig.c

    r36680 r37403  
    181181    psMetadataAddBool(defineskycalrunArgs, PS_LIST_TAIL, "-check_inputs",  0, "list inputs, do not modify database", false);
    182182    psMetadataAddBool(defineskycalrunArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);
     183    psMetadataAddU64(defineskycalrunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0);
    183184
    184185    // -updateskycalrun
     
    188189    psMetadataAddS64(updateskycalrunArgs, PS_LIST_TAIL, "-stack_id", 0,  "search by stack ID", 0);
    189190    psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-state", 0, "search by state", NULL);
     191    psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-skycell_id", 0, "search by skycell_id", 0);
    190192    psMetadataAddStr(updateskycalrunArgs, PS_LIST_TAIL, "-label", 0, "search by label", 0);
    191193    pxskycellAddArguments(updateskycalrunArgs);
Note: See TracChangeset for help on using the changeset viewer.