Changeset 24244 for branches/cnb_branches/cnb_branch_20090301/ippTools/src
- Timestamp:
- May 26, 2009, 1:59:32 PM (17 years ago)
- Location:
- branches/cnb_branches/cnb_branch_20090301
- Files:
-
- 48 edited
- 3 copied
-
. (modified) (1 prop)
-
ippTools/src (modified) (1 prop)
-
ippTools/src/Makefile.am (modified) (2 diffs)
-
ippTools/src/camtool.c (modified) (28 diffs)
-
ippTools/src/camtoolConfig.c (modified) (10 diffs)
-
ippTools/src/chiptool.c (modified) (17 diffs)
-
ippTools/src/chiptoolConfig.c (modified) (9 diffs)
-
ippTools/src/detselect.c (modified) (2 diffs)
-
ippTools/src/dettool.c (modified) (3 diffs)
-
ippTools/src/dettoolConfig.c (modified) (19 diffs)
-
ippTools/src/dettool_detrunsummary.c (modified) (9 diffs)
-
ippTools/src/dettool_normalizedexp.c (modified) (4 diffs)
-
ippTools/src/dettool_normalizedimfile.c (modified) (4 diffs)
-
ippTools/src/dettool_normalizedstat.c (modified) (3 diffs)
-
ippTools/src/dettool_processedexp.c (modified) (4 diffs)
-
ippTools/src/dettool_processedimfile.c (modified) (6 diffs)
-
ippTools/src/dettool_residexp.c (modified) (7 diffs)
-
ippTools/src/dettool_residimfile.c (modified) (8 diffs)
-
ippTools/src/dettool_stack.c (modified) (4 diffs)
-
ippTools/src/difftool.c (modified) (37 diffs)
-
ippTools/src/difftool.h (modified) (1 diff)
-
ippTools/src/difftoolConfig.c (modified) (14 diffs)
-
ippTools/src/disttool.c (modified) (15 diffs)
-
ippTools/src/disttool.h (modified) (1 diff)
-
ippTools/src/disttoolConfig.c (modified) (5 diffs)
-
ippTools/src/faketool.c (modified) (16 diffs)
-
ippTools/src/faketoolConfig.c (modified) (10 diffs)
-
ippTools/src/flatcorr.c (modified) (3 diffs)
-
ippTools/src/flatcorrConfig.c (modified) (1 diff)
-
ippTools/src/magicdstool.c (modified) (4 diffs)
-
ippTools/src/magicdstoolConfig.c (modified) (4 diffs)
-
ippTools/src/magictool.c (modified) (29 diffs)
-
ippTools/src/magictoolConfig.c (modified) (10 diffs)
-
ippTools/src/pxtools.c (modified) (2 diffs)
-
ippTools/src/pxtools.h (modified) (2 diffs)
-
ippTools/src/pxtoolsErrorCodes.dat (modified) (1 diff)
-
ippTools/src/pxtoolsErrorCodes.h.in (modified) (1 diff)
-
ippTools/src/pxwarp.c (modified) (1 diff)
-
ippTools/src/pxwarp.h (modified) (1 diff)
-
ippTools/src/pztool.c (modified) (8 diffs)
-
ippTools/src/pztoolConfig.c (modified) (9 diffs)
-
ippTools/src/receivetool.c (copied) (copied from trunk/ippTools/src/receivetool.c )
-
ippTools/src/receivetool.h (copied) (copied from trunk/ippTools/src/receivetool.h )
-
ippTools/src/receivetoolConfig.c (copied) (copied from trunk/ippTools/src/receivetoolConfig.c )
-
ippTools/src/regtool.c (modified) (14 diffs)
-
ippTools/src/regtoolConfig.c (modified) (6 diffs)
-
ippTools/src/stacktool.c (modified) (13 diffs)
-
ippTools/src/stacktoolConfig.c (modified) (6 diffs)
-
ippTools/src/warptool.c (modified) (32 diffs)
-
ippTools/src/warptool.h (modified) (1 diff)
-
ippTools/src/warptoolConfig.c (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/cnb_branches/cnb_branch_20090301
- Property svn:mergeinfo changed
-
branches/cnb_branches/cnb_branch_20090301/ippTools/src
- Property svn:ignore
-
old new 33 33 pstamptool 34 34 disttool 35 receivetool
-
- Property svn:ignore
-
branches/cnb_branches/cnb_branch_20090301/ippTools/src/Makefile.am
r23594 r24244 19 19 regtool \ 20 20 stacktool \ 21 warptool 21 warptool \ 22 receivetool 22 23 23 24 … … 212 213 pxinjectConfig.c 213 214 215 216 receivetool_CFLAGS = $(PSLIB_CFLAGS) $(PSMODULES_CFLAGS) $(IPPDB_CFLAGS) 217 receivetool_LDADD = $(PSLIB_LIBS) $(PSMODULES_LIBS) $(IPPDB_LIBS) libpxtools.la 218 receivetool_SOURCES = \ 219 receivetool.c \ 220 receivetoolConfig.c 221 214 222 clean-local: 215 223 -rm -f TAGS -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/camtool.c
r23594 r24244 109 109 psMetadata *where = psMetadataAlloc(); 110 110 pxcamGetSearchArgs (config, where); 111 PXOPT_COPY_STR(config->args, where, "-label", "chipRun.label","==");112 PXOPT_COPY_STR(config->args, where, "-reduction", "c hipRun.reduction", "==");113 114 if (!psListLength(where->list) 115 &&!psMetadataLookupBool(NULL, config->args, "-all")) {111 pxAddLabelSearchArgs (config, where, "-label", "camRun.label", "=="); 112 PXOPT_COPY_STR(config->args, where, "-reduction", "camRun.reduction", "=="); 113 114 if (!psListLength(where->list) && 115 !psMetadataLookupBool(NULL, config->args, "-all")) { 116 116 psFree(where); 117 117 psError(PXTOOLS_ERR_DATA, false, "search parameters are required"); … … 137 137 // use psDBGenerateWhereSQL because the SQL yields an intermediate table 138 138 if (where && psListLength(where->list)) { 139 psString whereClause = psDBGenerateWhere SQL(where, NULL);140 psStringAppend(&query, " %s", whereClause);139 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 140 psStringAppend(&query, " AND %s", whereClause); 141 141 psFree(whereClause); 142 142 } … … 175 175 // old values in place (i.e., passing the values through). 176 176 177 // loop over our list of chipRun rows177 // if end_stage is warp (or NULL), check for valid tess_id 178 178 for (long i = 0; i < psArrayLength(output); i++) { 179 179 psMetadata *md = output->data[i]; 180 180 181 chipRunRow *row = chipRunObjectFromMetadata(md); 181 bool status; 182 char *end_stage = psMetadataLookupStr(&status, md, "end_stage"); 183 if (end_stage && strcasecmp(end_stage, "warp")) continue; 184 185 char *raw_tess_id = psMetadataLookupStr(&status, md, "tess_id"); 186 if (raw_tess_id || tess_id) continue; 187 188 char *label = psMetadataLookupStr(&status, md, "label"); 189 psS64 exp_id = psMetadataLookupS64(&status, md, "exp_id"); 190 191 if (!status) { 192 psError(PS_ERR_UNKNOWN, false, "cannot queue analysis to WARP without a defined tess id: label: %s, exp_id %" PRId64, label, exp_id); 193 psFree(output); 194 return false; 195 } 196 } 197 198 // loop over our list of camRun rows 199 for (long i = 0; i < psArrayLength(output); i++) { 200 psMetadata *md = output->data[i]; 201 202 camRunRow *row = camRunObjectFromMetadata(md); 182 203 if (!row) { 183 psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into c hipRun");204 psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun"); 184 205 psFree(output); 185 206 return false; … … 247 268 248 269 if (state) { 249 // set c hipRun.state to state270 // set camRun.state to state 250 271 if (!pxcamRunSetStateByQuery(config, where, state)) { 251 272 psFree(where); … … 255 276 256 277 if (label) { 257 // set c hipRun.label to label278 // set camRun.label to label 258 279 if (!pxcamRunSetLabelByQuery(config, where, label)) { 259 280 psFree(where); … … 275 296 pxcamGetSearchArgs (config, where); 276 297 PXOPT_COPY_S64(config->args, where, "-cam_id", "camRun.cam_id", "=="); 277 PXOPT_COPY_STR(config->args, where, "-label","camRun.label", "==");298 pxAddLabelSearchArgs (config, where, "-label", "camRun.label", "=="); 278 299 PXOPT_COPY_STR(config->args, where, "-reduction", "camRun.reduction", "=="); 279 300 … … 289 310 // use psDBGenerateWhereSQL because the SQL yields an intermediate table 290 311 if (psListLength(where->list)) { 291 psString whereClause = psDBGenerateWhere SQL(where, NULL);292 psStringAppend(&query, " %s", whereClause);312 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 313 psStringAppend(&query, " AND %s", whereClause); 293 314 psFree(whereClause); 294 315 } … … 339 360 pxcamGetSearchArgs (config, where); 340 361 PXOPT_COPY_S64(config->args, where, "-cam_id", "camRun.cam_id", "=="); 341 PXOPT_COPY_STR(config->args, where, "-label","camRun.label", "==");362 pxAddLabelSearchArgs (config, where, "-label", "camRun.label", "=="); 342 363 PXOPT_COPY_STR(config->args, where, "-reduction", "camRun.reduction", "=="); 343 PXOPT_COPY_S64(config->args, where, "-chip_id", "chipRun.chip_id", "=="); 344 PXOPT_COPY_STR(config->args, where, "-class_id", "chipProcessedImfile.class_id", "=="); 345 346 // XXX is this used? PXOPT_COPY_STR(config->args, where, "-class", "class", "=="); 364 PXOPT_COPY_S64(config->args, where, "-chip_id", "camRun.chip_id", "=="); 365 PXOPT_COPY_STR(config->args, where, "-class_id", "camProcessedExp.class_id", "=="); 347 366 348 367 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); … … 356 375 // use psDBGenerateWhereSQL because the SQL yields an intermediate table 357 376 if (psListLength(where->list)) { 358 psString whereClause = psDBGenerateWhere SQL(where, NULL);359 psStringAppend(&query, " %s", whereClause);377 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 378 psStringAppend(&query, " AND %s", whereClause); 360 379 psFree(whereClause); 361 380 } … … 381 400 382 401 // negate simple so the default is true 383 if (!ippdbPrintMetadatas(stdout, output, "c hipProcessedImfile", !simple)) {402 if (!ippdbPrintMetadatas(stdout, output, "camProcessedExp", !simple)) { 384 403 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 385 404 psFree(output); … … 470 489 471 490 PXOPT_LOOKUP_STR(path_base, config->args, "-path_base", false, false); 472 PXOPT_LOOKUP_S16(code, config->args, "-code", false, false); 491 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 492 PXOPT_LOOKUP_S16(quality, config->args, "-quality", false, false); 473 493 474 494 // generate restrictions 475 495 psMetadata *where = psMetadataAlloc(); 476 PXOPT_COPY_S64(config->args, where, "-cam_id", "cam _id", "==");496 PXOPT_COPY_S64(config->args, where, "-cam_id", "camRun.cam_id", "=="); 477 497 478 498 psString query = pxDataGet("camtool_find_pendingexp.sql"); … … 484 504 // use psDBGenerateWhereSQL because the SQL yields an intermediate table 485 505 if (psListLength(where->list)) { 486 psString whereClaus = psDBGenerateWhere SQL(where, NULL);487 psStringAppend(&query, " %s", whereClaus);506 psString whereClaus = psDBGenerateWhereConditionSQL(where, NULL); 507 psStringAppend(&query, " AND %s", whereClaus); 488 508 psFree(whereClaus); 489 509 } … … 535 555 zpt_lq, 536 556 zpt_uq, 537 fwhm_major,538 fwhm_major_lq,539 fwhm_major_uq,540 fwhm_minor,541 fwhm_minor_lq,542 fwhm_minor_uq,543 544 iq_fwhm_major,545 iq_fwhm_major_err,546 iq_fwhm_minor,547 iq_fwhm_minor_err,557 fwhm_major, 558 fwhm_major_lq, 559 fwhm_major_uq, 560 fwhm_minor, 561 fwhm_minor_lq, 562 fwhm_minor_uq, 563 564 iq_fwhm_major, 565 iq_fwhm_major_err, 566 iq_fwhm_minor, 567 iq_fwhm_minor_err, 548 568 549 569 iq_m2, … … 578 598 n_astrom, 579 599 path_base, 580 code 600 fault, 601 quality 581 602 ); 582 603 … … 601 622 602 623 // NULL for end_stage means go as far as possible 603 // EAM : skip here if code!= 0624 // EAM : skip here if fault != 0 604 625 // Also, we can run fake even if tess_id is not defined 605 if ( code|| (pendingRow->end_stage && psStrcasestr(pendingRow->end_stage, "cam"))) {626 if (fault || (pendingRow->end_stage && psStrcasestr(pendingRow->end_stage, "cam"))) { 606 627 psFree(row); 607 628 psFree(pendingRow); … … 656 677 pxcamGetSearchArgs (config, where); 657 678 PXOPT_COPY_S64(config->args, where, "-cam_id", "camRun.cam_id", "=="); 658 PXOPT_COPY_STR(config->args, where, "-label","camRun.label", "==");679 pxAddLabelSearchArgs (config, where, "-label", "camRun.label", "=="); 659 680 PXOPT_COPY_STR(config->args, where, "-reduction", "camRun.reduction", "=="); 681 682 if (!psListLength(where->list) && 683 !psMetadataLookupBool(NULL, config->args, "-all")) { 684 psFree(where); 685 psError(PXTOOLS_ERR_DATA, false, "search parameters (or -all) are required"); 686 return false; 687 } 660 688 661 689 psString query = pxDataGet("camtool_find_processedexp.sql"); … … 669 697 psStringAppend(&query, " WHERE %s", whereClause); 670 698 psFree(whereClause); 699 } 700 701 // we either add AND (condition) or WHERE (condition): 702 if (where->list && faulted) { 703 // list only faulted rows 704 psStringAppend(&query, " %s", " AND camProcessedExp.fault != 0"); 705 } 706 if (where->list && !faulted) { 707 // don't list faulted rows 708 psStringAppend(&query, " %s", " AND camProcessedExp.fault = 0"); 709 } 710 if (!where->list && faulted) { 711 // list only faulted rows 712 psStringAppend(&query, " %s", " WHERE camProcessedExp.fault != 0"); 713 } 714 if (!where->list && !faulted) { 715 // don't list faulted rows 716 psStringAppend(&query, " %s", " WHERE camProcessedExp.fault = 0"); 671 717 } 672 718 psFree(where); 673 674 if (faulted) {675 // list only faulted rows676 psStringAppend(&query, " %s", "AND camProcessedExp.fault != 0");677 } else {678 // don't list faulted rows679 psStringAppend(&query, " %s", "AND camProcessedExp.fault = 0");680 }681 719 682 720 // order by cam_id so that the postage stamp parser can easliy find the 'latest' astrometry … … 730 768 PXOPT_COPY_STR(config->args, where, "-label", "camRun.label", "=="); 731 769 PXOPT_COPY_STR(config->args, where, "-reduction", "camRun.reduction", "=="); 732 PXOPT_COPY_S16(config->args, where, "- code","camProcessedExp.fault", "==");770 PXOPT_COPY_S16(config->args, where, "-fault", "camProcessedExp.fault", "=="); 733 771 734 772 if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) { … … 818 856 PS_ASSERT_PTR_NON_NULL(config, false); 819 857 820 PXOPT_LOOKUP_S16( code, config->args, "-code", true, false);858 PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false); 821 859 822 860 psMetadata *where = psMetadataAlloc(); … … 826 864 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 827 865 828 if (!pxSetFaultCode(config->dbh, "camProcessedExp", where, code)) {866 if (!pxSetFaultCode(config->dbh, "camProcessedExp", where, fault)) { 829 867 psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag"); 830 868 psFree (where); … … 915 953 916 954 psMetadata *where = psMetadataAlloc(); 917 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");955 pxAddLabelSearchArgs (config, where, "-label", "camRun.label", "=="); 918 956 919 957 psString query = pxDataGet("camtool_pendingcleanuprun.sql"); … … 980 1018 PXOPT_COPY_S64(config->args, where, "-cam_id", "cam_id", "=="); 981 1019 } 982 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");1020 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 983 1021 984 1022 psString query = pxDataGet("camtool_pendingcleanupexp.sql"); … … 1099 1137 char sqlFilename[80]; 1100 1138 } ExportTable; 1101 1139 1102 1140 int numExportTables = 2; 1103 1141 … … 1107 1145 PXOPT_LOOKUP_STR(outfile, config->args, "-outfile", true, false); 1108 1146 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1147 PXOPT_LOOKUP_BOOL(clean, config->args, "-clean", false); 1109 1148 1110 1149 FILE *f = fopen (outfile, "w"); … … 1155 1194 } 1156 1195 if (!psArrayLength(output)) { 1157 ps Trace("regtool", PS_LOG_INFO, "no rows found");1196 psError(PS_ERR_UNKNOWN, true, "no rows found"); 1158 1197 psFree(output); 1159 return true; 1198 return false; 1199 } 1200 1201 if (clean) { 1202 if (!strcmp(tables[i].tableName, "camRun")) { 1203 if (!pxSetStateCleaned("camRun", "state", output)) { 1204 psFree(output); 1205 psError(PS_ERR_UNKNOWN, false, "pxSetStateClean failed for table %s", tables[i].tableName); 1206 return false; 1207 } 1208 } 1160 1209 } 1161 1210 … … 1179 1228 1180 1229 PS_ASSERT_PTR_NON_NULL(config, NULL); 1181 1230 1182 1231 PXOPT_LOOKUP_STR(infile, config->args, "-infile", true, false); 1183 1232 … … 1190 1239 psAssert (item, "entry not in input?"); 1191 1240 psAssert (item->type == PS_DATA_METADATA_MULTI, "entry not multi?"); 1192 1241 1193 1242 psMetadataItem *entry = psListGet (item->data.list, 0); 1194 1243 assert (entry); … … 1199 1248 // fprintf (stdout, "---- cam run ----\n"); 1200 1249 // psMetadataPrint (stderr, entry->data.md, 1); 1201 1202 item = psMetadataLookup (input, "camProcessed Imfile");1250 1251 item = psMetadataLookup (input, "camProcessedExp"); 1203 1252 psAssert (item, "entry not in input?"); 1204 1253 psAssert (item->type == PS_DATA_METADATA_MULTI, "entry not multi?"); -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/camtoolConfig.c
r23594 r24244 52 52 psMetadata *definebyqueryArgs = psMetadataAlloc(); 53 53 pxcamSetSearchArgs(definebyqueryArgs); 54 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-label", 0, "search by chipRun label", NULL);54 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by chipRun label", NULL); 55 55 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-reduction", 0, "search by chipRun reduction class", NULL); 56 56 … … 82 82 pxcamSetSearchArgs(pendingexpArgs); 83 83 psMetadataAddS64(pendingexpArgs, PS_LIST_TAIL, "-cam_id", 0, "search by cam_id", 0); 84 psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-label", 0, "search by camRun label", NULL);84 psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by camRun label", NULL); 85 85 psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-reduction", 0, "search by camRun reduction class", NULL); 86 86 psMetadataAddU64(pendingexpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 91 91 pxcamSetSearchArgs(pendingimfileArgs); 92 92 psMetadataAddS64(pendingimfileArgs, PS_LIST_TAIL, "-cam_id", 0, "search by camtool ID", 0); 93 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-label", 0,"search by camRun label", NULL);93 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by camRun label", NULL); 94 94 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-reduction",0, "search by camRun reduction class", NULL); 95 95 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); … … 164 164 165 165 psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", NULL); 166 psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 166 psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 167 psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "-quality", 0, "set quality", 0); 167 168 psMetadataAddBool(addprocessedexpArgs, PS_LIST_TAIL, "-faulted", 0, "only return imfiles with a fault status set", false); 168 169 … … 171 172 pxcamSetSearchArgs(processedexpArgs); 172 173 psMetadataAddS64(processedexpArgs, PS_LIST_TAIL, "-cam_id", 0, "search by cam_id", 0); 173 psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-label", 0,"search by camRun label", NULL);174 psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by camRun label", NULL); 174 175 psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-reduction",0, "search by camRun reduction class", NULL); 175 176 176 psMetadataAddU64(processedexpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 177 psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 178 psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-faulted", 0, "only return imfiles with a fault status set", false); 177 psMetadataAddU64(processedexpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 178 psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-all", 0, "list everything without restriction", false); 179 psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 180 psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-faulted", 0, "only return imfiles with a fault status set", false); 179 181 180 182 // -revertprocessedexp … … 190 192 191 193 psMetadataAddBool(revertprocessedexpArgs, PS_LIST_TAIL, "-all", 0, "allow everything to be queued without search terms", false); 194 psMetadataAddS16(revertprocessedexpArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 192 195 193 196 // -updateprocessedexp … … 198 201 psMetadataAddStr(updateprocessedexpArgs, PS_LIST_TAIL, "-class", 0, "search by class", NULL); 199 202 psMetadataAddStr(updateprocessedexpArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 200 psMetadataAddS16(updateprocessedexpArgs, PS_LIST_TAIL, "- code", 0, "set fault code (required)", INT16_MAX);203 psMetadataAddS16(updateprocessedexpArgs, PS_LIST_TAIL, "-fault", 0, "set fault code (required)", INT16_MAX); 201 204 202 205 // -block … … 215 218 // XXX allow full search options? 216 219 psMetadata *pendingcleanuprunArgs = psMetadataAlloc(); 217 psMetadataAddStr(pendingcleanuprunArgs, PS_LIST_TAIL, "-label", 0,"list blocks for specified label", NULL);220 psMetadataAddStr(pendingcleanuprunArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "list blocks for specified label", NULL); 218 221 psMetadataAddBool(pendingcleanuprunArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 219 222 psMetadataAddU64(pendingcleanuprunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 222 225 // XXX allow full search options? 223 226 psMetadata *pendingcleanupexpArgs = psMetadataAlloc(); 224 psMetadataAddStr(pendingcleanupexpArgs, PS_LIST_TAIL, "-label", 0,"list blocks for specified label", NULL);227 psMetadataAddStr(pendingcleanupexpArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "list blocks for specified label", NULL); 225 228 psMetadataAddS64(pendingcleanupexpArgs, PS_LIST_TAIL, "-cam_id", 0, "search by camera ID", 0); 226 229 psMetadataAddStr(pendingcleanupexpArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exp_id", NULL); … … 239 242 psMetadataAddStr(exportrunArgs, PS_LIST_TAIL, "-outfile", 0, "export to this file (required)", NULL); 240 243 psMetadataAddU64(exportrunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 244 psMetadataAddBool(exportrunArgs, PS_LIST_TAIL, "-clean", 0, "export tables as cleaned", false); 241 245 242 246 // -importrun -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/chiptool.c
r23594 r24244 125 125 psMetadata *where = psMetadataAlloc(); 126 126 pxchipGetSearchArgs (config, where); // rawExp only 127 PXOPT_COPY_STR(config->args, where, "-label", "rawExp.label", "LIKE");127 pxAddLabelSearchArgs (config, where, "-label", "newExp.label", "LIKE"); 128 128 129 129 // psListLength(where->list) is at least 1 because exp_type defaults to "object" … … 198 198 } 199 199 200 // if end_stage is warp (or NULL), check for valid tess_id 201 for (long i = 0; i < psArrayLength(output); i++) { 202 psMetadata *md = output->data[i]; 203 204 bool status; 205 char *end_stage = psMetadataLookupStr(&status, md, "end_stage"); 206 if (end_stage && strcasecmp(end_stage, "warp")) continue; 207 208 char *raw_tess_id = psMetadataLookupStr(&status, md, "tess_id"); 209 if (raw_tess_id || tess_id) continue; 210 211 char *label = psMetadataLookupStr(&status, md, "label"); 212 psS64 exp_id = psMetadataLookupS64(&status, md, "exp_id"); 213 214 if (!status) { 215 psError(PS_ERR_UNKNOWN, false, "cannot queue analysis to WARP without a defined tess id: label: %s, exp_id %" PRId64, label, exp_id); 216 psFree(output); 217 return false; 218 } 219 } 220 221 222 # define GET_VALUE(PTYPE,CTYPE,VALUE,NAME) \ 223 PTYPE VALUE; \ 224 { bool status; \ 225 VALUE = psMetadataLookup##CTYPE(&status, md, NAME); \ 226 if (!status) { \ 227 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for %s", NAME); \ 228 psFree(output); \ 229 return false; \ 230 } } 231 200 232 // loop over our list of exp_ids 201 233 for (long i = 0; i < psArrayLength(output); i++) { 202 234 psMetadata *md = output->data[i]; 203 235 204 bool status; 205 psS64 exp_id = psMetadataLookupS64(&status, md, "exp_id"); 206 if (!status) { 207 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for exp_id"); 236 rawExpRow *row = rawExpObjectFromMetadata(md); 237 if (!row) { 238 psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into chipRun"); 208 239 psFree(output); 209 240 return false; 210 241 } 211 // 242 243 GET_VALUE (psS64, S64, exp_id, "exp_id"); 244 GET_VALUE (psString, Str, raw_workdir, "workdir"); 245 GET_VALUE (psString, Str, raw_label, "label"); 246 GET_VALUE (psString, Str, raw_reduction, "reduction"); 247 // GET_VALUE (psString, Str, raw_expgroup, "expgroup"); 248 GET_VALUE (psString, Str, raw_dvodb, "dvodb"); 249 GET_VALUE (psString, Str, raw_tess_id, "tess_id"); 250 GET_VALUE (psString, Str, raw_end_stage, "end_stage"); 251 252 if (!row->exp_id) { 253 psError(PS_ERR_UNKNOWN, false, "failed to find value for exp_id"); 254 psFree(output); 255 return false; 256 } 257 212 258 // queue the exp 213 if (!pxchipQueueByExpTag(config, exp_id, workdir, label, reduction, expgroup, dvodb, tess_id, end_stage)) { 259 if (!pxchipQueueByExpTag(config, 260 exp_id, 261 workdir ? workdir : raw_workdir, 262 label ? label : raw_label, 263 reduction ? reduction : raw_reduction, 264 // expgroup ? expgroup : raw_expgroup, 265 // XXX how does expgroup get defined? 266 expgroup, 267 dvodb ? dvodb : raw_dvodb, 268 tess_id ? tess_id : raw_tess_id, 269 end_stage ? end_stage : raw_end_stage 270 )) { 214 271 if (!psDBRollback(config->dbh)) { 215 272 psError(PS_ERR_UNKNOWN, false, "database error"); … … 239 296 pxchipGetSearchArgs (config, where); // rawExp, chipRun 240 297 PXOPT_COPY_S64(config->args, where, "-chip_id", "chipRun.chip_id", "=="); 298 // we only allow a single label to match (do not use pxAddLabelSearchArgs here) 241 299 PXOPT_COPY_STR(config->args, where, "-label", "chipRun.label", "=="); 242 300 PXOPT_COPY_STR(config->args, where, "-state", "chipRun.state", "=="); 243 301 244 if (!psListLength(where->list) 245 &&!psMetadataLookupBool(NULL, config->args, "-all")) {302 if (!psListLength(where->list) && 303 !psMetadataLookupBool(NULL, config->args, "-all")) { 246 304 psFree(where); 247 305 where = NULL; … … 291 349 pxchipGetSearchArgs (config, where); //chipRun, rawExp 292 350 PXOPT_COPY_S64(config->args, where, "-chip_id", "chipRun.chip_id", "=="); 293 PXOPT_COPY_STR(config->args, where, "-label", "chipRun.label", "==");351 pxAddLabelSearchArgs (config, where, "-label", "chipRun.label", "=="); 294 352 295 353 psString query = pxDataGet("chiptool_pendingimfile.sql"); … … 409 467 PXOPT_LOOKUP_F32(dtime_script, config->args, "-dtime_script", false, false); 410 468 PXOPT_LOOKUP_STR(hostname, config->args, "-hostname", false, false); 411 PXOPT_LOOKUP_F32(n_stars, config->args, "-n_stars", false, false);412 PXOPT_LOOKUP_F32(n_psfstars, config->args, "-n_psfstars", false, false);413 PXOPT_LOOKUP_F32(n_iqstars, config->args, "-n_iqstars", false, false);414 PXOPT_LOOKUP_F32(n_extended, config->args, "-n_extended", false, false);415 PXOPT_LOOKUP_F32(n_cr, config->args, "-n_cr", false, false);416 PXOPT_LOOKUP_STR(path_base, config->args, "-path_base", false, false);417 PXOPT_LOOKUP_BOOL(magicked, config->args, "-magicked", false);469 PXOPT_LOOKUP_F32(n_stars, config->args, "-n_stars", false, false); 470 PXOPT_LOOKUP_F32(n_psfstars, config->args, "-n_psfstars", false, false); 471 PXOPT_LOOKUP_F32(n_iqstars, config->args, "-n_iqstars", false, false); 472 PXOPT_LOOKUP_F32(n_extended, config->args, "-n_extended", false, false); 473 PXOPT_LOOKUP_F32(n_cr, config->args, "-n_cr", false, false); 474 PXOPT_LOOKUP_STR(path_base, config->args, "-path_base", false, false); 475 PXOPT_LOOKUP_BOOL(magicked, config->args, "-magicked", false); 418 476 419 477 // default values 420 PXOPT_LOOKUP_S16(code, config->args, "-code", false, false); 478 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 479 PXOPT_LOOKUP_S16(quality, config->args, "-quality", false, false); 421 480 422 481 if (!psDBTransaction(config->dbh)) { … … 449 508 fwhm_minor_uq, 450 509 451 iq_fwhm_major,452 iq_fwhm_major_err,453 iq_fwhm_minor,454 iq_fwhm_minor_err,455 456 iq_m2,457 iq_m2_err,458 iq_m2_lq,459 iq_m2_uq,460 461 iq_m2c,462 iq_m2c_err,463 iq_m2c_lq,464 iq_m2c_uq,465 466 iq_m2s,467 iq_m2s_err,468 iq_m2s_lq,469 iq_m2s_uq,470 471 iq_m3,472 iq_m3_err,473 iq_m3_lq,474 iq_m3_uq,475 476 iq_m4,477 iq_m4_err,478 iq_m4_lq,479 iq_m4_uq,510 iq_fwhm_major, 511 iq_fwhm_major_err, 512 iq_fwhm_minor, 513 iq_fwhm_minor_err, 514 515 iq_m2, 516 iq_m2_err, 517 iq_m2_lq, 518 iq_m2_uq, 519 520 iq_m2c, 521 iq_m2c_err, 522 iq_m2c_lq, 523 iq_m2c_uq, 524 525 iq_m2s, 526 iq_m2s_err, 527 iq_m2s_lq, 528 iq_m2s_uq, 529 530 iq_m3, 531 iq_m3_err, 532 iq_m3_lq, 533 iq_m3_uq, 534 535 iq_m4, 536 iq_m4_err, 537 iq_m4_lq, 538 iq_m4_uq, 480 539 481 540 dtime_detrend, … … 490 549 n_cr, 491 550 path_base, 492 code, 551 fault, 552 quality, 493 553 magicked 494 554 )) { … … 540 600 PXOPT_COPY_STR(config->args, where, "-class_id", "chipProcessedImfile.class_id", "=="); 541 601 PXOPT_COPY_STR(config->args, where, "-reduction", "chipRun.reduction", "=="); 542 PXOPT_COPY_STR(config->args, where, "-label", "chipRun.label", "LIKE");602 pxAddLabelSearchArgs (config, where, "-label", "chipRun.label", "LIKE"); 543 603 PXOPT_COPY_S32(config->args, where, "-magicked", "chipRun.magicked", "=="); 604 605 if (!psListLength(where->list) && 606 !psMetadataLookupBool(NULL, config->args, "-all")) { 607 psFree(where); 608 psError(PXTOOLS_ERR_DATA, false, "search parameters (or -all) are required"); 609 return false; 610 } 544 611 545 612 psString query = pxDataGet("chiptool_processedimfile.sql"); … … 609 676 PXOPT_COPY_S64(config->args, where, "-chip_id", "chipRun.chip_id", "=="); 610 677 PXOPT_COPY_STR(config->args, where, "-class_id", "chipProcessedImfile.class_id", "=="); 611 PXOPT_COPY_STR(config->args, where, "-label", "chipRun.label", "LIKE"); 678 // require a single label 679 PXOPT_COPY_STR(config->args, where, "-label", "chipRun.label", "=="); 612 680 PXOPT_COPY_STR(config->args, where, "-reduction", "chipRun.reduction", "=="); 613 PXOPT_COPY_S16(config->args, where, "- code", "chipProcessedImfile.fault", "==");681 PXOPT_COPY_S16(config->args, where, "-fault", "chipProcessedImfile.fault", "=="); 614 682 615 683 if (!psListLength(where->list) … … 652 720 PXOPT_COPY_S64(config->args, where, "-chip_id", "chip_id", "=="); 653 721 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 654 PXOPT_LOOKUP_S16( code, config->args, "-code", true, false);655 656 if (!pxSetFaultCode(config->dbh, "chipProcessedImfile", where, code)) {722 PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false); 723 724 if (!pxSetFaultCode(config->dbh, "chipProcessedImfile", where, fault)) { 657 725 psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag"); 658 726 return false; … … 835 903 836 904 psMetadata *where = psMetadataAlloc(); 837 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");905 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 838 906 839 907 psString query = pxDataGet("chiptool_pendingcleanuprun.sql"); … … 899 967 PXOPT_COPY_S64(config->args, where, "-chip_id", "chip_id", "=="); 900 968 } 901 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");969 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 902 970 903 971 psString query = pxDataGet("chiptool_pendingcleanupimfile.sql"); … … 1027 1095 1028 1096 psMetadata *where = psMetadataAlloc(); 1029 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");1097 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 1030 1098 PXOPT_COPY_STR(config->args, where, "-state", "state", "=="); 1031 1099 … … 1088 1156 1089 1157 psMetadata *where = psMetadataAlloc(); 1090 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");1158 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 1091 1159 1092 1160 // look for completed chipPendingExp … … 1273 1341 char sqlFilename[80]; 1274 1342 } ExportTable; 1275 1343 1276 1344 int numExportTables = 3; 1277 1345 1278 1346 PS_ASSERT_PTR_NON_NULL(config, NULL); 1279 1347 1280 PXOPT_LOOKUP_S64(d et_id, config->args, "-chip_id", true, false);1348 PXOPT_LOOKUP_S64(dummy, config->args, "-chip_id", true, false); 1281 1349 PXOPT_LOOKUP_STR(outfile, config->args, "-outfile", true, false); 1282 1350 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1351 PXOPT_LOOKUP_BOOL(clean, config->args, "-clean", false); 1352 1283 1353 1284 1354 FILE *f = fopen (outfile, "w"); … … 1331 1401 } 1332 1402 if (!psArrayLength(output)) { 1333 psTrace(" regtool", PS_LOG_INFO, "no rows found");1403 psTrace("chiptool", PS_LOG_INFO, "no rows found"); 1334 1404 psFree(output); 1335 return true; 1405 return false; 1406 } 1407 1408 if (clean) { 1409 bool success = true; 1410 if (!strcmp(tables[i].tableName, "chipRun")) { 1411 success = pxSetStateCleaned("chipRun", "state", output); 1412 } else if (!strcmp(tables[i].tableName, "chipProcessedImfile")) { 1413 success = pxSetStateCleaned("chipProcessedImfile", "data_state", output); 1414 } 1415 if (!success) { 1416 psFree(output); 1417 psError(PS_ERR_UNKNOWN, false, "pxSetStateClean failed for table %s", tables[i].tableName); 1418 return false; 1419 } 1336 1420 } 1337 1421 … … 1352 1436 bool importrunMode(pxConfig *config) 1353 1437 { 1354 unsigned int nFail; 1355 1356 int numImportTables = 2; 1357 1358 char tables[2] [80] = {"chipImfile", "chipProcessedImfile"}; 1359 1360 PS_ASSERT_PTR_NON_NULL(config, NULL); 1361 1362 PXOPT_LOOKUP_STR(infile, config->args, "-infile", true, false); 1363 1364 psMetadata *input = psMetadataConfigRead (NULL, &nFail, infile, false); 1365 1366 fprintf (stdout, "---- input ----\n"); 1367 psMetadataPrint (stderr, input, 1); 1368 1369 psMetadataItem *item = psMetadataLookup (input, "chipRun"); 1370 psAssert (item, "entry not in input?"); 1371 psAssert (item->type == PS_DATA_METADATA_MULTI, "entry not multi?"); 1372 1373 psMetadataItem *entry = psListGet (item->data.list, 0); 1374 assert (entry); 1375 assert (entry->type == PS_DATA_METADATA); 1376 chipRunRow *chipRun = chipRunObjectFromMetadata (entry->data.md); 1377 chipRunInsertObject (config->dbh, chipRun); 1378 1379 // fprintf (stdout, "---- chip run ----\n"); 1380 // psMetadataPrint (stderr, entry->data.md, 1); 1381 1382 for (int i = 0; i < numImportTables; i++) { 1383 psMetadataItem *item = psMetadataLookup (input, tables[i]); 1384 psAssert (item, "entry not in input?"); 1385 psAssert (item->type == PS_DATA_METADATA_MULTI, "entry not multi?"); 1386 1387 switch (i) { 1388 case 0: 1389 for (int i = 0; i < item->data.list->n; i++) { 1390 psMetadataItem *entry = psListGet (item->data.list, i); 1391 assert (entry); 1392 assert (entry->type == PS_DATA_METADATA); 1393 chipImfileRow *chipImfile = chipImfileObjectFromMetadata (entry->data.md); 1394 chipImfileInsertObject (config->dbh, chipImfile); 1395 1396 // fprintf (stdout, "---- row %d ----\n", i); 1397 // psMetadataPrint (stderr, entry->data.md, 1); 1398 } 1399 break; 1400 1401 case 1: 1402 for (int i = 0; i < item->data.list->n; i++) { 1403 psMetadataItem *entry = psListGet (item->data.list, i); 1404 assert (entry); 1405 assert (entry->type == PS_DATA_METADATA); 1406 chipProcessedImfileRow *chipProcessedImfile = chipProcessedImfileObjectFromMetadata (entry->data.md); 1407 chipProcessedImfileInsertObject (config->dbh, chipProcessedImfile); 1408 1409 // fprintf (stdout, "---- row %d ----\n", i); 1410 // psMetadataPrint (stderr, entry->data.md, 1); 1411 } 1412 break; 1413 } 1414 } 1415 1416 return true; 1417 } 1418 1419 1438 PS_ASSERT_PTR_NON_NULL(config, NULL); 1439 1440 PXOPT_LOOKUP_STR(infile, config->args, "-infile", true, false); 1441 unsigned int nFail = 0; // Number of failed lines 1442 psMetadata *input = psMetadataConfigRead(NULL, &nFail, infile, false); 1443 if (nFail) { 1444 psError(PS_ERR_IO, false, "%d failed lines in input", nFail); 1445 psFree(input); 1446 return false; 1447 } 1448 1449 psVector *identifiers = psVectorAllocEmpty(16, PS_TYPE_U64); // Identifiers inserted 1450 1451 if (!psDBTransaction(config->dbh)) { 1452 psError(PS_ERR_UNKNOWN, false, "database error"); 1453 return false; 1454 } 1455 1456 psMetadataIterator *iter = psMetadataIteratorAlloc(input, PS_LIST_HEAD, NULL); // Iterator 1457 psMetadataItem *item; // Item from iteration 1458 while ((item = psMetadataGetAndIncrement(iter))) { 1459 PXMIRROR_PRIMARY(item, "chipRun", chipRunRow, chipRunObjectFromMetadata, identifiers, chip_id, 1460 chipRunInsertObject, config->dbh, 1461 { psFree(iter); psFree(identifiers); psFree(input); }); 1462 1463 PXMIRROR_OTHER(item, "chipImfile", chipImfileRow, chipImfileObjectFromMetadata, identifiers, chip_id, 1464 chipImfileInsertObject, config->dbh, 1465 { psFree(iter); psFree(identifiers); psFree(input); }); 1466 1467 PXMIRROR_OTHER(item, "chipProcessedImfile", chipProcessedImfileRow, 1468 chipProcessedImfileObjectFromMetadata, identifiers, chip_id, 1469 chipProcessedImfileInsertObject, config->dbh, 1470 { psFree(iter); psFree(identifiers); psFree(input); }); 1471 } 1472 psFree(iter); 1473 psFree(input); 1474 1475 if (!psDBCommit(config->dbh)) { 1476 psError(PS_ERR_UNKNOWN, false, "database error"); 1477 return false; 1478 } 1479 1480 psLogMsg("chiptool", PS_LOG_INFO, "%ld chipRuns added", identifiers->n); 1481 psFree(identifiers); 1482 1483 return true; 1484 } -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/chiptoolConfig.c
r23594 r24244 47 47 psMetadata *definebyqueryArgs = psMetadataAlloc(); 48 48 pxchipSetSearchArgs (definebyqueryArgs); 49 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-label", 0, "search by rawExp label (LIKE comparison)", NULL);49 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by rawExp label (LIKE comparison)", NULL); 50 50 51 51 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-exp_type", PS_META_REPLACE, "search by exp_type", "object"); … … 75 75 psMetadata *pendingimfileArgs = psMetadataAlloc(); 76 76 psMetadataAddS64(pendingimfileArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip ID", 0); 77 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-label", 0, "search by label", 0);77 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label", 0); 78 78 pxchipSetSearchArgs(pendingimfileArgs); 79 79 psMetadataAddU64(pendingimfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 146 146 147 147 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", NULL); 148 psMetadataAddS16(addprocessedimfileArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 148 psMetadataAddS16(addprocessedimfileArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 149 psMetadataAddS16(addprocessedimfileArgs, PS_LIST_TAIL, "-quality", 0, "set quality", 0); 149 150 psMetadataAddBool(addprocessedimfileArgs, PS_LIST_TAIL, "-magicked", 0, "define magicked status", false); 150 151 151 152 // -processedimfile 152 153 psMetadata *processedimfileArgs = psMetadataAlloc(); 154 pxchipSetSearchArgs(processedimfileArgs); 153 155 psMetadataAddS64(processedimfileArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip ID", 0); 154 156 psMetadataAddS64(processedimfileArgs, PS_LIST_TAIL, "-chip_imfile_id", 0, "search by chip_file_id", 0); 155 157 psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 156 158 psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-reduction", 0, "search by reduction class", NULL); 157 psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-label", 0, "search by chipRun label (LIKE comparison)", NULL);159 psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by chipRun label (LIKE comparison)", NULL); 158 160 psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-magicked", 0, "search by magicked status", false); 159 p xchipSetSearchArgs(processedimfileArgs);160 psMetadataAdd U64(processedimfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0);161 psMetadataAddU64(processedimfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 162 psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-all", 0, "list everything without search terms", false); 161 163 psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-faulted", 0, "only return imfiles with a fault status set", false); 162 164 psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); … … 170 172 pxchipSetSearchArgs(revertprocessedimfileArgs); 171 173 psMetadataAddBool(revertprocessedimfileArgs, PS_LIST_TAIL, "-all", 0, "allow everything to be queued without search terms", false); 172 psMetadataAddS16(revertprocessedimfileArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);174 psMetadataAddS16(revertprocessedimfileArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 173 175 174 176 // -updateprocessedimfile … … 176 178 psMetadataAddS64(updateprocessedimfileArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip ID", 0); 177 179 psMetadataAddStr(updateprocessedimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 178 psMetadataAddS16(updateprocessedimfileArgs, PS_LIST_TAIL, "-code", 0, "set fault code (required)", 0); 179 180 // -advanceexp 181 psMetadata *advanceexpArgs = psMetadataAlloc(); 182 psMetadataAddS64(advanceexpArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip ID", 0); 183 psMetadataAddStr(advanceexpArgs, PS_LIST_TAIL, "-label", 0, "advance exposures for specified label", NULL); 184 psMetadataAddU64(advanceexpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 180 psMetadataAddS16(updateprocessedimfileArgs, PS_LIST_TAIL, "-fault", 0, "set fault code (required)", 0); 185 181 186 182 // -block … … 206 202 // -pendingcleanuprun 207 203 psMetadata *pendingcleanuprunArgs = psMetadataAlloc(); 208 psMetadataAddStr(pendingcleanuprunArgs, PS_LIST_TAIL, "-label", 0,"list blocks for specified label", NULL);204 psMetadataAddStr(pendingcleanuprunArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "list blocks for specified label", NULL); 209 205 psMetadataAddBool(pendingcleanuprunArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 210 206 psMetadataAddU64(pendingcleanuprunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 212 208 // -pendingcleanupimfile 213 209 psMetadata *pendingcleanupimfileArgs = psMetadataAlloc(); 214 psMetadataAddStr(pendingcleanupimfileArgs, PS_LIST_TAIL, "-label", 0,"list blocks for specified label", NULL);210 psMetadataAddStr(pendingcleanupimfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "list blocks for specified label", NULL); 215 211 psMetadataAddS64(pendingcleanupimfileArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip ID", 0); 216 212 psMetadataAddStr(pendingcleanupimfileArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exp_id", NULL); … … 226 222 // -run 227 223 psMetadata *runArgs = psMetadataAlloc(); 228 psMetadataAddStr(runArgs, PS_LIST_TAIL, "-label", 0,"search by label", NULL);224 psMetadataAddStr(runArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label", NULL); 229 225 psMetadataAddBool(runArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 230 226 psMetadataAddU64(runArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 231 227 psMetadataAddStr(runArgs, PS_LIST_TAIL, "-state", 0, "search by state (required)", NULL); 228 229 // -advanceexp 230 psMetadata *advanceexpArgs = psMetadataAlloc(); 231 psMetadataAddS64(advanceexpArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip ID", 0); 232 psMetadataAddStr(advanceexpArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "advance exposures for specified label", NULL); 233 psMetadataAddU64(advanceexpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 232 234 233 235 // -tocleanedimfile … … 251 253 psMetadataAddS64(exportrunArgs, PS_LIST_TAIL, "-chip_id", 0, "export this chip ID (required)", 0); 252 254 psMetadataAddStr(exportrunArgs, PS_LIST_TAIL, "-outfile", 0, "export to this file (required)", NULL); 255 psMetadataAddBool(exportrunArgs, PS_LIST_TAIL, "-clean", 0, "mark tables as cleaned", false); 253 256 psMetadataAddU64(exportrunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 254 257 -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/detselect.c
r18561 r24244 71 71 } 72 72 73 # define PXOPT_COPY_NULLTEST_F32(from, to, oldname, newname, comment) \ 74 { \ 75 bool status = false; \ 76 psF32 var = psMetadataLookupF32(&status, from, oldname); \ 77 if (!status) { \ 78 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for " oldname); \ 79 return false; \ 80 } \ 81 if (!isnan(var)) { \ 82 if (!psMetadataAddF32(to, PS_LIST_TAIL, newname, PS_META_DUPLICATE_OK, comment, var)) { \ 83 psError(PS_ERR_UNKNOWN, false, "failed to add item " newname); \ 84 psFree(to); \ 85 return false; \ 86 } \ 87 if (!psMetadataAddTime(to, PS_LIST_TAIL, newname, PS_META_DUPLICATE_OK, "==", NULL)) { \ 88 psError(PS_ERR_UNKNOWN, false, "failed to add NULL test " newname); \ 89 psFree(to); \ 90 return false; \ 91 } \ 92 } \ 93 } 94 73 95 static bool searchMode(pxConfig *config) 74 96 { … … 89 111 90 112 // airmass_min < airmass < airmass_max 91 PXOPT_COPY_ F32(config->args, where, "-airmass", "airmass_min", "<=");92 PXOPT_COPY_ F32(config->args, where, "-airmass", "airmass_max", ">=");113 PXOPT_COPY_NULLTEST_F32(config->args, where, "-airmass", "airmass_min", "<="); 114 PXOPT_COPY_NULLTEST_F32(config->args, where, "-airmass", "airmass_max", ">="); 93 115 94 116 // exp_time_min < exp_time < exp_time_max 95 PXOPT_COPY_ F32(config->args, where, "-exp_time", "exp_time_min", "<=");96 PXOPT_COPY_ F32(config->args, where, "-exp_time", "exp_time_max", ">=");117 PXOPT_COPY_NULLTEST_F32(config->args, where, "-exp_time", "exp_time_min", "<="); 118 PXOPT_COPY_NULLTEST_F32(config->args, where, "-exp_time", "exp_time_max", ">="); 97 119 98 120 // ccd_temp_min < ccd_temp < ccd_temp_max 99 PXOPT_COPY_ F32(config->args, where, "-ccd_temp", "ccd_temp_min", "<=");100 PXOPT_COPY_ F32(config->args, where, "-ccd_temp", "ccd_temp_max", ">=");121 PXOPT_COPY_NULLTEST_F32(config->args, where, "-ccd_temp", "ccd_temp_min", "<="); 122 PXOPT_COPY_NULLTEST_F32(config->args, where, "-ccd_temp", "ccd_temp_max", ">="); 101 123 102 124 PXOPT_COPY_F64(config->args, where, "-posang", "posang_min", "<="); -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/dettool.c
r23352 r24244 2034 2034 2035 2035 ExportTable tables [] = { 2036 {"detRun", "dettool_export_run.sql"}, 2036 2037 {"detInputExp", "dettool_export_input_exp.sql"}, 2037 2038 {"detNormalizedExp", "dettool_export_normalized_exp.sql"}, … … 2043 2044 {"detResidExp", "dettool_export_resid_exp.sql"}, 2044 2045 {"detResidImfile", "dettool_export_resid_imfile.sql"}, 2045 {"detRun", "dettool_export_run.sql"},2046 2046 {"detRunSummary", "dettool_export_run_summary.sql"}, 2047 2047 {"detStackedImfile", "dettool_export_stacked_imfile.sql"}, … … 2108 2108 2109 2109 char tables[11] [80] = {"detInputExp", "detNormalizedExp", 2110 "detNormalized StatImfile", "detProcessedExp", "detProcessedImfile",2111 "det RegisteredImfile", "detResidExp", "detResidImfile",2112 "det NormalizedImfile", "detRunSummary", "detStackedImfile"};2110 "detNormalizedImfile", "detNormalizedStatImfile", "detProcessedExp", 2111 "detProcessedImfile", "detRegisteredImfile", "detResidExp", 2112 "detResidImfile", "detRunSummary", "detStackedImfile"}; 2113 2113 2114 2114 PS_ASSERT_PTR_NON_NULL(config, NULL); -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/dettoolConfig.c
r23352 r24244 254 254 psMetadataAddS64(addprocessedimfileArgs, PS_LIST_TAIL, "-exp_id", 0, "define exp ID (required)", 0); 255 255 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-class_id", 0, "define class ID (required)", NULL); 256 psMetadataAddS16(addprocessedimfileArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);256 psMetadataAddS16(addprocessedimfileArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 257 257 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-uri", 0, "define URI", NULL); 258 258 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-recip", 0, "define recipe", NULL); … … 287 287 psMetadataAddS64(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure ID", 0); 288 288 psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 289 psMetadataAddS16(revertprocessedimfileArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);289 psMetadataAddS16(revertprocessedimfileArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 290 290 291 291 // -updateprocessedimfile … … 334 334 psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_5", 0, "define user statistic (5)", NAN); 335 335 psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", NULL); 336 psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);336 psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 337 337 338 338 // -proccessedexp … … 348 348 psMetadataAddS64(revertprocessedexpArgs, PS_LIST_TAIL, "-det_id", 0, "search by detrend ID (required)", 0); 349 349 psMetadataAddS64(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure ID", 0); 350 psMetadataAddS16(revertprocessedexpArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);350 psMetadataAddS16(revertprocessedexpArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 351 351 352 352 // -updateprocessedexp … … 380 380 psMetadataAddS32(addstackedArgs, PS_LIST_TAIL, "-iteration", 0, "define iteration number (required)", 0); 381 381 psMetadataAddStr(addstackedArgs, PS_LIST_TAIL, "-class_id", 0, "define class ID (required)", NULL); 382 psMetadataAddS16(addstackedArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);382 psMetadataAddS16(addstackedArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 383 383 psMetadataAddStr(addstackedArgs, PS_LIST_TAIL, "-uri", 0, "define URI", NULL); 384 384 psMetadataAddStr(addstackedArgs, PS_LIST_TAIL, "-recip", 0, "define recipe", NULL); … … 407 407 psMetadataAddS32(revertstackedArgs, PS_LIST_TAIL, "-iteration", 0, "search by iteration number", 0); 408 408 psMetadataAddStr(revertstackedArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 409 psMetadataAddS16(revertstackedArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);409 psMetadataAddS16(revertstackedArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 410 410 411 411 // -updatestacked … … 443 443 psMetadataAddStr(addnormstatArgs, PS_LIST_TAIL, "-class_id", 0, "define class ID (required)", NULL); 444 444 psMetadataAddF32(addnormstatArgs, PS_LIST_TAIL, "-norm", 0, "define normal value (required)", NAN); 445 psMetadataAddS16(addnormstatArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);445 psMetadataAddS16(addnormstatArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 446 446 447 447 // -normalizedstat … … 459 459 psMetadataAddS32(revertnormalizedstatArgs, PS_LIST_TAIL, "-iteration", 0, "search by iteration number", 0); 460 460 psMetadataAddStr(revertnormalizedstatArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 461 psMetadataAddS16(revertnormalizedstatArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);461 psMetadataAddS16(revertnormalizedstatArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 462 462 463 463 // -updatenormalizedstat … … 494 494 psMetadataAddS32(addnormalizedimfileArgs, PS_LIST_TAIL, "-iteration", 0, "define iteration number", 0); 495 495 psMetadataAddStr(addnormalizedimfileArgs, PS_LIST_TAIL, "-class_id", 0, "define class ID (required)", NULL); 496 psMetadataAddS16(addnormalizedimfileArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);496 psMetadataAddS16(addnormalizedimfileArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 497 497 psMetadataAddStr(addnormalizedimfileArgs, PS_LIST_TAIL, "-uri", 0, "define URI", NULL); 498 498 psMetadataAddF64(addnormalizedimfileArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); … … 521 521 psMetadataAddS32(revertnormalizedimfileArgs, PS_LIST_TAIL, "-iteration", 0, "search by iteration number", 0); 522 522 psMetadataAddStr(revertnormalizedimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 523 psMetadataAddS16(revertnormalizedimfileArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);523 psMetadataAddS16(revertnormalizedimfileArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 524 524 525 525 // -updatenormalizedimfile … … 555 555 psMetadataAddS64(addnormalizedexpArgs, PS_LIST_TAIL, "-det_id", 0, "define detrend ID (required)", 0); 556 556 psMetadataAddS32(addnormalizedexpArgs, PS_LIST_TAIL, "-iteration", 0, "define iteration number", 0); 557 psMetadataAddS16(addnormalizedexpArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);557 psMetadataAddS16(addnormalizedexpArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 558 558 psMetadataAddStr(addnormalizedexpArgs, PS_LIST_TAIL, "-recip", 0, "search for recipe", NULL); 559 559 psMetadataAddF64(addnormalizedexpArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); … … 580 580 psMetadataAddS64(revertnormalizedexpArgs, PS_LIST_TAIL, "-det_id", 0, "search by detrend ID (required)", 0); 581 581 psMetadataAddS32(revertnormalizedexpArgs, PS_LIST_TAIL, "-iteration", 0, "search by iteration number", 0); 582 psMetadataAddS16(revertnormalizedexpArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);582 psMetadataAddS16(revertnormalizedexpArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 583 583 584 584 // -updatenormalizedexp … … 616 616 psMetadataAddS64(addresidimfileArgs, PS_LIST_TAIL, "-exp_id", 0, "define detrend ID (required)", 0); 617 617 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-class_id", 0, "define class ID (required)", NULL); 618 psMetadataAddS16(addresidimfileArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);618 psMetadataAddS16(addresidimfileArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 619 619 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-uri", 0, "define resid file URI", NULL); 620 620 psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-recip", 0, "define recipe", NULL); … … 658 658 psMetadataAddS64(revertresidimfileArgs, PS_LIST_TAIL, "-exp_id", 0, "search by detrend ID", 0); 659 659 psMetadataAddStr(revertresidimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search for class ID", NULL); 660 psMetadataAddS16(revertresidimfileArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);660 psMetadataAddS16(revertresidimfileArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 661 661 662 662 // -updateresidimfile … … 696 696 psMetadataAddS32(addresidexpArgs, PS_LIST_TAIL, "-iteration", 0, "define iteration number", 0); 697 697 psMetadataAddS64(addresidexpArgs, PS_LIST_TAIL, "-exp_id", 0, "define detrend ID (required)", 0); 698 psMetadataAddS16(addresidexpArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);698 psMetadataAddS16(addresidexpArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 699 699 psMetadataAddStr(addresidexpArgs, PS_LIST_TAIL, "-recip", 0, "define recipe", NULL); 700 700 psMetadataAddF64(addresidexpArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); … … 734 734 psMetadataAddS32(revertresidexpArgs, PS_LIST_TAIL, "-iteration", 0, "search by iteration number", 0); 735 735 psMetadataAddS64(revertresidexpArgs, PS_LIST_TAIL, "-exp_id", 0, "search by detrend ID", 0); 736 psMetadataAddS16(revertresidexpArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);736 psMetadataAddS16(revertresidexpArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 737 737 738 738 // -updateresidexp … … 777 777 psMetadataAddF64(adddetrunsummaryArgs, PS_LIST_TAIL, "-bg_stdev", 0, "define exposure background stdev", NAN); 778 778 psMetadataAddF64(adddetrunsummaryArgs, PS_LIST_TAIL, "-bg_mean_stdev", 0, "define exposure background mean stdev", NAN); 779 psMetadataAddS16(adddetrunsummaryArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);779 psMetadataAddS16(adddetrunsummaryArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 780 780 psMetadataAddBool(adddetrunsummaryArgs, PS_LIST_TAIL, "-accept", 0, "declare that this detrun iteration is accepted as a master", false); 781 781 psMetadataAddBool(adddetrunsummaryArgs, PS_LIST_TAIL, "-again", 0, "start a new iteration of this detrend run", false); … … 794 794 psMetadataAddS64(revertdetrunsummaryArgs, PS_LIST_TAIL, "-det_id", 0, "search by detrend ID (required)", 0); 795 795 psMetadataAddS32(revertdetrunsummaryArgs, PS_LIST_TAIL, "-iteration", 0, "search by iteration number", 0); 796 psMetadataAddS16(revertdetrunsummaryArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);796 psMetadataAddS16(revertdetrunsummaryArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 797 797 798 798 // -updatedetrunsummary … … 886 886 PXOPT_ADD_MODE("-input", "", DETTOOL_MODE_INPUT, inputArgs); 887 887 888 PXOPT_ADD_MODE("-toprocessedimfile", "", DETTOOL_MODE_TOPROCESSEDIMFILE, toprocessedimfileArgs);889 PXOPT_ADD_MODE("-addprocessedimfile", "", DETTOOL_MODE_ADDPROCESSEDIMFILE, addprocessedimfileArgs);890 PXOPT_ADD_MODE("-processedimfile", "", DETTOOL_MODE_PROCESSEDIMFILE, processedimfileArgs);891 PXOPT_ADD_MODE("-revertprocessedimfile", "", DETTOOL_MODE_REVERTPROCESSEDIMFILE, revertprocessedimfileArgs);892 PXOPT_ADD_MODE("-updateprocessedimfile", "", DETTOOL_MODE_UPDATEPROCESSEDIMFILE, updateprocessedimfileArgs);888 PXOPT_ADD_MODE("-toprocessedimfile", "", DETTOOL_MODE_TOPROCESSEDIMFILE, toprocessedimfileArgs); 889 PXOPT_ADD_MODE("-addprocessedimfile", "", DETTOOL_MODE_ADDPROCESSEDIMFILE, addprocessedimfileArgs); 890 PXOPT_ADD_MODE("-processedimfile", "", DETTOOL_MODE_PROCESSEDIMFILE, processedimfileArgs); 891 PXOPT_ADD_MODE("-revertprocessedimfile", "", DETTOOL_MODE_REVERTPROCESSEDIMFILE, revertprocessedimfileArgs); 892 PXOPT_ADD_MODE("-updateprocessedimfile", "", DETTOOL_MODE_UPDATEPROCESSEDIMFILE, updateprocessedimfileArgs); 893 893 PXOPT_ADD_MODE("-pendingcleanup_processedimfile", "", DETTOOL_MODE_PENDINGCLEANUP_PROCESSEDIMFILE, pendingcleanup_processedimfileArgs); 894 894 PXOPT_ADD_MODE("-donecleanup_processedimfile", "", DETTOOL_MODE_DONECLEANUP_PROCESSEDIMFILE, donecleanup_processedimfileArgs); -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/dettool_detrunsummary.c
r21402 r24244 101 101 102 102 // default values 103 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);103 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 104 104 PXOPT_LOOKUP_BOOL(accept, config->args, "-accept", false); 105 105 … … 107 107 det_id, 108 108 iteration, 109 "full",109 "full", 110 110 bg, 111 111 bg_stdev, 112 112 bg_mean_stdev, 113 113 accept, 114 code114 fault 115 115 ); 116 116 } … … 120 120 { 121 121 PS_ASSERT_PTR_NON_NULL(config, false); 122 122 123 123 // build a query to search by det_id, iteration, exp_id 124 124 psMetadata *where = psMetadataAlloc(); … … 129 129 PXOPT_LOOKUP_BOOL(again, config->args, "-again", false); 130 130 131 // The values supplied as arguments on the command (eg, -bg) are parsed 132 // by mdToDetRunSummary below. 131 // The values supplied as arguments on the command (eg, -bg) are parsed 132 // by mdToDetRunSummary below. 133 133 // XXX why is there ever more than one? 134 134 … … 141 141 if (psListLength(where->list)) { 142 142 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 143 psStringAppend(&query, " WHERE %s", whereClause);144 psFree(whereClause);143 psStringAppend(&query, " WHERE %s", whereClause); 144 psFree(whereClause); 145 145 } 146 146 psFree(where); … … 199 199 psFree(output); 200 200 201 // XXX this logic does not deal with the case of - codebeing set202 // XXX it should be an error for -again and - codeto both be set201 // XXX this logic does not deal with the case of -fault being set 202 // XXX it should be an error for -again and -fault to both be set 203 203 if (again) { 204 204 if (!startNewIteration(config, det_id)) { … … 306 306 PXOPT_COPY_S64(config->args, where, "-det_id", "det_id", "=="); 307 307 PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "=="); 308 PXOPT_COPY_STR(config->args, where, "- code", "fault", "==");308 PXOPT_COPY_STR(config->args, where, "-fault", "fault", "=="); 309 309 310 310 psString query = pxDataGet("dettool_revertdetrunsummary.sql"); … … 340 340 { 341 341 PS_ASSERT_PTR_NON_NULL(config, false); 342 342 343 343 PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required 344 344 PXOPT_LOOKUP_BOOL(accept, config->args, "-accept", false); … … 355 355 } 356 356 357 char *query = "UPDATE detRunSummary SET accept = %d WHERE det_id = %"PRId64; 357 char *query = "UPDATE detRunSummary SET accept = %d WHERE det_id = %"PRId64; 358 358 if (!p_psDBRunQueryF(config->dbh, query, accept, det_id)) { 359 359 psError(PS_ERR_UNKNOWN, false, "database error"); -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/dettool_normalizedexp.c
r19092 r24244 72 72 { 73 73 PS_ASSERT_PTR_NON_NULL(config, false); 74 74 75 75 PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required 76 76 PXOPT_LOOKUP_S32(iteration, config->args, "-iteration", false, false); 77 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);78 PXOPT_LOOKUP_STR(recipe, config->args, "-recip", ( code == 0), false); // Required if code== 077 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 78 PXOPT_LOOKUP_STR(recipe, config->args, "-recip", (fault == 0), false); // Required if fault == 0 79 79 PXOPT_LOOKUP_F64(bg, config->args, "-bg", false, false); 80 80 PXOPT_LOOKUP_F64(bg_stdev, config->args, "-bg_stdev", false, false); … … 117 117 // insert the new row into the detProcessedImfile table 118 118 if (!detNormalizedExpInsert( 119 config->dbh,120 det_id,121 iteration,122 recipe,123 bg,124 bg_stdev,125 bg_mean_stdev,126 user_1,127 user_2,128 user_3,129 user_4,130 user_5,131 path_base,132 "full",133 code 134 )) {119 config->dbh, 120 det_id, 121 iteration, 122 recipe, 123 bg, 124 bg_stdev, 125 bg_mean_stdev, 126 user_1, 127 user_2, 128 user_3, 129 user_4, 130 user_5, 131 path_base, 132 "full", 133 fault 134 )) { 135 135 psError(PS_ERR_UNKNOWN, false, "database error"); 136 136 return false; … … 221 221 PXOPT_COPY_S64(config->args, where, "-det_id", "det_id", "=="); 222 222 PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "=="); 223 PXOPT_COPY_S16(config->args, where, "- code", "fault", "==");223 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 224 224 225 225 psString query = pxDataGet("dettool_revertnormalizedexp.sql"); … … 260 260 261 261 if (!setNormExpDataState(config, det_id, iteration, data_state)) { 262 return false;262 return false; 263 263 } 264 264 return true; -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/dettool_normalizedimfile.c
r19092 r24244 80 80 PXOPT_LOOKUP_STR(class_id, config->args, "-class_id", true, false); 81 81 82 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);83 84 // Required if code== 085 PXOPT_LOOKUP_STR(uri, config->args, "-uri", ( code== 0), false);82 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 83 84 // Required if fault == 0 85 PXOPT_LOOKUP_STR(uri, config->args, "-uri", (fault == 0), false); 86 86 87 87 // optional … … 97 97 98 98 if (!detNormalizedImfileInsert( 99 config->dbh,100 det_id,101 iteration,102 class_id,103 uri,104 bg,105 bg_stdev,106 bg_mean_stdev,107 user_1,108 user_2,109 user_3,110 user_4,111 user_5,112 path_base,113 "full",114 code 115 )) {99 config->dbh, 100 det_id, 101 iteration, 102 class_id, 103 uri, 104 bg, 105 bg_stdev, 106 bg_mean_stdev, 107 user_1, 108 user_2, 109 user_3, 110 user_4, 111 user_5, 112 path_base, 113 "full", 114 fault 115 )) { 116 116 psError(PS_ERR_UNKNOWN, false, "database error"); 117 117 return false; … … 201 201 PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "=="); 202 202 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 203 PXOPT_COPY_S16(config->args, where, "- code", "fault", "==");203 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 204 204 205 205 psString query = pxDataGet("dettool_revertnormalizedimfile.sql"); … … 241 241 242 242 if (!setNormImfileDataState(config, det_id, iteration, class_id, data_state)) { 243 return false;243 return false; 244 244 } 245 245 return true; -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/dettool_normalizedstat.c
r19092 r24244 83 83 // default 84 84 PXOPT_LOOKUP_S32(iteration, config->args, "-iteration", false, false); 85 PXOPT_LOOKUP_S16(code, config->args, "- code", false, false);85 PXOPT_LOOKUP_S16(code, config->args, "-fault", false, false); 86 86 87 87 detNormalizedStatImfileRow *row = detNormalizedStatImfileRowAlloc 88 (det_id,89 iteration,90 class_id,91 norm,92 "full",93 code);94 88 (det_id, 89 iteration, 90 class_id, 91 norm, 92 "full", 93 code); 94 95 95 if (!detNormalizedStatImfileInsertObject(config->dbh, row)) { 96 psError(PS_ERR_UNKNOWN, false, "database error");97 return false;96 psError(PS_ERR_UNKNOWN, false, "database error"); 97 return false; 98 98 } 99 99 … … 181 181 PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "=="); 182 182 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 183 PXOPT_COPY_S16(config->args, where, "- code", "fault", "==");183 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 184 184 185 185 psString query = pxDataGet("dettool_revertnormalizedstat.sql"); … … 221 221 222 222 if (!setNormStatImfileDataState(config, det_id, iteration, class_id, data_state)) { 223 return false;223 return false; 224 224 } 225 225 return true; -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/dettool_processedexp.c
r21402 r24244 80 80 81 81 // default values 82 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);83 84 // Required if code== 085 PXOPT_LOOKUP_STR(recipe, config->args, "-recip", ( code== 0), false);82 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 83 84 // Required if fault == 0 85 PXOPT_LOOKUP_STR(recipe, config->args, "-recip", (fault == 0), false); 86 86 87 87 // optional … … 141 141 user_5, 142 142 path_base, 143 "full",144 code143 "full", 144 fault 145 145 ); 146 146 … … 231 231 PXOPT_COPY_S64(config->args, where, "-det_id", "det_id", "=="); 232 232 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 233 PXOPT_COPY_S16(config->args, where, "- code", "fault", "==");233 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 234 234 235 235 psString query = pxDataGet("dettool_revertprocessedexp.sql"); … … 269 269 PXOPT_LOOKUP_STR(data_state, config->args, "-data_state", true, false); 270 270 if (!setProcessedExpDataState(config, det_id, exp_id, data_state)) { 271 return false;271 return false; 272 272 } 273 273 return true; -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/dettool_processedimfile.c
r23352 r24244 92 92 93 93 // default values 94 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);95 96 // Required if code== 097 PXOPT_LOOKUP_STR(uri, config->args, "-uri", ( code== 0), false);98 PXOPT_LOOKUP_STR(recipe, config->args, "-recip", ( code== 0), false);94 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 95 96 // Required if fault == 0 97 PXOPT_LOOKUP_STR(uri, config->args, "-uri", (fault == 0), false); 98 PXOPT_LOOKUP_STR(recipe, config->args, "-recip", (fault == 0), false); 99 99 100 100 // optional … … 144 144 user_5, 145 145 path_base, 146 "full",147 code146 "full", 147 fault 148 148 ); 149 149 psFree(rawImfiles); … … 190 190 psStringAppend(&query, " %s", whereClause); 191 191 psFree(whereClause); 192 hasWhere = true;192 hasWhere = true; 193 193 } 194 194 psFree (where); … … 196 196 // restrict search to included imfiles 197 197 if (included) { 198 if (hasWhere) {199 psStringAppend(&query, " AND detInputExp.include = 1");200 } else {201 psStringAppend(&query, " WHERE detInputExp.include = 1");202 }203 hasWhere = true;198 if (hasWhere) { 199 psStringAppend(&query, " AND detInputExp.include = 1"); 200 } else { 201 psStringAppend(&query, " WHERE detInputExp.include = 1"); 202 } 203 hasWhere = true; 204 204 } 205 205 206 206 if (hasWhere) { 207 psStringAppend(&query, " AND");207 psStringAppend(&query, " AND"); 208 208 } else { 209 psStringAppend(&query, " WHERE");209 psStringAppend(&query, " WHERE"); 210 210 } 211 211 212 212 if (faulted) { 213 213 // list only faulted rows 214 psStringAppend(&query, " %s", " detProcessedImfile.fault != 0");214 psStringAppend(&query, " %s", " detProcessedImfile.fault != 0"); 215 215 } else { 216 216 // don't list faulted rows … … 263 263 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 264 264 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 265 PXOPT_COPY_S16(config->args, where, "- code", "fault", "==");265 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 266 266 267 267 psString query = pxDataGet("dettool_revertprocessedimfile.sql"); … … 303 303 304 304 if (!setProcessedImfileDataState(config, det_id, exp_id, class_id, data_state)) { 305 return false;305 return false; 306 306 } 307 307 return true; -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/dettool_residexp.c
r19092 r24244 95 95 PXOPT_LOOKUP_S32(iteration, config->args, "-iteration", false, false); 96 96 PXOPT_LOOKUP_S64(exp_id, config->args, "-exp_id", true, false); // required 97 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);98 PXOPT_LOOKUP_STR(recipe, config->args, "-recip", ( code == 0), false); // Required if code== 097 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 98 PXOPT_LOOKUP_STR(recipe, config->args, "-recip", (fault == 0), false); // Required if fault == 0 99 99 PXOPT_LOOKUP_F64(bg, config->args, "-bg", false, false); 100 100 PXOPT_LOOKUP_F64(bg_stdev, config->args, "-bg_stdev", false, false); … … 124 124 125 125 if (psListLength(where->list)) { 126 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);127 psStringAppend(&query, " WHERE %s", whereClause);128 psFree(whereClause);126 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 127 psStringAppend(&query, " WHERE %s", whereClause); 128 psFree(whereClause); 129 129 } 130 130 psFree(where); … … 151 151 152 152 if (!detResidExpInsert( 153 config->dbh,153 config->dbh, 154 154 det_id, 155 155 iteration, … … 174 174 user_5, 175 175 path_base, 176 "full",176 "full", 177 177 !reject, 178 code178 fault 179 179 )) { 180 180 psError(PS_ERR_UNKNOWN, false, "database error"); … … 225 225 if (reject) { 226 226 psStringAppend(&query, " %s", "AND detResidExp.accept != 0"); 227 } 227 } 228 228 229 229 // treat limit == 0 as "no limit" … … 273 273 PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "=="); 274 274 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 275 PXOPT_COPY_S16(config->args, where, "- code", "fault", "==");275 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 276 276 277 277 psString query = pxDataGet("dettool_revertresidexp.sql"); … … 330 330 PXOPT_LOOKUP_STR(data_state, config->args, "-data_state", false, false); 331 331 if (data_state) { 332 if (!isValidDataState (data_state)) return false;332 if (!isValidDataState (data_state)) return false; 333 333 } 334 334 -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/dettool_residimfile.c
r23352 r24244 75 75 PS_ASSERT_PTR_NON_NULL(config, false); 76 76 77 77 78 78 PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required 79 79 PXOPT_LOOKUP_S32(iteration, config->args, "-iteration", false, false); … … 84 84 PXOPT_LOOKUP_S64(exp_id, config->args, "-exp_id", true, false); // required 85 85 PXOPT_LOOKUP_STR(class_id, config->args, "-class_id", true, false); // required 86 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);87 PXOPT_LOOKUP_STR(uri, config->args, "-uri", ( code == 0), false); // Required if code== 088 PXOPT_LOOKUP_STR(recipe, config->args, "-recip", ( code == 0), false); // Required if code== 086 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 87 PXOPT_LOOKUP_STR(uri, config->args, "-uri", (fault == 0), false); // Required if fault == 0 88 PXOPT_LOOKUP_STR(recipe, config->args, "-recip", (fault == 0), false); // Required if fault == 0 89 89 PXOPT_LOOKUP_F64(bg, config->args, "-bg", false, false); 90 90 PXOPT_LOOKUP_F64(bg_stdev, config->args, "-bg_stdev", false, false); … … 107 107 108 108 if (!detResidImfileInsert( 109 config->dbh,109 config->dbh, 110 110 det_id, 111 111 iteration, … … 134 134 user_5, 135 135 path_base, 136 "full",137 code136 "full", 137 fault 138 138 )) { 139 139 psError(PS_ERR_UNKNOWN, false, "database error"); … … 174 174 psStringAppend(&query, " %s", whereClause); 175 175 psFree(whereClause); 176 hasWhere = true;176 hasWhere = true; 177 177 } 178 178 psFree(where); … … 180 180 // restrict search to included imfiles 181 181 if (included) { 182 if (hasWhere) {183 psStringAppend(&query, " AND detInputExp.include = 1");184 } else {185 psStringAppend(&query, " WHERE detInputExp.include = 1");186 }187 hasWhere = true;182 if (hasWhere) { 183 psStringAppend(&query, " AND detInputExp.include = 1"); 184 } else { 185 psStringAppend(&query, " WHERE detInputExp.include = 1"); 186 } 187 hasWhere = true; 188 188 } 189 189 190 190 if (hasWhere) { 191 psStringAppend(&query, " AND");191 psStringAppend(&query, " AND"); 192 192 } else { 193 psStringAppend(&query, " WHERE");193 psStringAppend(&query, " WHERE"); 194 194 } 195 195 … … 249 249 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 250 250 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 251 PXOPT_COPY_S16(config->args, where, "- code", "fault", "==");251 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 252 252 253 253 psString query = pxDataGet("dettool_revertresidimfile.sql"); … … 289 289 PXOPT_LOOKUP_STR(data_state, config->args, "-data_state", true, false); 290 290 if (!setResidImfileDataState(config, det_id, iteration, exp_id, class_id, data_state)) { 291 return false;291 return false; 292 292 } 293 293 return true; -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/dettool_stack.c
r19092 r24244 127 127 PXOPT_LOOKUP_STR(class_id, config->args, "-class_id", true, false); 128 128 129 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);130 131 // Required if code== 0132 PXOPT_LOOKUP_STR(uri, config->args, "-uri", ( code== 0), false);133 PXOPT_LOOKUP_STR(recipe, config->args, "-recip", ( code== 0), false);129 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 130 131 // Required if fault == 0 132 PXOPT_LOOKUP_STR(uri, config->args, "-uri", (fault == 0), false); 133 PXOPT_LOOKUP_STR(recipe, config->args, "-recip", (fault == 0), false); 134 134 135 135 // optional … … 188 188 user_4, 189 189 user_5, 190 "full",191 code190 "full", 191 fault 192 192 ); 193 193 … … 286 286 PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "=="); 287 287 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 288 PXOPT_COPY_S16(config->args, where, "- code", "fault", "==");288 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 289 289 290 290 psString query = pxDataGet("dettool_revertstacked.sql"); … … 326 326 327 327 if (!setStackedImfileDataState(config, det_id, iteration, class_id, data_state)) { 328 return false;328 return false; 329 329 } 330 330 return true; -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/difftool.c
r23594 r24244 40 40 static bool revertdiffskyfileMode(pxConfig *config); 41 41 static bool definepoprunMode(pxConfig *config); 42 static bool define byqueryMode(pxConfig *config);42 static bool definewarpstackMode(pxConfig *config); 43 43 static bool definewarpwarpMode(pxConfig *config); 44 44 static bool pendingcleanuprunMode(pxConfig *config); … … 79 79 MODECASE(DIFFTOOL_MODE_REVERTDIFFSKYFILE, revertdiffskyfileMode); 80 80 MODECASE(DIFFTOOL_MODE_DEFINEPOPRUN, definepoprunMode); 81 MODECASE(DIFFTOOL_MODE_DEFINE BYQUERY, definebyqueryMode);81 MODECASE(DIFFTOOL_MODE_DEFINEWARPSTACK, definewarpstackMode); 82 82 MODECASE(DIFFTOOL_MODE_DEFINEWARPWARP, definewarpwarpMode); 83 83 MODECASE(DIFFTOOL_MODE_PENDINGCLEANUPRUN, pendingcleanuprunMode); … … 116 116 PXOPT_LOOKUP_STR(workdir, config->args, "-workdir", true, false); 117 117 PXOPT_LOOKUP_STR(tess_id, config->args, "-tess_id", true, false); 118 PXOPT_LOOKUP_BOOL(bothways, config->args, "-bothways", false); 119 PXOPT_LOOKUP_BOOL(exposure, config->args, "-exposure", false); 118 120 PXOPT_LOOKUP_STR(label, config->args, "-label", false, false); 119 121 PXOPT_LOOKUP_STR(reduction, config->args, "-reduction", false, false); 120 PXOPT_LOOKUP_S64(exp_id, config->args, "-exp_id", false, false);121 122 122 123 // default … … 133 134 registered, 134 135 tess_id, 135 exp_id, 136 bothways, 137 exposure, 136 138 false 137 139 ); 138 140 if (!run) { 139 141 psError(PS_ERR_UNKNOWN, false, "failed to alloc diffRun object"); 140 return true;142 return false; 141 143 } 142 144 if (!diffRunInsertObject(config->dbh, run)) { 143 145 psError(PS_ERR_UNKNOWN, false, "database error"); 144 146 psFree(run); 145 return true;147 return false; 146 148 } 147 149 … … 150 152 151 153 if (!diffRunPrintObject(stdout, run, !simple)) { 152 psError(PS_ERR_UNKNOWN, false, "failed to print object");153 psFree(run);154 return false;154 psError(PS_ERR_UNKNOWN, false, "failed to print object"); 155 psFree(run); 156 return false; 155 157 } 156 158 … … 412 414 psMetadata *where = psMetadataAlloc(); 413 415 PXOPT_COPY_S64(config->args, where, "-diff_id", "diffRun.diff_id", "=="); 414 PXOPT_COPY_STR(config->args, where,"-label", "diffRun.label", "==");416 pxAddLabelSearchArgs (config, where, "-label", "diffRun.label", "=="); 415 417 416 418 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 485 487 PXOPT_LOOKUP_S64(diff_id, config->args, "-diff_id", true, false); // required 486 488 PXOPT_LOOKUP_STR(skycell_id, config->args, "-skycell_id", true, false); 487 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);488 PXOPT_LOOKUP_S TR(uri, config->args, "-uri", (code == 0), false);489 PXOPT_LOOKUP_STR(path_base, config->args, "-path_base", ( code== 0), false);489 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 490 PXOPT_LOOKUP_S16(quality, config->args, "-quality", false, false); 491 PXOPT_LOOKUP_STR(path_base, config->args, "-path_base", (fault == 0), false); 490 492 491 493 // optional … … 506 508 PXOPT_LOOKUP_F32(kernel_xy, config->args, "-kernel_xy", false, false); 507 509 PXOPT_LOOKUP_F32(kernel_yy, config->args, "-kernel_yy", false, false); 510 PXOPT_LOOKUP_F32(deconv_max, config->args, "-deconv_max", false, false); 508 511 PXOPT_LOOKUP_S32(sources, config->args, "-sources", false, false); 509 512 PXOPT_LOOKUP_STR(hostname, config->args, "-hostname", false, false); … … 519 522 diff_id, 520 523 skycell_id, 521 uri,522 524 path_base, 525 "full", 523 526 bg, 524 527 bg_stdev, … … 533 536 kernel_xy, 534 537 kernel_yy, 538 deconv_max, 535 539 sources, 536 540 dtime_diff, … … 540 544 hostname, 541 545 good_frac, 542 code, 546 fault, 547 quality, 543 548 magicked 544 549 )) { … … 578 583 PXOPT_COPY_S64(config->args, where, "-diff_skyfile_id", "diffInputSkyfile.diff_skyfile_id", "=="); 579 584 PXOPT_COPY_STR(config->args, where, "-tess_id", "diffSkyfile.tess_id", "=="); 580 PXOPT_COPY_S16(config->args, where, "- code", "diffSkyfile.fault", "==");585 PXOPT_COPY_S16(config->args, where, "-fault", "diffSkyfile.fault", "=="); 581 586 PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "=="); 582 587 PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "=="); … … 655 660 PXOPT_COPY_S64(config->args, where, "-diff_id", "diffSkyfile.diff_id", "=="); 656 661 PXOPT_COPY_STR(config->args, where, "-label", "diffRun.label", "=="); 657 PXOPT_COPY_S16(config->args, where, "- code", "fault", "==");662 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 658 663 659 664 if (!psDBTransaction(config->dbh)) { … … 690 695 psFree(query); 691 696 692 psLogMsg("dif tool", PS_LOG_INFO, "Updated %" PRIu64 " rows", psDBAffectedRows(config->dbh));697 psLogMsg("difftool", PS_LOG_INFO, "Updated %" PRIu64 " rows", psDBAffectedRows(config->dbh)); 693 698 } 694 699 … … 766 771 psS64 template_warp_id, // Warp identifier for template image, PS_MAX_S64 for none 767 772 psS64 template_stack_id, // Stack identifier for template image, PS_MAX_S64 for none 768 psS64 exp_id, // exposure id for input_warp_id (if defined)769 773 pxConfig *config // Configuration 770 774 ) … … 797 801 registered, 798 802 tess_id, 799 exp_id, 803 false, 804 false, 800 805 false // magicked 801 806 ); … … 877 882 PXOPT_LOOKUP_S64(input_warp_id, config->args, "-input_warp_id", false, false); 878 883 PXOPT_LOOKUP_S64(input_stack_id, config->args, "-input_stack_id", false, false); 879 PXOPT_LOOKUP_S64(exp_id, config->args, "-exp_id", false, false);880 884 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 881 885 … … 897 901 psError(PS_ERR_BAD_PARAMETER_VALUE, true, 898 902 "No input has been defined (-input_stack_id or -input_warp_id)"); 899 return false;900 }901 if (input_warp_id && !exp_id) {902 psError(PS_ERR_BAD_PARAMETER_VALUE, true,903 "-exp_id is required with -input_warp_id.");904 903 return false; 905 904 } … … 912 911 template_warp_id ? template_warp_id : PS_MAX_S64, 913 912 template_stack_id ? template_stack_id : PS_MAX_S64, 914 exp_id ? exp_id : PS_MAX_S64,915 913 config)) { 916 914 psError(PS_ERR_UNKNOWN, false, "failed to create populated diffRun"); … … 930 928 931 929 932 static bool define byqueryMode(pxConfig *config)930 static bool definewarpstackMode(pxConfig *config) 933 931 { 934 932 PS_ASSERT_PTR_NON_NULL(config, false); … … 955 953 PXOPT_LOOKUP_BOOL(reRun, config->args, "-rerun", false); 956 954 PXOPT_LOOKUP_BOOL(available, config->args, "-available", false); 955 PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false); 957 956 958 957 // find all things to queue 959 psString query = pxDataGet("difftool_define byquery_part1.sql");958 psString query = pxDataGet("difftool_definewarpstack_part1.sql"); 960 959 if (!query) { 961 960 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); … … 1052 1051 } 1053 1052 1053 if (pretend) { 1054 // negative simple so the default is true 1055 if (!ippdbPrintMetadatas(stdout, output, "diffRun", !simple)) { 1056 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1057 psFree(output); 1058 return false; 1059 } 1060 psFree(output); 1061 return true; 1062 } 1063 1054 1064 // create temporary table 1055 query = pxDataGet("difftool_define byquery_temp_create.sql");1065 query = pxDataGet("difftool_definewarpstack_temp_create.sql"); 1056 1066 if (!p_psDBRunQuery(config->dbh, query)) { 1057 1067 psError(PS_ERR_UNKNOWN, false, "database error"); … … 1065 1075 query = NULL; 1066 1076 1067 psString skycell_query = pxDataGet("difftool_define byquery_part2.sql");1077 psString skycell_query = pxDataGet("difftool_definewarpstack_part2.sql"); 1068 1078 1069 1079 psArray *list = psArrayAllocEmpty(16); // List of runs, to print … … 1178 1188 registered, 1179 1189 tess_id, 1180 exp_id, 1190 false, // bothways 1191 true, // exposure 1181 1192 false // magicked 1182 1193 ); … … 1269 1280 PXOPT_COPY_S64(config->args, selectWhere, "-exp_id", "inputRawExp.exp_id", "=="); 1270 1281 PXOPT_COPY_STR(config->args, selectWhere, "-filter", "inputRawExp.filter", "=="); 1282 PXOPT_COPY_STR(config->args, selectWhere, "-obs_mode", "inputRawExp.obs_mode", "=="); 1283 PXOPT_COPY_STR(config->args, selectWhere, "-obs_mode", "templateRawExp.obs_mode", "=="); 1271 1284 PXOPT_COPY_STR(config->args, selectWhere, "-input_label", "inputWarpRun.label", "=="); 1272 1285 PXOPT_COPY_STR(config->args, selectWhere, "-template_label", "templateWarpRun.label", "=="); 1286 PXOPT_COPY_F32(config->args, selectWhere, "-rotdiff", "ABS(inputRawExp.posang - templateRawExp.posang)", "<="); 1273 1287 PXOPT_COPY_F32(config->args, selectWhere, "-timediff", 1274 1288 "ABS(TIME_TO_SEC(TIMEDIFF(inputRawExp.dateobs, templateRawExp.dateobs)))", "<="); 1275 PXOPT_COPY_F32(config->args, selectWhere, "-rotdiff", "ABS(inputRawExp.posang - templateRawExp.posang)", "<="); 1289 1290 // Haversine formula for great circle distance 1291 PXOPT_COPY_F32(config->args, selectWhere, "-distance", 1292 "DEGREES(2*ASIN(SQRT(POW(SIN(inputRawExp.decl - templateRawExp.decl),2) + " 1293 "COS(inputRawExp.decl)*COS(templateRawExp.decl)*" 1294 "POW(SIN(inputRawExp.ra - templateRawExp.ra),2))))", "<="); 1295 1296 PXOPT_LOOKUP_BOOL(backwards, config->args, "-backwards", false); 1297 1298 psMetadataAddF32(selectWhere, PS_LIST_TAIL, 1299 "TIME_TO_SEC(TIMEDIFF(inputRawExp.dateobs, templateRawExp.dateobs))", 1300 PS_META_DUPLICATE_OK, backwards ? "<" : ">", 0.0); 1276 1301 1277 1302 // Restrictions for inserting skycells … … 1289 1314 PXOPT_LOOKUP_TIME(registered, config->args, "-registered", false, false); 1290 1315 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1291 1292 1316 PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false); 1317 1318 if (!psDBTransaction(config->dbh)) { 1319 psError(PS_ERR_UNKNOWN, false, "database error"); 1320 psFree(selectWhere); 1321 psFree(insertWhere); 1322 return false; 1323 } 1324 1325 if (!rerun) { 1326 // Need to build table of exposures with diffs 1327 psString tempCreate = pxDataGet("difftool_definewarpwarp_temp_create.sql"); // Create temp table SQL 1328 if (!tempCreate) { 1329 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1330 psFree(selectWhere); 1331 psFree(insertWhere); 1332 if (!psDBRollback(config->dbh)) { 1333 psError(PS_ERR_UNKNOWN, false, "database error"); 1334 } 1335 return false; 1336 } 1337 1338 if (!p_psDBRunQuery(config->dbh, tempCreate)) { 1339 psError(PS_ERR_UNKNOWN, false, "Unable to create temp table: %s", tempCreate); 1340 psFree(tempCreate); 1341 psFree(selectWhere); 1342 psFree(insertWhere); 1343 if (!psDBRollback(config->dbh)) { 1344 psError(PS_ERR_UNKNOWN, false, "database error"); 1345 } 1346 return false; 1347 } 1348 psFree(tempCreate); 1349 1350 psString tempInsert = pxDataGet("difftool_definewarpwarp_temp_insert.sql"); // Insert to temp table 1351 if (!tempInsert) { 1352 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1353 psFree(selectWhere); 1354 psFree(insertWhere); 1355 if (!psDBRollback(config->dbh)) { 1356 psError(PS_ERR_UNKNOWN, false, "database error"); 1357 } 1358 return false; 1359 } 1360 1361 psString where = psStringCopy(""); // WHERE for insertion 1362 if (label) { 1363 psStringAppend(&where, "\nAND diffRun.label = '%s'", label); 1364 } 1365 1366 if (!p_psDBRunQueryF(config->dbh, tempInsert, where, where)) { 1367 psError(PS_ERR_UNKNOWN, false, "Unable to insert into temp table: %s", tempInsert); 1368 psFree(tempInsert); 1369 psFree(where); 1370 psFree(selectWhere); 1371 psFree(insertWhere); 1372 if (!psDBRollback(config->dbh)) { 1373 psError(PS_ERR_UNKNOWN, false, "database error"); 1374 } 1375 return false; 1376 } 1377 psFree(where); 1378 psFree(tempInsert); 1379 } 1380 1381 // Get list of warps to diff 1293 1382 psString select = pxDataGet("difftool_definewarpwarp_select.sql"); 1294 1383 if (!select) { 1295 1384 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1385 psFree(selectWhere); 1386 psFree(insertWhere); 1387 if (!psDBRollback(config->dbh)) { 1388 psError(PS_ERR_UNKNOWN, false, "database error"); 1389 } 1296 1390 return false; 1297 1391 } … … 1306 1400 psFree(selectWhere); 1307 1401 1402 if (!available) { 1403 psStringAppend(&whereClause, 1404 "\n%s inputWarpRun.state = 'full'" 1405 "AND templateWarpRun.state = 'full'", 1406 whereClause ? "AND" : "WHERE"); 1407 } 1408 1308 1409 if (!rerun) { 1309 psStringAppend(&whereClause, "\n%s diffRun.diff_id IS NULL", whereClause ? "AND" : "WHERE"); 1310 } 1311 1312 if (!available) { 1313 psStringAppend(&whereClause, "\n%s inputWarpRun.state = 'full'", whereClause ? "AND" : "WHERE"); 1314 } 1315 1316 if (!psDBTransaction(config->dbh)) { 1317 psError(PS_ERR_UNKNOWN, false, "database error"); 1318 psFree(select); 1319 psFree(whereClause); 1320 psFree(insertWhere); 1321 return false; 1410 psStringAppend(&whereClause, "\n%s diffs.diff_id IS NULL", whereClause ? "AND" : "WHERE"); 1322 1411 } 1323 1412 1324 1413 if (!p_psDBRunQueryF(config->dbh, select, 1325 !rerun ? "\n" : "", // Activate LEFT JOIN against diff Run?1414 !rerun ? "\n" : "", // Activate LEFT JOIN against diffs? 1326 1415 whereClause)) { 1327 1416 psError(PS_ERR_UNKNOWN, false, "Unable to run query: %s [WITH] %s", select, whereClause); … … 1368 1457 } 1369 1458 1459 if (pretend) { 1460 // negative simple so the default is true 1461 if (!ippdbPrintMetadatas(stdout, results, "diffRun", !simple)) { 1462 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1463 psFree(results); 1464 return false; 1465 } 1466 psFree(results); 1467 return true; 1468 } 1469 1370 1470 psString insert = pxDataGet("difftool_definewarpwarp_insert.sql"); // Insertion for each new run 1371 1471 1372 1472 if (psListLength(insertWhere->list)) { 1373 1473 psString whereClause = psDBGenerateWhereConditionSQL(insertWhere, NULL); 1374 psStringAppend(&insert, "\n %s", whereClause);1474 psStringAppend(&insert, "\nAND %s", whereClause); 1375 1475 psFree(whereClause); 1376 1476 } … … 1382 1482 psMetadata *row = results->data[i]; // Result row from query 1383 1483 1384 psS64 exp_id = psMetadataLookupS64(NULL, row, "input_exp_id");1385 1484 psS64 input_id = psMetadataLookupS64(NULL, row, "input_warp_id"); 1386 psS64 template_id = psMetadataLookupS64(NULL, row, "template_warp_id");1485 const char *template = psMetadataLookupStr(NULL, row, "template_warp_id"); 1387 1486 const char *tess_id = psMetadataLookupStr(NULL, row, "tess_id"); 1388 if (! exp_id || !input_id || !template_id|| !tess_id) {1487 if (!input_id || !template || !tess_id) { 1389 1488 psError(PXTOOLS_ERR_PROG, false, "Identifiers not found"); 1390 1489 psFree(list); … … 1398 1497 1399 1498 diffRunRow *run = diffRunRowAlloc(0, "reg", workdir, label, reduction, NULL, registered, 1400 tess_id, exp_id, false); // Run to insert1499 tess_id, true, true, false); // Run to insert 1401 1500 if (!diffRunInsertObject(config->dbh, run)) { 1402 1501 psError(PS_ERR_UNKNOWN, false, "database error"); … … 1413 1512 1414 1513 // Convert identifiers to string, for insertion into query 1415 psString diff = NULL, input = NULL , template = NULL; // String versions of identifiers1514 psString diff = NULL, input = NULL; // String versions of identifiers 1416 1515 psStringAppend(&diff, "%" PRId64, run->diff_id); 1417 1516 psStringAppend(&input, "%" PRId64, input_id); 1418 psStringAppend(&template, "%" PRId64, template_id);1419 1517 1420 1518 if (!p_psDBRunQueryF(config->dbh, insert, diff, input, template, input, template)) { 1421 1519 psError(PS_ERR_UNKNOWN, false, "database error"); 1422 1520 psFree(input); 1423 psFree(template);1424 1521 psFree(diff); 1425 1522 psFree(run); … … 1433 1530 } 1434 1531 psFree(input); 1435 psFree(template);1436 1532 psFree(diff); 1437 1533 … … 1482 1578 1483 1579 psMetadata *where = psMetadataAlloc(); 1484 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");1580 pxAddLabelSearchArgs (config, where, "-label", "diffRun.label", "=="); 1485 1581 1486 1582 psString query = pxDataGet("difftool_pendingcleanuprun.sql"); … … 1547 1643 PXOPT_COPY_S64(config->args, where, "-diff_id", "diff_id", "=="); 1548 1644 } 1549 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");1645 pxAddLabelSearchArgs (config, where, "-label", "diffRun.label", "=="); 1550 1646 1551 1647 psString query = pxDataGet("difftool_pendingcleanupskyfile.sql"); … … 1662 1758 PS_ASSERT_PTR_NON_NULL(config, false); 1663 1759 1664 PXOPT_LOOKUP_S16( code, config->args, "-code", true, false);1760 PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false); 1665 1761 1666 1762 psMetadata *where = psMetadataAlloc(); 1667 1763 PXOPT_COPY_S64(config->args, where, "-diff_id", "diff_id", "=="); 1668 1764 1669 if (!pxSetFaultCode(config->dbh, "diffSkyfile", where, code)) {1765 if (!pxSetFaultCode(config->dbh, "diffSkyfile", where, fault)) { 1670 1766 psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag"); 1671 1767 psFree (where); … … 1737 1833 PXOPT_LOOKUP_STR(outfile, config->args, "-outfile", true, false); 1738 1834 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1835 PXOPT_LOOKUP_BOOL(clean, config->args, "-clean", false); 1739 1836 1740 1837 FILE *f = fopen (outfile, "w"); … … 1782 1879 psArray *output = p_psDBFetchResult(config->dbh); 1783 1880 if (!output) { 1784 psError(PS_ERR_UNKNOWN, false, "database error");1785 1881 return false; 1786 1882 } 1787 1883 if (!psArrayLength(output)) { 1788 ps Trace("regtool", PS_LOG_INFO, "no rows found");1884 psError(PS_ERR_UNKNOWN, true, "no rows found"); 1789 1885 psFree(output); 1790 return true; 1886 return false; 1887 } 1888 1889 if (clean) { 1890 bool success = true; 1891 if (!strcmp(tables[i].tableName, "diffRun")) { 1892 success = pxSetStateCleaned("diffRun", "state", output); 1893 #ifdef notyet 1894 // diffSkyfile doesn't have dataState yet 1895 } else if (!strcmp(tables[i].tableName, "diffSkyfile")) { 1896 success = pxSetStateCleaned("diffSkyfile", "data_state", output); 1897 #endif 1898 } 1899 if (!success) { 1900 psFree(output); 1901 psError(PS_ERR_UNKNOWN, false, "pxSetStateClean failed for table %s", tables[i].tableName); 1902 return false; 1903 } 1791 1904 } 1792 1905 -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/difftool.h
r23594 r24244 34 34 DIFFTOOL_MODE_REVERTDIFFSKYFILE, 35 35 DIFFTOOL_MODE_DEFINEPOPRUN, 36 DIFFTOOL_MODE_DEFINE BYQUERY,36 DIFFTOOL_MODE_DEFINEWARPSTACK, 37 37 DIFFTOOL_MODE_DEFINEWARPWARP, 38 38 DIFFTOOL_MODE_PENDINGCLEANUPRUN, -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/difftoolConfig.c
r23594 r24244 49 49 psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-workdir", 0, "define workdir (required)", NULL); 50 50 psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-tess_id", 0, "define tessellation ID (required)", NULL); 51 psMetadataAddBool(definerunArgs, PS_LIST_TAIL, "-bothways", 0, "do the subtraction both ways?", false); 52 psMetadataAddBool(definerunArgs, PS_LIST_TAIL, "-exposure", 0, "subtraction for entire exposure?", false); 51 53 psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-label", 0, "define label", NULL); 52 54 psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-reduction", 0, "define reduction class", NULL); … … 80 82 psMetadata *todiffskyfileArgs = psMetadataAlloc(); 81 83 psMetadataAddS64(todiffskyfileArgs, PS_LIST_TAIL, "-diff_id", 0, "search by diff ID", 0); 82 psMetadataAddStr(todiffskyfileArgs, PS_LIST_TAIL, "-label", 0, "search by label", 0);84 psMetadataAddStr(todiffskyfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label", 0); 83 85 psMetadataAddU64(todiffskyfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 84 86 psMetadataAddBool(todiffskyfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); … … 88 90 psMetadataAddS64(adddiffskyfileArgs, PS_LIST_TAIL, "-diff_id", 0, "define warp ID (required)", 0); 89 91 psMetadataAddStr(adddiffskyfileArgs, PS_LIST_TAIL, "-skycell_id", 0, "define skycell of file (required)", 0); 90 psMetadataAddS16(adddiffskyfileArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);91 psMetadataAddS tr(adddiffskyfileArgs, PS_LIST_TAIL, "-uri", 0, "define URI of file", 0);92 psMetadataAddS16(adddiffskyfileArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 93 psMetadataAddS16(adddiffskyfileArgs, PS_LIST_TAIL, "-quality", 0, "set quality", 0); 92 94 psMetadataAddStr(adddiffskyfileArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", 0); 93 95 psMetadataAddF64(adddiffskyfileArgs, PS_LIST_TAIL, "-bg", 0, "define exposure background", NAN); … … 107 109 psMetadataAddF32(adddiffskyfileArgs, PS_LIST_TAIL, "-kernel_xy", 0, "define kernel xy moment", NAN); 108 110 psMetadataAddF32(adddiffskyfileArgs, PS_LIST_TAIL, "-kernel_yy", 0, "define kernel yy moment", NAN); 111 psMetadataAddF32(adddiffskyfileArgs, PS_LIST_TAIL, "-deconv_max", 0, "define maximum deconvolution fraction", NAN); 109 112 psMetadataAddS32(adddiffskyfileArgs, PS_LIST_TAIL, "-sources", 0, "define number of sources", 0); 110 113 psMetadataAddStr(adddiffskyfileArgs, PS_LIST_TAIL, "-hostname", 0, "define hostname", 0); … … 123 126 psMetadataAddU64(diffskyfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 124 127 psMetadataAddBool(diffskyfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 125 psMetadataAddS16(diffskyfileArgs, PS_LIST_TAIL, "- code", 0, "deifine fault code", 0);128 psMetadataAddS16(diffskyfileArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0); 126 129 127 130 // -revertdiffskyfile … … 129 132 psMetadataAddS64(revertdiffskyfileArgs, PS_LIST_TAIL, "-diff_id", 0, "search by diff ID", 0); 130 133 psMetadataAddStr(revertdiffskyfileArgs, PS_LIST_TAIL, "-label", 0, "search by label", NULL); 131 psMetadataAddS16(revertdiffskyfileArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);134 psMetadataAddS16(revertdiffskyfileArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 132 135 133 136 // -definepoprun … … 140 143 psMetadataAddStr(definepoprunArgs, PS_LIST_TAIL, "-reduction", 0, "define reduction class", NULL); 141 144 psMetadataAddBool(definepoprunArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 142 psMetadataAddS64(definepoprunArgs, PS_LIST_TAIL, "-exp_id", 0, "define exposure ID for template", 0);143 145 psMetadataAddS64(definepoprunArgs, PS_LIST_TAIL, "-template_warp_id", 0, "define warp ID for template", 0); 144 146 psMetadataAddS64(definepoprunArgs, PS_LIST_TAIL, "-template_stack_id", 0, "define stack ID for template", 0); … … 146 148 psMetadataAddS64(definepoprunArgs, PS_LIST_TAIL, "-input_stack_id", 0, "define stack ID for input", 0); 147 149 148 // -definebyquery 149 psMetadata *definebyqueryArgs = psMetadataAlloc(); 150 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warp ID", 0); 151 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure ID", 0); 152 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-skycell_id", 0, "search by skycell ID", NULL); 153 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-tess_id", 0, "search by tess ID", NULL); 154 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-filter", 0, "search by filter", NULL); 155 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-stack_label", 0, "search by stack label", NULL); 156 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-warp_label", 0, "search by warp label", NULL); 157 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-good_frac", 0, "minimum good fraction of skycell", NAN); 158 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-workdir", 0, "define workdir (required)", NULL); 159 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-label", 0, "define label", NULL); 160 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-reduction", 0, "define reduction class", NULL); 161 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-registered", 0, "time detrend run was registered", now); 162 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-new-templates", 0, "also search for diffs with new template", false); 163 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-rerun", 0, "define new run even if one exists", false); 164 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-available", 0, "define new run even if warpRun has some faults", false); 165 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 150 // -definewarpstack 151 psMetadata *definewarpstackArgs = psMetadataAlloc(); 152 psMetadataAddS64(definewarpstackArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warp ID", 0); 153 psMetadataAddS64(definewarpstackArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure ID", 0); 154 psMetadataAddStr(definewarpstackArgs, PS_LIST_TAIL, "-skycell_id", 0, "search by skycell ID", NULL); 155 psMetadataAddStr(definewarpstackArgs, PS_LIST_TAIL, "-tess_id", 0, "search by tess ID", NULL); 156 psMetadataAddStr(definewarpstackArgs, PS_LIST_TAIL, "-filter", 0, "search by filter", NULL); 157 psMetadataAddStr(definewarpstackArgs, PS_LIST_TAIL, "-stack_label", 0, "search by stack label", NULL); 158 psMetadataAddStr(definewarpstackArgs, PS_LIST_TAIL, "-warp_label", 0, "search by warp label", NULL); 159 psMetadataAddF32(definewarpstackArgs, PS_LIST_TAIL, "-good_frac", 0, "minimum good fraction of skycell", NAN); 160 psMetadataAddStr(definewarpstackArgs, PS_LIST_TAIL, "-workdir", 0, "define workdir (required)", NULL); 161 psMetadataAddStr(definewarpstackArgs, PS_LIST_TAIL, "-label", 0, "define label", NULL); 162 psMetadataAddStr(definewarpstackArgs, PS_LIST_TAIL, "-reduction", 0, "define reduction class", NULL); 163 psMetadataAddTime(definewarpstackArgs, PS_LIST_TAIL, "-registered", 0, "time detrend run was registered", now); 164 psMetadataAddBool(definewarpstackArgs, PS_LIST_TAIL, "-new-templates", 0, "also search for diffs with new template", false); 165 psMetadataAddBool(definewarpstackArgs, PS_LIST_TAIL, "-rerun", 0, "define new run even if one exists", false); 166 psMetadataAddBool(definewarpstackArgs, PS_LIST_TAIL, "-available", 0, "define new run even if warpRun has some faults", false); 167 psMetadataAddBool(definewarpstackArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 168 psMetadataAddBool(definewarpstackArgs, PS_LIST_TAIL, "-pretend", 0, "list results but to not queue", false); 166 169 167 170 // -definewarpwarp … … 170 173 psMetadataAddS64(definewarpwarpArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure ID", 0); 171 174 psMetadataAddStr(definewarpwarpArgs, PS_LIST_TAIL, "-filter", 0, "search by filter", NULL); 175 psMetadataAddF32(definewarpwarpArgs, PS_LIST_TAIL, "-distance", 0, "limit distance between input and template (deg)", NAN); 176 psMetadataAddStr(definewarpwarpArgs, PS_LIST_TAIL, "-obs_mode", 0, "search by observation mode", NULL); 172 177 psMetadataAddF32(definewarpwarpArgs, PS_LIST_TAIL, "-timediff", 0, "limit time difference between input and template", NAN); 178 psMetadataAddBool(definewarpwarpArgs, PS_LIST_TAIL, "-backwards", 0, "Template comes after input?", false); 173 179 psMetadataAddF32(definewarpwarpArgs, PS_LIST_TAIL, "-rotdiff", 0, "limit rotator difference between input and template", NAN); 174 180 psMetadataAddStr(definewarpwarpArgs, PS_LIST_TAIL, "-input_label", 0, "search by warp label for input", NULL); … … 182 188 psMetadataAddBool(definewarpwarpArgs, PS_LIST_TAIL, "-available", 0, "define new run even if warpRun has some faults", false); 183 189 psMetadataAddBool(definewarpwarpArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 190 psMetadataAddBool(definewarpwarpArgs, PS_LIST_TAIL, "-pretend", 0, "list results but to not queue", false); 184 191 185 192 // -pendingcleanuprun 186 193 psMetadata *pendingcleanuprunArgs = psMetadataAlloc(); 187 psMetadataAddStr(pendingcleanuprunArgs, PS_LIST_TAIL, "-label", 0,"list blocks for specified label", NULL);194 psMetadataAddStr(pendingcleanuprunArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "list blocks for specified label", NULL); 188 195 psMetadataAddBool(pendingcleanuprunArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 189 196 psMetadataAddU64(pendingcleanuprunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 191 198 // -pendingcleanupskyfile 192 199 psMetadata *pendingcleanupskyfileArgs = psMetadataAlloc(); 193 psMetadataAddStr(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-label", 0,"list blocks for specified label", NULL);200 psMetadataAddStr(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "list blocks for specified label", NULL); 194 201 psMetadataAddS64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-diff_id", 0, "search by diff ID", 0); 195 202 psMetadataAddBool(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); … … 204 211 psMetadata *updatediffskyfileArgs = psMetadataAlloc(); 205 212 psMetadataAddS64(updatediffskyfileArgs, PS_LIST_TAIL, "-diff_id", 0, "define diff ID (required)", 0); 206 psMetadataAddS16(updatediffskyfileArgs, PS_LIST_TAIL, "- code", 0, "set fault code (required)", 0);213 psMetadataAddS16(updatediffskyfileArgs, PS_LIST_TAIL, "-fault", 0, "set fault code (required)", 0); 207 214 208 215 // -exportrun … … 211 218 psMetadataAddStr(exportrunArgs, PS_LIST_TAIL, "-outfile", 0, "export to this file (required)", NULL); 212 219 psMetadataAddU64(exportrunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 220 psMetadataAddBool(exportrunArgs, PS_LIST_TAIL, "-clean", 0, "mark tables as cleaned", false); 213 221 214 222 // -importrun … … 232 240 PXOPT_ADD_MODE("-revertdiffskyfile","", DIFFTOOL_MODE_REVERTDIFFSKYFILE, revertdiffskyfileArgs); 233 241 PXOPT_ADD_MODE("-definepoprun", "", DIFFTOOL_MODE_DEFINEPOPRUN, definepoprunArgs); 234 PXOPT_ADD_MODE("-define byquery", "", DIFFTOOL_MODE_DEFINEBYQUERY, definebyqueryArgs);242 PXOPT_ADD_MODE("-definewarpstack", "", DIFFTOOL_MODE_DEFINEWARPSTACK, definewarpstackArgs); 235 243 PXOPT_ADD_MODE("-definewarpwarp", "", DIFFTOOL_MODE_DEFINEWARPWARP, definewarpwarpArgs); 236 244 PXOPT_ADD_MODE("-pendingcleanuprun", "show runs that need to be cleaned up", DIFFTOOL_MODE_PENDINGCLEANUPRUN, pendingcleanuprunArgs); -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/disttool.c
r23594 r24244 39 39 static bool processedcomponentMode(pxConfig *config); 40 40 static bool toadvanceMode(pxConfig *config); 41 static bool pendingfilesetMode(pxConfig *config); 42 static bool addfilesetMode(pxConfig *config); 43 static bool revertfilesetMode(pxConfig *config); 44 static bool queuercrunMode(pxConfig *config); 45 static bool updatercrunMode(pxConfig *config); 46 static bool revertrcrunMode(pxConfig *config); 47 static bool pendingdestMode(pxConfig *config); 48 49 static bool definetargetMode(pxConfig *config); 50 static bool updatetargetMode(pxConfig *config); 51 static bool listtargetMode(pxConfig *config); 52 53 static bool definedsproductMode(pxConfig *config); 54 static bool updatedsproductMode(pxConfig *config); 55 56 static bool definedestinationMode(pxConfig *config); 57 static bool updatedestinationMode(pxConfig *config); 58 59 static bool defineinterestMode(pxConfig *config); 60 static bool updateinterestMode(pxConfig *config); 41 61 42 62 # define MODECASE(caseName, func) \ … … 67 87 MODECASE(DISTTOOL_MODE_PROCESSEDCOMPONENT, processedcomponentMode); 68 88 MODECASE(DISTTOOL_MODE_TOADVANCE, toadvanceMode); 89 MODECASE(DISTTOOL_MODE_PENDINGFILESET, pendingfilesetMode); 90 MODECASE(DISTTOOL_MODE_ADDFILESET, addfilesetMode); 91 MODECASE(DISTTOOL_MODE_REVERTFILESET, revertfilesetMode); 92 MODECASE(DISTTOOL_MODE_QUEUERCRUN, queuercrunMode); 93 MODECASE(DISTTOOL_MODE_UPDATERCRUN, updatercrunMode); 94 MODECASE(DISTTOOL_MODE_REVERTRCRUN, revertrcrunMode); 95 MODECASE(DISTTOOL_MODE_PENDINGDEST, pendingdestMode); 96 MODECASE(DISTTOOL_MODE_DEFINETARGET, definetargetMode); 97 MODECASE(DISTTOOL_MODE_UPDATETARGET, updatetargetMode); 98 MODECASE(DISTTOOL_MODE_LISTTARGET, listtargetMode); 99 MODECASE(DISTTOOL_MODE_DEFINEDSPRODUCT, definedsproductMode); 100 MODECASE(DISTTOOL_MODE_UPDATEDSPRODUCT, updatedsproductMode); 101 MODECASE(DISTTOOL_MODE_DEFINEDESTINATION, definedestinationMode); 102 MODECASE(DISTTOOL_MODE_UPDATEDESTINATION, updatedestinationMode); 103 MODECASE(DISTTOOL_MODE_DEFINEINTEREST, defineinterestMode); 104 MODECASE(DISTTOOL_MODE_UPDATEINTEREST, updateinterestMode); 69 105 default: 70 106 psAbort("invalid option (this should not happen)"); … … 92 128 PS_ASSERT_PTR_NON_NULL(config, false); 93 129 130 // required 94 131 PXOPT_LOOKUP_STR(stage, config->args, "-stage", true, false); 95 132 PXOPT_LOOKUP_S64(stage_id, config->args, "-stage_id", true, false); 96 133 PXOPT_LOOKUP_STR(outroot, config->args, "-outroot", true, false); 134 PXOPT_LOOKUP_S64(target_id, config->args, "-target_id", true, false); 135 136 // optional 97 137 PXOPT_LOOKUP_BOOL(clean, config->args, "-clean", false); 138 PXOPT_LOOKUP_BOOL(no_magic, config->args, "-no_magic", false); 98 139 PXOPT_LOOKUP_STR(set_label, config->args, "-set_label", false, false); 99 140 … … 101 142 // XXX: all of the following concerns will be managed properly by definebyquery 102 143 103 // TODO: check that stage_id actually exists for stage104 // in magicdstool we queue off of a magic_id so the stage_id, exp_id, and cam_id get looked up 144 // TODO: should we check that stage_id actually exists for stage 145 // in magicdstool we queue off of a magic_id so the stage_id, exp_id, and cam_id get looked up 105 146 // when the run is queued 106 // Should we also check here that the run is full or cleaned and that all of the images 107 // are magicked. We need to do that at run time as well since the run and magic state can 108 // change between the time that it is queued. 109 110 if (!distRunInsert(config->dbh, 0, stage, stage_id, set_label, outroot, clean, "new", NULL, 0)) { 147 148 if (!distRunInsert(config->dbh, 149 0, // dist_id 150 target_id, 151 stage, 152 stage_id, 153 set_label, 154 outroot, 155 clean, 156 no_magic, 157 "new", 158 NULL, // time_stamp 159 0 // fault 160 )) { 111 161 psError(PS_ERR_UNKNOWN, false, "database error"); 112 162 return false; … … 118 168 static bool definebyqueryMode(pxConfig *config) 119 169 { 120 psError(PS_ERR_PROGRAMMING, true, "-definebyquery is not implemented yet"); 121 return false; 170 PS_ASSERT_PTR_NON_NULL(config, false); 171 172 // required 173 PXOPT_LOOKUP_STR(stage, config->args, "-stage", true, false); 174 PXOPT_LOOKUP_STR(workdir, config->args, "-workdir", true, false); 175 176 // optional 177 PXOPT_LOOKUP_S64(magic_ds_id, config->args, "-magic_ds_id", false, false); 178 PXOPT_LOOKUP_BOOL(no_magic, config->args, "-no_magic", false); 179 PXOPT_LOOKUP_STR(set_label, config->args, "-set_label", false, false); 180 PXOPT_LOOKUP_S64(limit, config->args, "-limit", false, false); 181 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 182 183 PXOPT_LOOKUP_BOOL(dry_run, config->args, "-dry_run", false); 184 185 // select arguments 186 psMetadata *where = psMetadataAlloc(); 187 188 PXOPT_COPY_S64(config->args, where, "-target_id", "distTarget.target_id", "=="); 189 PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "=="); 190 PXOPT_COPY_S64(config->args, where, "-chip_id", "chipRun.chip_id", "=="); 191 PXOPT_COPY_STR(config->args, where, "-obs_mode", "rawExp.obs_mode", "=="); 192 193 PXOPT_LOOKUP_STR(label, config->args, "-label", false, false); 194 195 psString query = NULL; 196 psString magicRunType = NULL; 197 psString runJoinStr = NULL; 198 if (!strcmp(stage, "raw")) { 199 magicRunType = "rawExp"; 200 runJoinStr = "rawExp.exp_id"; 201 query = pxDataGet("disttool_definebyquery_raw.sql"); 202 if (!query) { 203 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 204 psFree(where); 205 return false; 206 } 207 } else if (!strcmp(stage, "chip")) { 208 magicRunType = "chipRun"; 209 runJoinStr = "chipRun.chip_id"; 210 query = pxDataGet("disttool_definebyquery_chip.sql"); 211 if (!query) { 212 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 213 psFree(where); 214 return false; 215 } 216 217 if (label) { 218 psStringAppend(&query, " AND (chipRun.label = '%s')", label); 219 } 220 } else if (!strcmp(stage, "camera")) { 221 magicRunType = "chipRun"; // This is used below to set the magicked business 222 query = pxDataGet("disttool_definebyquery_camera.sql"); 223 if (!query) { 224 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 225 psFree(where); 226 return false; 227 } 228 229 if (label) { 230 psStringAppend(&query, " AND (camRun.label = '%s')", label); 231 } 232 } else if (!strcmp(stage, "fake")) { 233 magicRunType = "fakeRun"; 234 query = pxDataGet("disttool_definebyquery_fake.sql"); 235 if (!query) { 236 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 237 psFree(where); 238 return false; 239 } 240 241 if (label) { 242 psStringAppend(&query, " AND (fakeRun.label = '%s')", label); 243 } 244 // fake stage doesn't require magic 245 no_magic = true; 246 } else if (!strcmp(stage, "warp")) { 247 magicRunType = "warpRun"; 248 runJoinStr = "warpRun.warp_id"; 249 query = pxDataGet("disttool_definebyquery_warp.sql"); 250 if (!query) { 251 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 252 psFree(where); 253 return false; 254 } 255 256 if (label) { 257 psStringAppend(&query, " AND (warpRun.label = '%s')", label); 258 } 259 260 } else if (!strcmp(stage, "diff")) { 261 magicRunType = "diffRun"; 262 runJoinStr = "diffRun.diff_id"; 263 query = pxDataGet("disttool_definebyquery_diff.sql"); 264 if (!query) { 265 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 266 psFree(where); 267 return false; 268 } 269 270 if (label) { 271 psStringAppend(&query, " AND (diffRun.label = '%s')", label); 272 } 273 274 } else if (!strcmp(stage, "stack")) { 275 magicRunType = "stackRun"; 276 query = pxDataGet("disttool_definebyquery_stack.sql"); 277 if (!query) { 278 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 279 psFree(where); 280 return false; 281 } 282 283 if (label) { 284 psStringAppend(&query, " AND (stackRun.label = '%s')", label); 285 } 286 // stack stage doesn't require magic (perhaps let the script do this? 287 no_magic = true; 288 } else { 289 psError(PS_ERR_UNKNOWN, true, "unknown value for stage: %s", stage); 290 psFree(where); 291 return false; 292 } 293 294 if (psListLength(where->list)) { 295 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 296 psStringAppend(&query, " AND %s", whereClause); 297 psFree(whereClause); 298 } 299 psFree(where); 300 301 psString joinHook = NULL; 302 303 if (!no_magic) { 304 psStringAppend(&query, " AND (distTarget.clean OR %s.magicked)", magicRunType); 305 306 // is selecting by magic_ds_id really interesting? 307 if (magic_ds_id) { 308 if (strcmp(stage, "camera")) { 309 // stage other than camera 310 if (!runJoinStr) { 311 psError(PS_ERR_PROGRAMMING, true, "cannot select by magic_ds_id for stage: %s", stage); 312 psFree(query); 313 return false; 314 } 315 psStringAppend(&joinHook, "\nJOIN magicDSRun ON magicDSRun.stage = distTarget.stage" 316 " AND magicDSRun.stage_id = %s", runJoinStr); 317 } else { 318 // camera masks are magicked when the chipRun is magicked 319 // XXX: This is confusing. Is it dangerous? 320 // Maybe I should add a magicked bit to camRun. Note this isn't 321 psStringAppend(&joinHook, "\nJOIN magicDSRun ON magicDSRun.stage = 'chip'" 322 " AND magicDSRun.stage_id = chipRun.chip_id"); 323 } 324 psStringAppend(&query, " AND (magicDSRun.state = 'full' AND magicDSRun.re_place AND (magic_ds_id = %" PRId64 "))", magic_ds_id); 325 } 326 } 327 328 if (limit) { 329 psString limitString = psDBGenerateLimitSQL(limit); 330 psStringAppend(&query, " %s", limitString); 331 psFree(limitString); 332 } 333 334 if (!p_psDBRunQueryF(config->dbh, query, joinHook ? joinHook : "")) { 335 psError(PS_ERR_UNKNOWN, false, "database error"); 336 psFree(query); 337 return false; 338 } 339 psFree(query); 340 psFree(joinHook); 341 342 psArray *output = p_psDBFetchResult(config->dbh); 343 if (!output) { 344 psError(PS_ERR_UNKNOWN, false, "database error"); 345 return false; 346 } 347 if (!psArrayLength(output)) { 348 psTrace("disttool", PS_LOG_INFO, "no rows found"); 349 psFree(output); 350 return true; 351 } 352 353 354 if (dry_run) { 355 if (!ippdbPrintMetadatas(stdout, output, "newdistRuns", true)) { 356 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 357 psFree(output); 358 return false; 359 } 360 psFree(output); 361 return true; 362 } 363 364 if (!psDBTransaction(config->dbh)) { 365 psError(PS_ERR_UNKNOWN, false, "database error"); 366 return false; 367 } 368 369 psArray *list = psArrayAllocEmpty(limit); 370 for (long i=0; i < psArrayLength(output); i++) { 371 psMetadata *md = output->data[i]; 372 psString stage = psMetadataLookupStr(NULL, md, "stage"); 373 psString run_tag = psMetadataLookupStr(NULL, md, "run_tag"); 374 psS64 stage_id = psMetadataLookupS64(NULL, md, "stage_id"); 375 psS64 target_id = psMetadataLookupS64(NULL, md, "target_id"); 376 bool clean = psMetadataLookupBool(NULL, md, "clean"); 377 378 psString outroot = NULL; 379 psStringAppend(&outroot, "%s/%s/%s", workdir, run_tag, stage); 380 381 distRunRow *row = distRunRowAlloc( 382 0, // dist_id 383 target_id, 384 stage, 385 stage_id, 386 set_label, 387 outroot, 388 clean, 389 no_magic, 390 "new", 391 NULL, // time_stamp 392 0 // fault 393 ); 394 395 if (!row) { 396 psError(PS_ERR_UNKNOWN, false, "failed to allocate distRunRow"); 397 psFree(outroot); 398 psFree(output); 399 return false; 400 } 401 if (!distRunInsertObject(config->dbh, row)) { 402 psError(PS_ERR_UNKNOWN, false, "database error"); 403 psFree(outroot); 404 psFree(output); 405 return false; 406 } 407 psFree(outroot); 408 psS64 dist_id = psDBLastInsertID(config->dbh); 409 row->dist_id = dist_id; 410 psArrayAdd(list, list->n, row); 411 psFree(row); 412 } 413 414 if (!psDBCommit(config->dbh)) { 415 psError(PS_ERR_UNKNOWN, false, "database error"); 416 return false; 417 } 418 if (!distRunPrintObjects(stdout, list, !simple)) { 419 psError(PS_ERR_UNKNOWN, false, "failed to print object"); 420 psFree(list); 421 return false; 422 } 423 424 psFree(list); 425 psFree(output); 426 427 return true; 122 428 } 123 429 … … 138 444 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 139 445 PXOPT_LOOKUP_STR(label, config->args, "-set_label", false, false); 140 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);141 142 if ((!state) && (!label) && (! code)) {143 psError(PXTOOLS_ERR_DATA, false, "parameters (- codeor -set_state or -set_label) are required");446 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 447 448 if ((!state) && (!label) && (!fault)) { 449 psError(PXTOOLS_ERR_DATA, false, "parameters (-fault or -set_state or -set_label) are required"); 144 450 psFree(where); 145 451 return false; … … 156 462 } 157 463 158 if ( code) {159 psStringAppend(&query, " , fault = %d", code);464 if (fault) { 465 psStringAppend(&query, " , fault = %d", fault); 160 466 } 161 467 … … 182 488 PXOPT_COPY_STR(config->args, where, "-state", "state", "=="); 183 489 PXOPT_COPY_STR(config->args, where, "-label", "label", "=="); 184 PXOPT_COPY_S16(config->args, where, "- code", "distComponent.fault", "==");490 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 185 491 186 492 // It might be useful to be able to query by the parameters of the underlying runs … … 296 602 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 297 603 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 298 PXOPT_LOOKUP_BOOL(need_magic, config->args, "-need_magic", false);299 604 300 605 // look for "inputs" that need to processed … … 319 624 } 320 625 321 psString chip_magic = ""; 626 // the query has where hooks for each stage. 627 // right now we aren't using them. 628 // XXX: I think that I want to change the query from a union of selects on the various 629 // stages to separate queries. As it is pending data at the later stages of the pipline 630 // will get blocked by pending earlier stages 322 631 psString raw_where = ""; 632 psString raw_clean_where = ""; 323 633 psString chip_where = ""; 324 634 psString camera_where = ""; … … 328 638 psString stack_where = ""; 329 639 330 if (need_magic) {331 chip_magic = psStringCopy("\nAND chipRun.magicked");332 raw_where = psStringCopy("\nAND rawExp.magicked");333 chip_where = psStringCopy("\nAND (distRun.clean OR chipRun.magicked)");334 // chipRun must be magicked to allow release camera level masks335 camera_where = psStringCopy("\nAND (distRun.clean OR chipRun.magicked)");336 warp_where = psStringCopy("\nAND (distRun.clean OR warpRun.magicked)");337 diff_where = psStringCopy("\nAND (distRun.clean OR diffRun.magicked)");338 }339 340 640 if (!p_psDBRunQueryF(config->dbh, 341 641 query, 342 chip_magic,343 642 raw_where, 643 raw_clean_where, 344 644 chip_where, 345 645 camera_where, … … 397 697 // unless fault code is set require filename, bytes, and md5sum 398 698 bool require_fileinfo = false; 399 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);400 if (! code) {699 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 700 if (!fault) { 401 701 require_fileinfo = true; 402 702 } … … 405 705 PXOPT_LOOKUP_STR(name, config->args, "-name", require_fileinfo, false); 406 706 407 if (!distComponentInsert(config->dbh, dist_id, component, bytes, md5sum, "full", name, code)) {707 if (!distComponentInsert(config->dbh, dist_id, component, bytes, md5sum, "full", name, fault)) { 408 708 psError(PS_ERR_UNKNOWN, false, "database error"); 409 709 return false; … … 419 719 psMetadata *where = psMetadataAlloc(); 420 720 PXOPT_COPY_S64(config->args, where, "-dist_id", "dist_id", "=="); 721 PXOPT_COPY_STR(config->args, where, "-label", "label", "=="); 421 722 422 723 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 555 856 return true; 556 857 } 858 859 static bool pendingfilesetMode(pxConfig *config) 860 { 861 PS_ASSERT_PTR_NON_NULL(config, false); 862 863 psMetadata *where = psMetadataAlloc(); 864 PXOPT_COPY_S64(config->args, where, "-dist_id", "dist_id", "=="); 865 PXOPT_COPY_STR(config->args, where, "-label", "label", "=="); 866 867 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 868 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 869 870 // look for "inputs" that need to processed 871 psString query = pxDataGet("disttool_pendingfileset.sql"); 872 if (!query) { 873 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 874 return false; 875 } 876 877 if (psListLength(where->list)) { 878 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 879 psStringAppend(&query, " AND %s", whereClause); 880 psFree(whereClause); 881 } 882 psFree(where); 883 884 // treat limit == 0 as "no limit" 885 if (limit) { 886 psString limitString = psDBGenerateLimitSQL(limit); 887 psStringAppend(&query, " %s", limitString); 888 psFree(limitString); 889 } 890 891 if (!p_psDBRunQuery(config->dbh, query)) { 892 psError(PS_ERR_UNKNOWN, false, "database error"); 893 psFree(query); 894 return false; 895 } 896 psFree(query); 897 898 psArray *output = p_psDBFetchResult(config->dbh); 899 if (!output) { 900 psErrorCode err = psErrorCodeLast(); 901 switch (err) { 902 case PS_ERR_DB_CLIENT: 903 psError(PXTOOLS_ERR_SYS, false, "database error"); 904 case PS_ERR_DB_SERVER: 905 psError(PXTOOLS_ERR_PROG, false, "database error"); 906 default: 907 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 908 } 909 910 return false; 911 } 912 if (!psArrayLength(output)) { 913 psTrace("disttool", PS_LOG_INFO, "no rows found"); 914 psFree(output); 915 return true; 916 } 917 918 if (psArrayLength(output)) { 919 // negative simple so the default is true 920 if (!ippdbPrintMetadatas(stdout, output, "pendingfileset", !simple)) { 921 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 922 psFree(output); 923 return false; 924 } 925 } 926 927 psFree(output); 928 929 return true; 930 } 931 static bool addfilesetMode(pxConfig *config) 932 { 933 934 // required values 935 PXOPT_LOOKUP_S64(dist_id, config->args, "-dist_id", true, false); 936 PXOPT_LOOKUP_S64(prod_id, config->args, "-prod_id", true, false); 937 938 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 939 940 // unless fault code is set require name 941 PXOPT_LOOKUP_STR(name, config->args, "-name", fault == 0, false); 942 943 if (!rcDSFilesetInsert(config->dbh, 944 0, // fs_id 945 dist_id, 946 prod_id, 947 name, 948 "full", 949 fault)) { 950 psError(PS_ERR_UNKNOWN, false, "database error"); 951 return false; 952 } 953 954 return true; 955 } 956 static bool revertfilesetMode(pxConfig *config) 957 { 958 psMetadata *where = psMetadataAlloc(); 959 PXOPT_COPY_S64(config->args, where, "-fs_id", "fs_id", "=="); 960 PXOPT_COPY_S64(config->args, where, "-dist_id", "rcDSFileset.dist_id", "=="); 961 PXOPT_COPY_S64(config->args, where, "-prod_id", "prod_id", "=="); 962 PXOPT_COPY_STR(config->args, where, "-stage", "stage", "==");; 963 PXOPT_COPY_S64(config->args, where, "-stage_id", "stage_id", "=="); 964 PXOPT_COPY_STR(config->args, where, "-state", "state", "=="); 965 PXOPT_COPY_STR(config->args, where, "-label", "label", "=="); 966 PXOPT_COPY_S16(config->args, where, "-fault", "rcDSFileset.fault", "=="); 967 968 // It might be useful to be able to query by the parameters of the underlying runs 969 970 if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) { 971 psFree(where); 972 psError(PXTOOLS_ERR_DATA, false, "search parameters are required"); 973 return false; 974 } 975 976 psString query = pxDataGet("disttool_revertfileset.sql"); 977 if (!query) { 978 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 979 psFree(where); 980 return false; 981 } 982 983 if (psListLength(where->list)) { 984 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 985 psStringAppend(&query, " AND %s", whereClause); 986 psFree(whereClause); 987 } 988 989 if (!p_psDBRunQuery(config->dbh, query)) { 990 psError(PS_ERR_UNKNOWN, false, "database error"); 991 psFree(query); 992 if (!psDBRollback(config->dbh)) { 993 psError(PS_ERR_UNKNOWN, false, "database error"); 994 } 995 return false; 996 } 997 psFree(query); 998 999 int numUpdated = psDBAffectedRows(config->dbh); 1000 1001 psLogMsg("disttool", PS_LOG_INFO, "deleted %d rcDSFilesets", numUpdated); 1002 1003 return true; 1004 } 1005 1006 static bool pendingdestMode(pxConfig *config) 1007 { 1008 PS_ASSERT_PTR_NON_NULL(config, false); 1009 1010 psMetadata *where = psMetadataAlloc(); 1011 PXOPT_COPY_S64(config->args, where, "-dest_id", "dist_id", "=="); 1012 // PXOPT_COPY_STR(config->args, where, "-label", "label", "=="); 1013 1014 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1015 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1016 1017 // look for "inputs" that need to processed 1018 psString query = pxDataGet("disttool_pendingdest.sql"); 1019 if (!query) { 1020 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1021 return false; 1022 } 1023 1024 psString whereString = NULL; 1025 if (psListLength(where->list)) { 1026 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1027 // where string gets added by hook, not at the end of the query 1028 psStringAppend(&whereString, "\n AND %s", whereClause); 1029 psFree(whereClause); 1030 } 1031 psFree(where); 1032 1033 // treat limit == 0 as "no limit" 1034 if (limit) { 1035 psString limitString = psDBGenerateLimitSQL(limit); 1036 psStringAppend(&query, " %s", limitString); 1037 psFree(limitString); 1038 } 1039 1040 if (!p_psDBRunQueryF(config->dbh, query, whereString ? whereString : "")) { 1041 psError(PS_ERR_UNKNOWN, false, "database error"); 1042 psFree(whereString); 1043 psFree(query); 1044 return false; 1045 } 1046 psFree(query); 1047 1048 psArray *output = p_psDBFetchResult(config->dbh); 1049 if (!output) { 1050 psErrorCode err = psErrorCodeLast(); 1051 switch (err) { 1052 case PS_ERR_DB_CLIENT: 1053 psError(PXTOOLS_ERR_SYS, false, "database error"); 1054 case PS_ERR_DB_SERVER: 1055 psError(PXTOOLS_ERR_PROG, false, "database error"); 1056 default: 1057 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 1058 } 1059 1060 return false; 1061 } 1062 if (!psArrayLength(output)) { 1063 psTrace("disttool", PS_LOG_INFO, "no rows found"); 1064 psFree(output); 1065 return true; 1066 } 1067 1068 if (psArrayLength(output)) { 1069 // negative simple so the default is true 1070 if (!ippdbPrintMetadatas(stdout, output, "pendingfileset", !simple)) { 1071 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1072 psFree(output); 1073 return false; 1074 } 1075 } 1076 1077 psFree(output); 1078 1079 return true; 1080 } 1081 1082 static bool queuercrunMode(pxConfig *config) 1083 { 1084 PS_ASSERT_PTR_NON_NULL(config, false); 1085 psMetadata *where = psMetadataAlloc(); 1086 1087 PXOPT_COPY_S64(config->args, where, "-dist_id", "dist_id", "=="); 1088 PXOPT_COPY_S64(config->args, where, "-dest_id", "dest_id", "=="); 1089 PXOPT_COPY_S64(config->args, where, "-prod_id", "prod_id", "=="); 1090 PXOPT_COPY_S64(config->args, where, "-target_id","target_id", "=="); 1091 PXOPT_COPY_S64(config->args, where, "-fs_id", "fs_id", "=="); 1092 PXOPT_COPY_STR(config->args, where, "-stage", "stage", "==");; 1093 PXOPT_COPY_S64(config->args, where, "-stage_id", "stage_id", "=="); 1094 PXOPT_COPY_STR(config->args, where, "-label", "label", "=="); 1095 1096 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1097 1098 psString query = pxDataGet("disttool_queuercrun.sql"); 1099 if (!query) { 1100 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1101 return false; 1102 } 1103 1104 if (psListLength(where->list)) { 1105 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1106 psStringAppend(&query, " AND %s", whereClause); 1107 psFree(whereClause); 1108 } 1109 psFree(where); 1110 1111 // treat limit == 0 as "no limit" 1112 if (limit) { 1113 psString limitString = psDBGenerateLimitSQL(limit); 1114 psStringAppend(&query, " %s", limitString); 1115 psFree(limitString); 1116 } 1117 1118 if (!p_psDBRunQuery(config->dbh, query)) { 1119 psError(PS_ERR_UNKNOWN, false, "database error"); 1120 psFree(query); 1121 return false; 1122 } 1123 psFree(query); 1124 1125 long numUpdated = psDBAffectedRows(config->dbh); 1126 1127 psLogMsg("disttool", PS_LOG_INFO, "Inserted %ld rcRuns", numUpdated); 1128 1129 return true; 1130 } 1131 1132 1133 static bool updatercrunMode(pxConfig *config) 1134 { 1135 PS_ASSERT_PTR_NON_NULL(config, false); 1136 1137 psMetadata *where = psMetadataAlloc(); 1138 1139 PXOPT_LOOKUP_S64(rc_id, config->args, "-rc_id", false, false); 1140 PXOPT_LOOKUP_STR(fs_name, config->args, "-fs_name", false, false); 1141 PXOPT_LOOKUP_STR(status_fs_name, config->args, "-status_fs_name", false, false); 1142 PXOPT_LOOKUP_S64(dest_id, config->args, "-dest_id", false, false); 1143 1144 // We either need rc_id or (dest_id and fs_name) to identifiy the rcRun 1145 if ((!rc_id) && !(dest_id && fs_name)) { 1146 psError(PXTOOLS_ERR_DATA, true, "either -rc_id or (-fs_name and -dest_id) are required"); 1147 return false; 1148 } 1149 1150 // now that we have done the argument checking 1151 PXOPT_COPY_S64(config->args, where, "-rc_id", "rc_id", "=="); 1152 PXOPT_COPY_STR(config->args, where, "-fs_name", "rcDSFileset.name", "=="); 1153 PXOPT_COPY_S64(config->args, where, "-dest_id", "rcRun.dest_id", "=="); 1154 1155 if (!psListLength(where->list)) { 1156 // this can't happen because we checked above 1157 psFree(where); 1158 psError(PXTOOLS_ERR_DATA, false, "search parameters are required"); 1159 return false; 1160 } 1161 1162 1163 PXOPT_LOOKUP_STR(last_fileset, config->args, "-set_last_fileset", false, false); 1164 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 1165 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 1166 1167 if (!state && (fault < 0)) { 1168 psError(PXTOOLS_ERR_DATA, false, "parameters (-fault or -set_state) are required"); 1169 psFree(where); 1170 return false; 1171 } 1172 1173 psString query = pxDataGet("disttool_updatercrun.sql"); 1174 if (!query) { 1175 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1176 return false; 1177 } 1178 1179 psString setString = psStringCopy("\n"); 1180 psString separator = ""; 1181 if (state) { 1182 psStringAppend(&setString, " rcRun.state = '%s'", state); 1183 separator = ","; 1184 } 1185 1186 // default for fault is -1, so set it if it's zero or higher. This allows clearing fault 1187 // without forcing revert first 1188 if (fault >= 0) { 1189 psStringAppend(&setString, "%s rcRun.fault = %d", separator, fault); 1190 } 1191 1192 if (status_fs_name) { 1193 psStringAppend(&setString, ", rcRun.status_fs_name = '%s'", status_fs_name); 1194 } 1195 1196 if (last_fileset) { 1197 psStringAppend(&setString, ", rcDestination.last_fileset = '%s'", last_fileset); 1198 } 1199 1200 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1201 psStringAppend(&query, " AND %s", whereClause); 1202 psFree(whereClause); 1203 psFree(where); 1204 1205 if (!p_psDBRunQueryF(config->dbh, query, setString)) { 1206 psError(PS_ERR_UNKNOWN, false, "database error"); 1207 psFree(setString); 1208 psFree(query); 1209 return false; 1210 } 1211 psFree(setString); 1212 psFree(query); 1213 1214 long numUpdated = psDBAffectedRows(config->dbh); 1215 1216 psLogMsg("disttool", PS_LOG_INFO, "Updated %ld rows", numUpdated); 1217 1218 return true; 1219 } 1220 1221 static bool revertrcrunMode(pxConfig *config) 1222 { 1223 PS_ASSERT_PTR_NON_NULL(config, false); 1224 psMetadata *where = psMetadataAlloc(); 1225 PXOPT_COPY_S64(config->args, where, "-rc_id", "rc_id", "=="); 1226 PXOPT_COPY_S64(config->args, where, "-fs_id", "fs_id", "=="); 1227 PXOPT_COPY_S64(config->args, where, "-dest_id", "dest_id", "=="); 1228 PXOPT_COPY_S64(config->args, where, "-fault", "fault", "=="); 1229 1230 if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) { 1231 psFree(where); 1232 psError(PXTOOLS_ERR_DATA, false, "search parameters are required"); 1233 return false; 1234 } 1235 1236 psString query = pxDataGet("disttool_revertrcrun.sql"); 1237 if (!query) { 1238 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1239 if (!psDBRollback(config->dbh)) { 1240 psError(PS_ERR_UNKNOWN, false, "database error"); 1241 } 1242 return false; 1243 } 1244 1245 if (psListLength(where->list)) { 1246 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1247 psStringAppend(&query, " AND %s", whereClause); 1248 psFree(whereClause); 1249 } 1250 1251 if (!p_psDBRunQuery(config->dbh, query)) { 1252 psError(PS_ERR_UNKNOWN, false, "database error"); 1253 psFree(query); 1254 if (!psDBRollback(config->dbh)) { 1255 psError(PS_ERR_UNKNOWN, false, "database error"); 1256 } 1257 return false; 1258 } 1259 psFree(query); 1260 1261 long numUpdated = psDBAffectedRows(config->dbh); 1262 1263 psLogMsg("disttool", PS_LOG_INFO, "Updated %ld rcRuns", numUpdated); 1264 1265 return true; 1266 } 1267 1268 static bool definetargetMode(pxConfig *config) 1269 { 1270 PS_ASSERT_PTR_NON_NULL(config, false); 1271 1272 // required 1273 PXOPT_LOOKUP_STR(obs_mode, config->args, "-obs_mode", true, false); 1274 PXOPT_LOOKUP_STR(stage, config->args, "-stage", true, false); 1275 1276 // optional 1277 PXOPT_LOOKUP_BOOL(clean, config->args, "-clean", false); 1278 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 1279 PXOPT_LOOKUP_STR(comment, config->args, "-comment", false, false); 1280 1281 distTargetRow *row = distTargetRowAlloc( 1282 0, // target_id 1283 obs_mode, 1284 stage, 1285 clean, 1286 state ? state : "enabled", 1287 comment 1288 ); 1289 1290 if (!row) { 1291 psError(PS_ERR_UNKNOWN, false, "failed to allocate distTarget object"); 1292 return false; 1293 } 1294 if (!distTargetInsertObject(config->dbh, row)) { 1295 psError(PS_ERR_UNKNOWN, false, "database error"); 1296 psFree(row); 1297 return false; 1298 } 1299 1300 // get the assigned target_id 1301 row->target_id = psDBLastInsertID(config->dbh); 1302 1303 if (!distTargetPrintObject(stdout, row, true)) { 1304 psError(PS_ERR_UNKNOWN, false, "failed to print object"); 1305 psFree(row); 1306 return false; 1307 } 1308 1309 psFree(row); 1310 1311 return true; 1312 } 1313 static bool updatetargetMode(pxConfig *config) 1314 { 1315 PS_ASSERT_PTR_NON_NULL(config, false); 1316 1317 psMetadata *where = psMetadataAlloc(); 1318 PXOPT_COPY_S64(config->args, where, "-target_id", "target_id", "=="); 1319 PXOPT_COPY_STR(config->args, where, "-obs_mode", "obs_mode", "=="); 1320 PXOPT_COPY_STR(config->args, where, "-stage", "stage", "=="); 1321 1322 PXOPT_LOOKUP_STR(state, config->args, "-set_state", true, false); 1323 1324 psString query = psStringCopy("UPDATE distTarget SET state = '%s'"); 1325 1326 if (psListLength(where->list)) { 1327 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1328 psStringAppend(&query, " WHERE %s", whereClause); 1329 psFree(whereClause); 1330 } else { 1331 psError(PS_ERR_UNKNOWN, true, "search parameters are required"); 1332 psFree(where); 1333 psFree(query); 1334 return false; 1335 } 1336 psFree(where); 1337 1338 if (!p_psDBRunQueryF(config->dbh, query, state)) { 1339 psError(PS_ERR_UNKNOWN, false, "database error"); 1340 psFree(query); 1341 return false; 1342 } 1343 psFree(query); 1344 1345 return true; 1346 } 1347 1348 static bool listtargetMode(pxConfig *config) 1349 { 1350 PS_ASSERT_PTR_NON_NULL(config, false); 1351 1352 psMetadata *where = psMetadataAlloc(); 1353 PXOPT_COPY_S64(config->args, where, "-target_id", "target_id", "=="); 1354 PXOPT_COPY_STR(config->args, where, "-obs_mode", "obs_mode", "=="); 1355 PXOPT_COPY_STR(config->args, where, "-stage", "stage", "=="); 1356 PXOPT_COPY_STR(config->args, where, "-state", "state", "=="); 1357 1358 PXOPT_LOOKUP_BOOL(clean, config->args, "-clean", false); 1359 PXOPT_LOOKUP_BOOL(full, config->args, "-full", false); 1360 1361 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1362 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1363 1364 if (clean && full) { 1365 psError(PS_ERR_UNKNOWN, false, "can't select both -clean and -full"); 1366 return false; 1367 } 1368 1369 psString query = psStringCopy("SELECT * FROM distTarget"); 1370 1371 if (psListLength(where->list)) { 1372 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1373 psStringAppend(&query, " WHERE %s", whereClause); 1374 psFree(whereClause); 1375 if (clean) { 1376 psStringAppend(&query, " (AND clean)"); 1377 } else if (full) { 1378 psStringAppend(&query, " (AND !clean)"); 1379 } 1380 } else if (clean) { 1381 psStringAppend(&query, " WHERE clean"); 1382 } else if (full) { 1383 psStringAppend(&query, " WHERE !clean"); 1384 } 1385 psFree(where); 1386 1387 // treat limit == 0 as "no limit" 1388 if (limit) { 1389 psString limitString = psDBGenerateLimitSQL(limit); 1390 psStringAppend(&query, " %s", limitString); 1391 psFree(limitString); 1392 } 1393 1394 if (!p_psDBRunQuery(config->dbh, query)) { 1395 psError(PS_ERR_UNKNOWN, false, "database error"); 1396 psFree(query); 1397 if (!psDBRollback(config->dbh)) { 1398 psError(PS_ERR_UNKNOWN, false, "database error"); 1399 } 1400 return false; 1401 } 1402 psFree(query); 1403 1404 psArray *output = p_psDBFetchResult(config->dbh); 1405 if (!output) { 1406 psError(PS_ERR_UNKNOWN, false, "database error"); 1407 return false; 1408 } 1409 if (!psArrayLength(output)) { 1410 psTrace("disttool", PS_LOG_INFO, "no rows found"); 1411 psFree(output); 1412 return true; 1413 } 1414 1415 if (!ippdbPrintMetadatas(stdout, output, "distTarget", !simple)) { 1416 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1417 psFree(output); 1418 return false; 1419 } 1420 1421 psFree(output); 1422 1423 return true; 1424 } 1425 1426 static bool definedsproductMode(pxConfig *config) 1427 { 1428 PS_ASSERT_PTR_NON_NULL(config, false); 1429 1430 // required 1431 PXOPT_LOOKUP_STR(name, config->args, "-name", true, false); 1432 PXOPT_LOOKUP_STR(dbname, config->args, "-ds_dbname", true, false); 1433 PXOPT_LOOKUP_STR(dbhost, config->args, "-ds_dbhost", true, false); 1434 1435 // XXX: should we insure that these names do not contatin any whitespace? 1436 1437 rcDSProductRow *row = rcDSProductRowAlloc( 1438 0, // prod_id 1439 name, 1440 dbname, 1441 dbhost 1442 ); 1443 1444 if (!row) { 1445 psError(PS_ERR_UNKNOWN, false, "failed to allocate rcDSProduct object"); 1446 return false; 1447 } 1448 if (!rcDSProductInsertObject(config->dbh, row)) { 1449 psError(PS_ERR_UNKNOWN, false, "database error"); 1450 psFree(row); 1451 return false; 1452 } 1453 1454 // get the assigned target_id 1455 row->prod_id = psDBLastInsertID(config->dbh); 1456 1457 if (!rcDSProductPrintObject(stdout, row, true)) { 1458 psError(PS_ERR_UNKNOWN, false, "failed to print object"); 1459 psFree(row); 1460 return false; 1461 } 1462 1463 psFree(row); 1464 1465 return true; 1466 } 1467 static bool updatedsproductMode(pxConfig *config) 1468 { 1469 PS_ASSERT_PTR_NON_NULL(config, false); 1470 1471 psMetadata *where = psMetadataAlloc(); 1472 PXOPT_COPY_S64(config->args, where, "-prod_id", "prod_id", "=="); 1473 1474 PXOPT_LOOKUP_STR(dbname, config->args, "-ds_dbname", false, false); 1475 PXOPT_LOOKUP_STR(dbhost, config->args, "-ds_dbhost", false, false); 1476 1477 if (!(dbname || dbhost)) { 1478 psError(PS_ERR_UNKNOWN, true, "one or more of dbname or dbhost is required"); 1479 psFree(where); 1480 return false; 1481 } 1482 psString query = psStringCopy("UPDATE rcDSProduct SET"); 1483 psString sep = ""; 1484 if (dbname) { 1485 psStringAppend(&query, " dbname = '%s'", dbname); 1486 sep = ","; 1487 } 1488 if (dbhost) { 1489 psStringAppend(&query, " %s dbhost = '%s'", sep, dbhost); 1490 } 1491 1492 if (psListLength(where->list)) { 1493 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1494 psStringAppend(&query, " WHERE %s", whereClause); 1495 psFree(whereClause); 1496 } else { 1497 psError(PS_ERR_UNKNOWN, true, "search parameters are required"); 1498 psFree(where); 1499 psFree(query); 1500 return false; 1501 } 1502 psFree(where); 1503 1504 if (!p_psDBRunQuery(config->dbh, query)) { 1505 psError(PS_ERR_UNKNOWN, false, "database error"); 1506 psFree(query); 1507 return false; 1508 } 1509 psFree(query); 1510 1511 return true; 1512 } 1513 1514 static bool definedestinationMode(pxConfig *config) 1515 { 1516 PS_ASSERT_PTR_NON_NULL(config, false); 1517 1518 // required 1519 PXOPT_LOOKUP_S64(prod_id, config->args, "-prod_id", true, false); 1520 PXOPT_LOOKUP_STR(name, config->args, "-name", true, false); 1521 1522 // optional 1523 PXOPT_LOOKUP_STR(status_uri, config->args, "-status_uri", false, false); 1524 PXOPT_LOOKUP_STR(comment, config->args, "-comment", false, false); 1525 PXOPT_LOOKUP_STR(last_fileset, config->args, "-last_fileset", false, false); 1526 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 1527 1528 // XXX: should we insure that these names do not contatin any whitespace? 1529 1530 rcDestinationRow *row = rcDestinationRowAlloc( 1531 0, // dest_id 1532 prod_id, 1533 name, 1534 status_uri, 1535 comment, 1536 last_fileset, 1537 state ? state : "enabled" 1538 ); 1539 1540 if (!row) { 1541 psError(PS_ERR_UNKNOWN, false, "failed to allocate rcDestination object"); 1542 return false; 1543 } 1544 if (!rcDestinationInsertObject(config->dbh, row)) { 1545 psError(PS_ERR_UNKNOWN, false, "database error"); 1546 psFree(row); 1547 return false; 1548 } 1549 1550 // get the assigned target_id 1551 row->dest_id = psDBLastInsertID(config->dbh); 1552 1553 if (!rcDestinationPrintObject(stdout, row, true)) { 1554 psError(PS_ERR_UNKNOWN, false, "failed to print object"); 1555 psFree(row); 1556 return false; 1557 } 1558 1559 psFree(row); 1560 1561 return true; 1562 } 1563 1564 static bool updatedestinationMode(pxConfig *config) 1565 { 1566 PS_ASSERT_PTR_NON_NULL(config, false); 1567 1568 psMetadata *where = psMetadataAlloc(); 1569 PXOPT_COPY_S64(config->args, where, "-dest_id", "dest_id", "=="); 1570 PXOPT_COPY_S64(config->args, where, "-prod_id", "prod_id", "=="); 1571 1572 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 1573 #ifdef ALLOW_UPDATE_LAST_FILESET 1574 PXOPT_LOOKUP_STR(last_fileset, config->args, "-set_last_fileset", false, false); 1575 if (!(state || last_fileset)) { 1576 psError(PS_ERR_UNKNOWN, true, "one or more of -set_state or -set_last_fileset is required"); 1577 # else 1578 if (!state) { 1579 #endif 1580 psFree(where); 1581 return false; 1582 } 1583 psString query = psStringCopy("UPDATE rcDestination SET"); 1584 psString sep = ""; 1585 if (state) { 1586 psStringAppend(&query, " state = '%s'", state); 1587 sep = ","; 1588 } 1589 #ifdef ALLOW_UPDATE_LAST_FILESET 1590 // last_fileset normally gets set by updatercrunMode 1591 // Allowing it to be set here might cause problems 1592 // especially since we are allowing selection by prod_id 1593 if (last_fileset) { 1594 psStringAppend(&query, " %s last_fileset = '%s'", sep, last_fileset); 1595 } 1596 #endif 1597 1598 if (psListLength(where->list)) { 1599 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1600 psStringAppend(&query, " WHERE %s", whereClause); 1601 psFree(whereClause); 1602 } else { 1603 psError(PS_ERR_UNKNOWN, true, "search parameters are required"); 1604 psFree(where); 1605 psFree(query); 1606 return false; 1607 } 1608 psFree(where); 1609 1610 if (!p_psDBRunQuery(config->dbh, query)) { 1611 psError(PS_ERR_UNKNOWN, false, "database error"); 1612 psFree(query); 1613 return false; 1614 } 1615 psFree(query); 1616 1617 return true; 1618 } 1619 1620 static bool defineinterestMode(pxConfig *config) 1621 { 1622 PS_ASSERT_PTR_NON_NULL(config, false); 1623 1624 // required 1625 PXOPT_LOOKUP_S64(dest_id, config->args, "-dest_id", true, false); 1626 PXOPT_LOOKUP_S64(target_id, config->args, "-target_id", true, false); 1627 1628 // optional 1629 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 1630 1631 // XXX: should we insure that these names do not contatin any whitespace? 1632 1633 rcInterestRow *row = rcInterestRowAlloc( 1634 0, // int_id 1635 dest_id, 1636 target_id, 1637 state ? state : "enabled" 1638 ); 1639 1640 if (!row) { 1641 psError(PS_ERR_UNKNOWN, false, "failed to allocate rcInterest object"); 1642 return false; 1643 } 1644 if (!rcInterestInsertObject(config->dbh, row)) { 1645 psError(PS_ERR_UNKNOWN, false, "database error"); 1646 psFree(row); 1647 return false; 1648 } 1649 1650 // get the assigned target_id 1651 row->int_id = psDBLastInsertID(config->dbh); 1652 1653 if (!rcInterestPrintObject(stdout, row, true)) { 1654 psError(PS_ERR_UNKNOWN, false, "failed to print object"); 1655 psFree(row); 1656 return false; 1657 } 1658 1659 psFree(row); 1660 1661 return true; 1662 } 1663 1664 static bool updateinterestMode(pxConfig *config) 1665 { 1666 PS_ASSERT_PTR_NON_NULL(config, false); 1667 1668 psMetadata *where = psMetadataAlloc(); 1669 PXOPT_COPY_S64(config->args, where, "-int_id", "int_id", "=="); 1670 PXOPT_COPY_S64(config->args, where, "-dest_id", "dest_id", "=="); 1671 PXOPT_COPY_S64(config->args, where, "-target_id", "target_id", "=="); 1672 1673 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 1674 if (!state) { 1675 psError(PS_ERR_UNKNOWN, true, "-set_state is required"); 1676 psFree(where); 1677 return false; 1678 } 1679 psString query = NULL; 1680 psStringAppend(&query, "UPDATE rcInterest SET state = '%s'", state); 1681 1682 if (psListLength(where->list)) { 1683 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1684 psStringAppend(&query, " WHERE %s", whereClause); 1685 psFree(whereClause); 1686 } else { 1687 psError(PS_ERR_UNKNOWN, true, "search parameters are required"); 1688 psFree(where); 1689 psFree(query); 1690 return false; 1691 } 1692 psFree(where); 1693 1694 if (!p_psDBRunQuery(config->dbh, query)) { 1695 psError(PS_ERR_UNKNOWN, false, "database error"); 1696 psFree(query); 1697 return false; 1698 } 1699 psFree(query); 1700 1701 return true; 1702 } 1703 -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/disttool.h
r23352 r24244 33 33 DISTTOOL_MODE_PROCESSEDCOMPONENT, 34 34 DISTTOOL_MODE_TOADVANCE, 35 DISTTOOL_MODE_PENDINGFILESET, 36 DISTTOOL_MODE_ADDFILESET, 37 DISTTOOL_MODE_REVERTFILESET, 38 DISTTOOL_MODE_QUEUERCRUN, 39 DISTTOOL_MODE_UPDATERCRUN, 40 DISTTOOL_MODE_REVERTRCRUN, 41 DISTTOOL_MODE_PENDINGDEST, 42 DISTTOOL_MODE_DEFINEDESTINATION, 43 DISTTOOL_MODE_UPDATEDESTINATION, 44 DISTTOOL_MODE_DEFINEDSPRODUCT, 45 DISTTOOL_MODE_UPDATEDSPRODUCT, 46 DISTTOOL_MODE_DEFINETARGET, 47 DISTTOOL_MODE_UPDATETARGET, 48 DISTTOOL_MODE_LISTTARGET, 49 DISTTOOL_MODE_DEFINEINTEREST, 50 DISTTOOL_MODE_UPDATEINTEREST, 35 51 } disttoolMode; 36 52 -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/disttoolConfig.c
r23594 r24244 43 43 } 44 44 45 // -definebyquery 46 psMetadata *definebyqueryArgs = psMetadataAlloc(); 47 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-stage", 0, "define stage for bundle (required)", NULL); 48 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-workdir", 0, "define workdir (required)", NULL); 49 50 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-no_magic", 0, "magic is not needed", false); 51 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_label", 0, "define label for run", NULL); 52 53 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-dry_run", 0, "don't queue runs just display what would be selected", false); 54 55 // select args 56 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-target_id", 0, "define target_id", 0); 57 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-exp_id", 0, "define exp_id", 0); 58 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-chip_id", 0, "define chip_id", 0); 59 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-magic_ds_id", 0, "define chip_id", 0); 60 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-label", 0, "select by label", NULL); 61 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-obs_mode", 0, "select by obs_mode", NULL); 62 63 psMetadataAddU64(definebyqueryArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 64 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 65 45 66 // -definerun 46 67 psMetadata *definerunArgs = psMetadataAlloc(); 47 68 psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-stage", 0, "define stage for bundle (required)", NULL); 48 psMetadataAddS64(definerunArgs, PS_LIST_TAIL, "-stage_id", 0, "define stage_id (required)", 0); 69 psMetadataAddS64(definerunArgs, PS_LIST_TAIL, "-stage_id", 0, "define stage_id (required)", 0); 49 70 psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-outroot", 0, "define output destination (required)", NULL); 71 psMetadataAddS64(definerunArgs, PS_LIST_TAIL, "-target_id", 0, "define target_id (required)", 0); 50 72 psMetadataAddBool(definerunArgs, PS_LIST_TAIL, "-clean", 0, "build clean distribution bundle", false); 73 psMetadataAddBool(definerunArgs, PS_LIST_TAIL, "-no_magic", 0, "magic is not needed", false); 51 74 psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-set_label", 0, "define label for run", NULL); 52 75 53 76 // -updaterun 54 77 psMetadata *updaterunArgs = psMetadataAlloc(); 55 psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 78 psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 56 79 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-set_state", 0, "new value for state", NULL); 57 80 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-set_label", 0, "new value for label", NULL); … … 59 82 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-state", 0, "value for state", NULL); 60 83 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-label", 0, "limit updates to label", NULL); 61 psMetadataAddS16(updaterunArgs, PS_LIST_TAIL, "- code", 0, "define fault code", 0);62 84 psMetadataAddS16(updaterunArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0); 85 63 86 // -revertrun 64 87 psMetadata *revertrunArgs = psMetadataAlloc(); 65 psMetadataAddS64(revertrunArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 88 psMetadataAddS64(revertrunArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 66 89 psMetadataAddStr(revertrunArgs, PS_LIST_TAIL, "-stage", 0, "define stage", NULL); 67 psMetadataAddS64(revertrunArgs, PS_LIST_TAIL, "-stage_id", 0, "define stage_id", 0); 90 psMetadataAddS64(revertrunArgs, PS_LIST_TAIL, "-stage_id", 0, "define stage_id", 0); 68 91 psMetadataAddStr(revertrunArgs, PS_LIST_TAIL, "-state", 0, "define state", NULL); 69 92 psMetadataAddStr(revertrunArgs, PS_LIST_TAIL, "-label", 0, "define label", NULL); 70 psMetadataAddS16(revertrunArgs, PS_LIST_TAIL, "- code", 0, "define fault code", 0);93 psMetadataAddS16(revertrunArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0); 71 94 psMetadataAddBool(revertrunArgs, PS_LIST_TAIL, "-all", 0, "revert all faulted runs", NULL); 72 95 73 96 // -pendingcomponent 74 97 psMetadata *pendingcomponentArgs = psMetadataAlloc(); 75 psMetadataAddS64(pendingcomponentArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 98 psMetadataAddS64(pendingcomponentArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 76 99 psMetadataAddStr(pendingcomponentArgs, PS_LIST_TAIL, "-stage", 0, "limit results to runs for stage", NULL); 77 psMetadataAddBool(pendingcomponentArgs, PS_LIST_TAIL, "-need_magic", 0, "magic is needed", false);78 100 psMetadataAddStr(pendingcomponentArgs, PS_LIST_TAIL, "-label", 0, "limit results to label", NULL); 79 101 psMetadataAddU64(pendingcomponentArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 83 105 // -addprocessedcomponent 84 106 psMetadata *addprocessedcomponentArgs = psMetadataAlloc(); 85 psMetadataAddS64(addprocessedcomponentArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 107 psMetadataAddS64(addprocessedcomponentArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 86 108 psMetadataAddStr(addprocessedcomponentArgs, PS_LIST_TAIL, "-component", 0, "define component (required)", NULL); 87 109 psMetadataAddStr(addprocessedcomponentArgs, PS_LIST_TAIL, "-name", 0, "define file name", NULL); 88 psMetadataAddS32(addprocessedcomponentArgs, PS_LIST_TAIL, "-bytes", 0, "define file size", 0); 110 psMetadataAddS32(addprocessedcomponentArgs, PS_LIST_TAIL, "-bytes", 0, "define file size", 0); 89 111 psMetadataAddStr(addprocessedcomponentArgs, PS_LIST_TAIL, "-md5sum", 0, "define stage for bundle", NULL); 90 psMetadataAddS32(addprocessedcomponentArgs, PS_LIST_TAIL, "- code", 0, "define fault code", 0);112 psMetadataAddS32(addprocessedcomponentArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0); 91 113 92 114 // -processedcomponent 93 115 psMetadata *processedcomponentArgs = psMetadataAlloc(); 94 psMetadataAddS64(processedcomponentArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 116 psMetadataAddS64(processedcomponentArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 95 117 psMetadataAddU64(processedcomponentArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 96 118 psMetadataAddBool(processedcomponentArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); … … 98 120 // -toadvance 99 121 psMetadata *toadvanceArgs = psMetadataAlloc(); 100 psMetadataAddS64(toadvanceArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 101 psMetadataAddU64(toadvanceArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 122 psMetadataAddS64(toadvanceArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 123 psMetadataAddStr(toadvanceArgs, PS_LIST_TAIL, "-label", 0, "limit updates to label", NULL); 124 psMetadataAddU64(toadvanceArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 102 125 psMetadataAddBool(toadvanceArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 126 127 // -pendingfileset 128 psMetadata *pendingfilesetArgs = psMetadataAlloc(); 129 psMetadataAddS64(pendingfilesetArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 130 psMetadataAddStr(pendingfilesetArgs, PS_LIST_TAIL, "-label", 0, "limit results to label", NULL); 131 psMetadataAddStr(pendingfilesetArgs, PS_LIST_TAIL, "-stage", 0, "limit results to runs for stage", NULL); 132 psMetadataAddU64(pendingfilesetArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 133 psMetadataAddBool(pendingfilesetArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 134 135 // -addfileset 136 psMetadata *addfilesetArgs = psMetadataAlloc(); 137 psMetadataAddS64(addfilesetArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 138 psMetadataAddS64(addfilesetArgs, PS_LIST_TAIL, "-prod_id", 0, "define prod_id", 0); 139 psMetadataAddStr(addfilesetArgs, PS_LIST_TAIL, "-name", 0, "define file name", NULL); 140 psMetadataAddS32(addfilesetArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0); 141 142 // -pendingdest 143 psMetadata *pendingdestArgs = psMetadataAlloc(); 144 psMetadataAddS64(pendingdestArgs, PS_LIST_TAIL, "-dest_id", 0, "define dest_id", 0); 145 psMetadataAddU64(pendingdestArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 146 psMetadataAddBool(pendingdestArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 147 psMetadataAddStr(pendingdestArgs, PS_LIST_TAIL, "-label", 0, "limit results to label", NULL); 148 149 // -revertfileset 150 psMetadata *revertfilesetArgs = psMetadataAlloc(); 151 psMetadataAddS64(revertfilesetArgs, PS_LIST_TAIL, "-fs_id", 0, "define fs_id", 0); 152 psMetadataAddS64(revertfilesetArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 153 psMetadataAddS64(revertfilesetArgs, PS_LIST_TAIL, "-prod_id", 0, "define dist_id", 0); 154 psMetadataAddStr(revertfilesetArgs, PS_LIST_TAIL, "-stage", 0, "define stage", NULL); 155 psMetadataAddS64(revertfilesetArgs, PS_LIST_TAIL, "-stage_id",0, "define stage_id", 0); 156 psMetadataAddStr(revertfilesetArgs, PS_LIST_TAIL, "-state", 0, "define state", NULL); 157 psMetadataAddStr(revertfilesetArgs, PS_LIST_TAIL, "-label", 0, "define label", NULL); 158 psMetadataAddS16(revertfilesetArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0); 159 psMetadataAddBool(revertfilesetArgs, PS_LIST_TAIL, "-all", 0, "revert all faulted runs", NULL); 160 161 // -queuercrun 162 psMetadata *queuercrunArgs = psMetadataAlloc(); 163 psMetadataAddS64(queuercrunArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 164 psMetadataAddS64(queuercrunArgs, PS_LIST_TAIL, "-dest_id", 0, "define dest_id", 0); 165 psMetadataAddS64(queuercrunArgs, PS_LIST_TAIL, "-prod_id", 0, "define prod_id", 0); 166 psMetadataAddS64(queuercrunArgs, PS_LIST_TAIL, "-target_id", 0, "define target_id", 0); 167 psMetadataAddS64(queuercrunArgs, PS_LIST_TAIL, "-fs_id", 0, "define fs_id", 0); 168 psMetadataAddStr(queuercrunArgs, PS_LIST_TAIL, "-stage", 0, "define stage", NULL); 169 psMetadataAddS64(queuercrunArgs, PS_LIST_TAIL, "-stage_id", 0, "define stage_id", 0); 170 psMetadataAddStr(queuercrunArgs, PS_LIST_TAIL, "-state", 0, "define state", NULL); 171 psMetadataAddStr(queuercrunArgs, PS_LIST_TAIL, "-label", 0, "define label", NULL); 172 psMetadataAddU64(queuercrunArgs, PS_LIST_TAIL, "-limit", 0, "limit number of runs queued to N", 0); 173 174 // -updatercrun 175 psMetadata *updatercrunArgs = psMetadataAlloc(); 176 psMetadataAddS64(updatercrunArgs, PS_LIST_TAIL, "-rc_id", 0, "define rc_id", 0); 177 psMetadataAddS64(updatercrunArgs, PS_LIST_TAIL, "-dest_id", 0, "define dest_id", 0); 178 psMetadataAddStr(updatercrunArgs, PS_LIST_TAIL, "-fs_name", 0, "define fileset name", NULL); 179 psMetadataAddStr(updatercrunArgs, PS_LIST_TAIL, "-status_fs_name", 0, "define status fileset name", NULL); 180 psMetadataAddStr(updatercrunArgs, PS_LIST_TAIL, "-set_state",0, "new value for state", NULL); 181 psMetadataAddStr(updatercrunArgs, PS_LIST_TAIL, "-set_last_fileset",0, "new value for last_fileset", NULL); 182 psMetadataAddS16(updatercrunArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", -1); 183 184 // -revertrcrun 185 psMetadata *revertrcrunArgs = psMetadataAlloc(); 186 psMetadataAddS64(revertrcrunArgs, PS_LIST_TAIL, "-rc_id", 0, "define rc_id", 0); 187 psMetadataAddS64(revertrcrunArgs, PS_LIST_TAIL, "-fs_id", 0, "define fs_id", 0); 188 psMetadataAddS64(revertrcrunArgs, PS_LIST_TAIL, "-dest_id", 0, "define dest_id", 0); 189 psMetadataAddS16(revertrcrunArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0); 190 psMetadataAddBool(revertrcrunArgs, PS_LIST_TAIL, "-all", 0, "revert all faulted runs", NULL); 191 192 // -definedsproduct 193 psMetadata *definedsproductArgs = psMetadataAlloc(); 194 psMetadataAddStr(definedsproductArgs, PS_LIST_TAIL, "-name", 0, "define product name", NULL); 195 psMetadataAddStr(definedsproductArgs, PS_LIST_TAIL, "-ds_dbname",0, "define data store database name", NULL); 196 psMetadataAddStr(definedsproductArgs, PS_LIST_TAIL, "-ds_dbhost",0, "define data store database host", NULL); 197 198 // -updatedsproduct 199 // does this mode make sense? 200 psMetadata *updatedsproductArgs = psMetadataAlloc(); 201 psMetadataAddS64(updatedsproductArgs, PS_LIST_TAIL, "-prod_id", 0, "select by prod_id", 0); 202 // can't select by name because it isn't necssarily unique 203 psMetadataAddStr(updatedsproductArgs, PS_LIST_TAIL, "-ds_dbname",0, "define data store database name", NULL); 204 psMetadataAddStr(updatedsproductArgs, PS_LIST_TAIL, "-ds_dbhost",0, "define data store database host", NULL); 205 206 // -definedestination 207 psMetadata *definedestinationArgs = psMetadataAlloc(); 208 psMetadataAddS64(definedestinationArgs, PS_LIST_TAIL, "-prod_id", 0, "define prod_id (required)", 0); 209 psMetadataAddStr(definedestinationArgs, PS_LIST_TAIL, "-name", 0, "define destination name (required)", NULL); 210 psMetadataAddStr(definedestinationArgs, PS_LIST_TAIL, "-status_uri", 0, "define status_uri", NULL); 211 psMetadataAddStr(definedestinationArgs, PS_LIST_TAIL, "-comment", 0, "define comment", NULL); 212 psMetadataAddStr(definedestinationArgs, PS_LIST_TAIL, "-last_fileset",0, "define last_fileset", NULL); 213 psMetadataAddStr(definedestinationArgs, PS_LIST_TAIL, "-set_state", 0, "define state", NULL); 214 215 // -updatedestination 216 psMetadata *updatedestinationArgs = psMetadataAlloc(); 217 psMetadataAddS64(updatedestinationArgs, PS_LIST_TAIL, "-dest_id", 0, "define dest_id", 0); 218 psMetadataAddS64(updatedestinationArgs, PS_LIST_TAIL, "-prod_id", 0, "define prod_id", 0); 219 psMetadataAddStr(updatedestinationArgs, PS_LIST_TAIL, "-name", 0, "define destination name", NULL); 220 psMetadataAddStr(updatedestinationArgs, PS_LIST_TAIL, "-status_uri", 0, "define status_uri", NULL); 221 psMetadataAddStr(updatedestinationArgs, PS_LIST_TAIL, "-comment", 0, "define comment", NULL); 222 // last_fileset gets updated by -updatercrun 223 // psMetadataAddStr(updatedestinationArgs, PS_LIST_TAIL, "-set_last_fileset",0, "define last_fileset", NULL); 224 psMetadataAddStr(updatedestinationArgs, PS_LIST_TAIL, "-set_state", 0, "define state", NULL); 225 226 // -definetarget 227 psMetadata *definetargetArgs = psMetadataAlloc(); 228 psMetadataAddStr(definetargetArgs, PS_LIST_TAIL, "-obs_mode", 0, "define obs_mode (required)", NULL); 229 psMetadataAddStr(definetargetArgs, PS_LIST_TAIL, "-stage", 0, "define stage (required)", NULL); 230 psMetadataAddBool(definetargetArgs, PS_LIST_TAIL,"-clean", 0, "define clean", false); 231 psMetadataAddStr(definetargetArgs, PS_LIST_TAIL, "-set_state", 0, "define state", NULL); 232 psMetadataAddStr(definetargetArgs, PS_LIST_TAIL, "-comment", 0, "define comment", NULL); 233 234 // -updatetarget 235 psMetadata *updatetargetArgs = psMetadataAlloc(); 236 psMetadataAddS64(updatetargetArgs, PS_LIST_TAIL, "-target_id", 0, "define target_id", 0); 237 psMetadataAddStr(updatetargetArgs, PS_LIST_TAIL, "-obs_mode", 0, "define obs_mode", NULL); 238 psMetadataAddStr(updatetargetArgs, PS_LIST_TAIL, "-stage", 0, "define stage", NULL); 239 psMetadataAddStr(updatetargetArgs, PS_LIST_TAIL, "-set_state", 0, "define state", NULL); 240 241 // -listtarget 242 psMetadata *listtargetArgs = psMetadataAlloc(); 243 psMetadataAddS64(listtargetArgs, PS_LIST_TAIL, "-target_id", 0, "list target with target_id", 0); 244 psMetadataAddStr(listtargetArgs, PS_LIST_TAIL, "-obs_mode", 0, "list targets for obs_mode", NULL); 245 psMetadataAddStr(listtargetArgs, PS_LIST_TAIL, "-stage", 0, "list targets for stage", NULL); 246 psMetadataAddBool(listtargetArgs, PS_LIST_TAIL,"-clean", 0, "list clean targets", false); 247 psMetadataAddBool(listtargetArgs, PS_LIST_TAIL,"-full", 0, "list full targets", false); 248 psMetadataAddStr(listtargetArgs, PS_LIST_TAIL, "-state", 0, "list tarets in state", NULL); 249 psMetadataAddU64(listtargetArgs, PS_LIST_TAIL, "-limit", 0, "limit number of targets listed to N", 0); 250 psMetadataAddBool(listtargetArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 251 252 // -defineinterest 253 psMetadata *defineinterestArgs = psMetadataAlloc(); 254 psMetadataAddS64(defineinterestArgs, PS_LIST_TAIL, "-dest_id", 0, "define dest_id (required)", 0); 255 psMetadataAddS64(defineinterestArgs, PS_LIST_TAIL, "-target_id", 0, "define target_id (required)", 0); 256 psMetadataAddStr(defineinterestArgs, PS_LIST_TAIL, "-set_state", 0, "define state", NULL); 257 258 // -updateinterest 259 psMetadata *updateinterestArgs = psMetadataAlloc(); 260 psMetadataAddS64(updateinterestArgs, PS_LIST_TAIL, "-int_id", 0, "define int_id", 0); 261 psMetadataAddS64(updateinterestArgs, PS_LIST_TAIL, "-dest_id", 0, "define dest_id", 0); 262 psMetadataAddS64(updateinterestArgs, PS_LIST_TAIL, "-target_id", 0, "define target_id", 0); 263 psMetadataAddStr(updateinterestArgs, PS_LIST_TAIL, "-set_state", 0, "define state (required)", NULL); 103 264 104 265 psMetadata *argSets = psMetadataAlloc(); 105 266 psMetadata *modes = psMetadataAlloc(); 106 267 268 PXOPT_ADD_MODE("-definebyquery", "", DISTTOOL_MODE_DEFINEBYQUERY, definebyqueryArgs); 107 269 PXOPT_ADD_MODE("-definerun", "", DISTTOOL_MODE_DEFINERUN, definerunArgs); 108 270 PXOPT_ADD_MODE("-updaterun", "", DISTTOOL_MODE_UPDATERUN, updaterunArgs); … … 110 272 PXOPT_ADD_MODE("-pendingcomponent", "", DISTTOOL_MODE_PENDINGCOMPONENT, pendingcomponentArgs); 111 273 PXOPT_ADD_MODE("-addprocessedcomponent", "", DISTTOOL_MODE_ADDPROCESSEDCOMPONENT, addprocessedcomponentArgs); 112 PXOPT_ADD_MODE("-processedcomponent", "", DISTTOOL_MODE_PROCESSEDCOMPONENT, processedcomponentArgs); 113 PXOPT_ADD_MODE("-toadvance", "", DISTTOOL_MODE_TOADVANCE, toadvanceArgs); 274 PXOPT_ADD_MODE("-processedcomponent", "", DISTTOOL_MODE_PROCESSEDCOMPONENT, processedcomponentArgs); 275 PXOPT_ADD_MODE("-toadvance", "", DISTTOOL_MODE_TOADVANCE, toadvanceArgs); 276 PXOPT_ADD_MODE("-pendingfileset", "", DISTTOOL_MODE_PENDINGFILESET, pendingfilesetArgs); 277 PXOPT_ADD_MODE("-addfileset", "", DISTTOOL_MODE_ADDFILESET, addfilesetArgs); 278 PXOPT_ADD_MODE("-revertfileset", "", DISTTOOL_MODE_REVERTFILESET, revertfilesetArgs); 279 PXOPT_ADD_MODE("-queuercrun", "", DISTTOOL_MODE_QUEUERCRUN, queuercrunArgs); 280 PXOPT_ADD_MODE("-updatercrun", "", DISTTOOL_MODE_UPDATERCRUN, updatercrunArgs); 281 PXOPT_ADD_MODE("-revertrcrun", "", DISTTOOL_MODE_REVERTRCRUN, revertrcrunArgs); 282 PXOPT_ADD_MODE("-pendingdest", "", DISTTOOL_MODE_PENDINGDEST, pendingdestArgs); 283 284 PXOPT_ADD_MODE("-definedsproduct", "", DISTTOOL_MODE_DEFINEDSPRODUCT, definedsproductArgs); 285 PXOPT_ADD_MODE("-updatedsproduct", "", DISTTOOL_MODE_UPDATEDSPRODUCT, updatedsproductArgs); 286 // PXOPT_ADD_MODE("-listdsproduct", "", DISTTOOL_MODE_LISTDSPRODUCT, updatedsproductArgs); 287 288 PXOPT_ADD_MODE("-definedestination", "", DISTTOOL_MODE_DEFINEDESTINATION, definedestinationArgs); 289 PXOPT_ADD_MODE("-updatedestination", "", DISTTOOL_MODE_UPDATEDESTINATION, updatedestinationArgs); 290 // PXOPT_ADD_MODE("-listdestination", "", DISTTOOL_MODE_LISTDESTINATION, listdestinationArgs); 291 292 PXOPT_ADD_MODE("-definetarget", "", DISTTOOL_MODE_DEFINETARGET, definetargetArgs); 293 PXOPT_ADD_MODE("-updatetarget", "", DISTTOOL_MODE_UPDATETARGET, updatetargetArgs); 294 PXOPT_ADD_MODE("-listtarget", "", DISTTOOL_MODE_LISTTARGET, listtargetArgs); 295 296 PXOPT_ADD_MODE("-defineinterest", "", DISTTOOL_MODE_DEFINEINTEREST, defineinterestArgs); 297 PXOPT_ADD_MODE("-updateinterest", "", DISTTOOL_MODE_UPDATEINTEREST, updateinterestArgs); 298 // PXOPT_ADD_MODE("-listinterest", "", DISTTOOL_MODE_LISTINTEREST, listinterestArgs); 114 299 115 300 if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) { -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/faketool.c
r23352 r24244 128 128 PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "dateobs", "<="); 129 129 PXOPT_COPY_STR(config->args, where, "-exp_tag", "exp_tag", "=="); 130 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");130 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 131 131 PXOPT_COPY_STR(config->args, where, "-filelevel", "filelevel", "=="); 132 132 PXOPT_COPY_STR(config->args, where, "-reduction", "reduction", "=="); … … 227 227 psFree(output); 228 228 return false; 229 } 230 231 // if end_stage is warp (or NULL), check for valid tess_id 232 for (long i = 0; i < psArrayLength(output); i++) { 233 psMetadata *md = output->data[i]; 234 235 bool status; 236 char *end_stage = psMetadataLookupStr(&status, md, "end_stage"); 237 if (end_stage && strcasecmp(end_stage, "warp")) continue; 238 239 char *raw_tess_id = psMetadataLookupStr(&status, md, "tess_id"); 240 if (raw_tess_id || tess_id) continue; 241 242 char *label = psMetadataLookupStr(&status, md, "label"); 243 psS64 exp_id = psMetadataLookupS64(&status, md, "exp_id"); 244 245 if (!status) { 246 psError(PS_ERR_UNKNOWN, false, "cannot queue analysis to WARP without a defined tess id: label: %s, exp_id %" PRId64, label, exp_id); 247 psFree(output); 248 return false; 249 } 229 250 } 230 251 … … 355 376 356 377 psMetadata *where = psMetadataAlloc(); 378 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 357 379 PXOPT_COPY_S64(config->args, where, "-fake_id", "fake_id", "=="); 358 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");359 380 PXOPT_COPY_S64(config->args, where, "-cam_id", "cam_id", "=="); 360 381 PXOPT_COPY_S64(config->args, where, "-chip_id", "chip_id", "=="); … … 421 442 psMetadata *where = psMetadataAlloc(); 422 443 PXOPT_COPY_S64(config->args, where, "-fake_id", "fake_id", "=="); 423 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");444 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 424 445 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 425 446 PXOPT_COPY_STR(config->args, where, "-class_id", "rawImfile.class_id", "=="); … … 496 517 497 518 // default values 498 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);519 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 499 520 500 521 if (!psDBTransaction(config->dbh)) { … … 513 534 path_base, 514 535 "full", 515 code,536 fault, 516 537 NULL // epoch 517 538 )) { … … 542 563 543 564 psMetadata *where = psMetadataAlloc(); 544 PXOPT_COPY_S64(config->args, where, "-fake_id", "fake Run.fake_id", "==");565 PXOPT_COPY_S64(config->args, where, "-fake_id", "fake_id", "=="); 545 566 PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "=="); 546 567 PXOPT_COPY_STR(config->args, where, "-class_id", "rawImfile.class_id", "=="); … … 687 708 PS_ASSERT_PTR_NON_NULL(config, false); 688 709 689 PXOPT_LOOKUP_S16( code, config->args, "-code", true, false);710 PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false); 690 711 691 712 psMetadata *where = psMetadataAlloc(); … … 693 714 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 694 715 695 if (!pxSetFaultCode(config->dbh, "fakeProcessedImfile", where, code)) {716 if (!pxSetFaultCode(config->dbh, "fakeProcessedImfile", where, fault)) { 696 717 psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag"); 697 718 psFree(where); … … 874 895 875 896 psMetadata *where = psMetadataAlloc(); 876 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");897 pxAddLabelSearchArgs (config, where, "-label", "fakeRun.label", "=="); 877 898 878 899 psString query = pxDataGet("faketool_pendingcleanuprun.sql"); … … 939 960 PXOPT_COPY_S64(config->args, where, "-fake_id", "fake_id", "=="); 940 961 } 941 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");962 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 942 963 943 964 psString query = pxDataGet("faketool_pendingcleanupimfile.sql"); … … 1058 1079 psMetadata *where = psMetadataAlloc(); 1059 1080 PXOPT_COPY_S64(config->args, where, "-fake_id", "fake_id", "=="); 1060 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");1081 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 1061 1082 1062 1083 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 1238 1259 1239 1260 int numExportTables = 2; 1240 1261 1241 1262 PS_ASSERT_PTR_NON_NULL(config, NULL); 1242 1263 … … 1244 1265 PXOPT_LOOKUP_STR(outfile, config->args, "-outfile", true, false); 1245 1266 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1267 PXOPT_LOOKUP_BOOL(clean, config->args, "-clean", false); 1246 1268 1247 1269 FILE *f = fopen (outfile, "w"); … … 1292 1314 } 1293 1315 if (!psArrayLength(output)) { 1294 ps Trace("regtool", PS_LOG_INFO, "no rows found");1316 psError(PS_ERR_UNKNOWN, true, "no rows found"); 1295 1317 psFree(output); 1296 return true; 1318 return false; 1319 } 1320 1321 if (clean) { 1322 if (!strcmp(tables[i].tableName, "fakeRun")) { 1323 if(!pxSetStateCleaned("fakeRun", "state", output)) { 1324 psFree(output); 1325 psError(PS_ERR_UNKNOWN, false, "pxSetStateClean failed for table %s", tables[i].tableName); 1326 return false; 1327 } 1328 } 1297 1329 } 1298 1330 … … 1316 1348 1317 1349 PS_ASSERT_PTR_NON_NULL(config, NULL); 1318 1350 1319 1351 PXOPT_LOOKUP_STR(infile, config->args, "-infile", true, false); 1320 1352 -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/faketoolConfig.c
r23352 r24244 54 54 psMetadataAddTime(queueArgs, PS_LIST_TAIL, "-dateobs_end", 0, "search for exposures by time (<)", NULL); 55 55 psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-exp_tag", 0, "search by exp_tag", NULL); 56 psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-label", 0,"search by label", NULL);56 psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label", NULL); 57 57 psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-exp_type", 0, "search by exp_type", "object"); 58 58 psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-filelevel", 0, "search by filelevel", NULL); … … 148 148 psMetadata *pendingexpArgs = psMetadataAlloc(); 149 149 psMetadataAddS64(pendingexpArgs, PS_LIST_TAIL, "-fake_id", 0, "search by fake ID", 0); 150 psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-label", 0, "search by label", NULL);150 psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label", NULL); 151 151 psMetadataAddS64(pendingexpArgs, PS_LIST_TAIL, "-cam_id", 0, "search by camtool ID", 0); 152 152 psMetadataAddS64(pendingexpArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chiptool ID", 0); … … 157 157 psMetadata *pendingimfileArgs = psMetadataAlloc(); 158 158 psMetadataAddS64(pendingimfileArgs, PS_LIST_TAIL, "-fake_id", 0, "search by fake ID", 0); 159 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-label", 0, "search by label", NULL);159 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label", NULL); 160 160 psMetadataAddS64(pendingimfileArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure ID", 0); 161 161 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); … … 175 175 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-hostname", 0, "define hostname", NULL); 176 176 psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-path_base", 0, "define base output location", NULL); 177 psMetadataAddS16(addprocessedimfileArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);177 psMetadataAddS16(addprocessedimfileArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 178 178 179 179 // -processedimfile … … 193 193 psMetadataAddS64(updateprocessedimfileArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure ID", 0); 194 194 psMetadataAddStr(updateprocessedimfileArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 195 psMetadataAddS16(updateprocessedimfileArgs, PS_LIST_TAIL, "- code", 0, "set fault code (required)", 0);195 psMetadataAddS16(updateprocessedimfileArgs, PS_LIST_TAIL, "-fault", 0, "set fault code (required)", 0); 196 196 197 197 // -revertprocessedimfile … … 239 239 240 240 psMetadataAddBool(revertprocessedimfileArgs, PS_LIST_TAIL, "-all", 0, "allow everything to be queued without search terms", false); 241 psMetadataAddS16(revertprocessedimfileArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);241 psMetadataAddS16(revertprocessedimfileArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 242 242 243 243 … … 245 245 psMetadata *advanceexpArgs = psMetadataAlloc(); 246 246 psMetadataAddS64(advanceexpArgs, PS_LIST_TAIL, "-fake_id", 0, "search by fake ID", 0); 247 psMetadataAddStr(advanceexpArgs, PS_LIST_TAIL, "-label", 0,"search by label ", NULL);247 psMetadataAddStr(advanceexpArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label ", NULL); 248 248 psMetadataAddU64(advanceexpArgs, PS_LIST_TAIL, "-limit", 0, "limit exposures to advance to N items", 0); 249 249 … … 270 270 // -pendingcleanuprun 271 271 psMetadata *pendingcleanuprunArgs = psMetadataAlloc(); 272 psMetadataAddStr(pendingcleanuprunArgs, PS_LIST_TAIL, "-label", 0,"list blocks for specified label", NULL);272 psMetadataAddStr(pendingcleanuprunArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "list blocks for specified label", NULL); 273 273 psMetadataAddBool(pendingcleanuprunArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 274 274 psMetadataAddU64(pendingcleanuprunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 276 276 // -pendingcleanupimfile 277 277 psMetadata *pendingcleanupimfileArgs = psMetadataAlloc(); 278 psMetadataAddStr(pendingcleanupimfileArgs, PS_LIST_TAIL, "-label", 0,"list blocks for specified label", NULL);278 psMetadataAddStr(pendingcleanupimfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "list blocks for specified label", NULL); 279 279 psMetadataAddS64(pendingcleanupimfileArgs, PS_LIST_TAIL, "-fake_id", 0, "search by chip ID", 0); 280 280 psMetadataAddBool(pendingcleanupimfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); … … 306 306 psMetadataAddStr(exportrunArgs, PS_LIST_TAIL, "-outfile", 0, "export to this file (required)", NULL); 307 307 psMetadataAddU64(exportrunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 308 psMetadataAddBool(exportrunArgs, PS_LIST_TAIL, "-clean", 0, "mark tables as cleaned", false); 308 309 309 310 // -importrun -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/flatcorr.c
r23352 r24244 535 535 PXOPT_LOOKUP_BOOL(limit, config->args, "-limit", false); 536 536 537 psMetadata *where = psMetadataAlloc(); 538 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 539 537 540 psString query = pxDataGet("flatcorr_pendingprocess.sql"); 538 541 if (!query) { … … 540 543 return false; 541 544 } 545 546 if (where && psListLength(where->list)) { 547 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 548 psStringAppend(&query, " AND %s", whereClause); 549 psFree(whereClause); 550 } 551 psFree(where); 542 552 543 553 // treat limit == 0 as "no limit" … … 761 771 762 772 psMetadata *where = psMetadataAlloc(); 763 PXOPT_COPY_S64(config->args, where, "-co or_id", "corr_id", "==");773 PXOPT_COPY_S64(config->args, where, "-corr_id", "corr_id", "=="); 764 774 765 775 ExportTable tables [] = { 766 {"flatcorrRun", "flatcorr tool_export_run.sql"},767 {"flatcorrCamLink", "flatcorr tool_export_cam_link.sql"},776 {"flatcorrRun", "flatcorr_export_run.sql"}, 777 {"flatcorrCamLink", "flatcorr_export_cam_link.sql"}, 768 778 {"flatcorrChipLink", "flatcorr_export_chip_link.sql"}, 769 779 }; -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/flatcorrConfig.c
r23352 r24244 101 101 psMetadataAddU64 (pendingprocessArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 102 102 psMetadataAddBool(pendingprocessArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 103 psMetadataAddStr(pendingprocessArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label", NULL); 103 104 104 105 // -addprocess (XXX need to add fault and stats) -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/magicdstool.c
r23594 r24244 398 398 PXOPT_COPY_S64(config->args, where, "-magic_ds_id", "magic_ds_id", "=="); 399 399 PXOPT_COPY_S64(config->args, where, "-magic_id", "magic_id", "=="); 400 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");400 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 401 401 402 402 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 599 599 600 600 // default values 601 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);601 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 602 602 PXOPT_LOOKUP_STR(backup_path_base, config->args, "-backup_path_base", false, false); 603 603 PXOPT_LOOKUP_STR(recovery_path_base, config->args, "-recovery_path_base", false, false); 604 604 PXOPT_LOOKUP_BOOL(setmagicked, config->args, "-setmagicked", false); 605 605 606 if (setmagicked && ( code!= 0)) {606 if (setmagicked && (fault != 0)) { 607 607 psError(PS_ERR_UNKNOWN, true, " cannot setmagicked for faulted file"); 608 608 return false; … … 625 625 } 626 626 627 if (!magicDSFileInsert(config->dbh, magic_ds_id, component, backup_path_base, recovery_path_base, code)) {627 if (!magicDSFileInsert(config->dbh, magic_ds_id, component, backup_path_base, recovery_path_base, fault)) { 628 628 // rollback 629 629 if (!psDBRollback(config->dbh)) { … … 781 781 PXOPT_COPY_S64(config->args, where, "-magic_ds_id", "magic_ds_id", "=="); 782 782 PXOPT_COPY_STR(config->args, where, "-component", "component", "=="); 783 PXOPT_COPY_S16(config->args, where, "- code", "fault", "==");783 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 784 784 785 785 psString query = psStringCopy("DELETE FROM magicDSFile WHERE fault != 0"); -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/magicdstoolConfig.c
r23594 r24244 88 88 psMetadataAddS64(todestreakArgs, PS_LIST_TAIL, "-magic_ds_id", 0, "search by magic Destreak ID", 0); 89 89 psMetadataAddS64(todestreakArgs, PS_LIST_TAIL, "-magic_id", 0, "search by magic ID", 0); 90 psMetadataAddStr(todestreakArgs, PS_LIST_TAIL, "-label", 0, "define label", NULL);90 psMetadataAddStr(todestreakArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "define label", NULL); 91 91 psMetadataAddU64(todestreakArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 92 92 psMetadataAddBool(todestreakArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); … … 99 99 psMetadataAddStr(adddestreakedfileArgs, PS_LIST_TAIL, "-recovery_path_base", 0, "define recovery pixels URI", NULL); 100 100 psMetadataAddBool(adddestreakedfileArgs, PS_LIST_TAIL, "-setmagicked", 0, "update the magicked state of the file", false); 101 psMetadataAddS16(adddestreakedfileArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);101 psMetadataAddS16(adddestreakedfileArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 102 102 103 103 // -revertdestreakedfile … … 105 105 psMetadataAddS64(revertdestreakedfileArgs, PS_LIST_TAIL, "-magic_ds_id", 0, "search by magictool de-streak ID", 0); 106 106 psMetadataAddStr(revertdestreakedfileArgs, PS_LIST_TAIL, "-component", 0, "search by component", NULL); 107 psMetadataAddS16(revertdestreakedfileArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);107 psMetadataAddS16(revertdestreakedfileArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 108 108 109 109 // -getskycells … … 125 125 PXOPT_ADD_MODE("-updaterun", "update state of magic de-streak run", 126 126 MAGICDSTOOL_MODE_UPDATERUN, updaterunArgs); 127 PXOPT_ADD_MODE("-todestreak", "show pending files", 127 PXOPT_ADD_MODE("-todestreak", "show pending files", 128 128 MAGICDSTOOL_MODE_TODESTREAK, todestreakArgs); 129 129 PXOPT_ADD_MODE("-adddestreakedfile", "add a de-streaked file", -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/magictool.c
r23594 r24244 127 127 PXOPT_LOOKUP_TIME(registered, config->args, "-registered", false, false); 128 128 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 129 130 psMetadata *where = psMetadataAlloc(); 131 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 132 PXOPT_COPY_STR(config->args, where, "-diff_label", "diffRun.label", "=="); 133 129 PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false); 130 131 psMetadata *diffWhere = psMetadataAlloc(); // WHERE conditions for diffRuns 132 PXOPT_COPY_STR(config->args, diffWhere, "-diff_label", "diffRun.label", "=="); 133 PXOPT_COPY_S64(config->args, diffWhere, "-diff_id", "diff_id", "=="); 134 135 psMetadata *queryWhere = psMetadataAlloc(); // WHERE conditions for everything else 136 PXOPT_COPY_S64(config->args, queryWhere, "-exp_id", "exp_id", "=="); 134 137 135 138 // Get list of exposures ready to magic … … 146 149 PXOPT_LOOKUP_BOOL(rerun, config->args, "-rerun", false); 147 150 148 psString queryWhere = NULL; // WHERE conditions for entire query 151 psString diffWhereStr = NULL; // WHERE conditions for diffRuns 152 psString queryWhereStr = NULL; // WHERE conditions for entire query 149 153 if (!available) { 150 psStringAppend(& queryWhere, " \nWHEREdiffRun.state = 'full'");151 } else {152 // what if no skycells for the diff run completed?153 } 154 psStringAppend(&diffWhereStr, "\nAND diffRun.state = 'full'"); 155 } 156 // what if no skycells for the diff run completed? 157 154 158 if (!rerun) { 155 const char *newWhere = " magic_id IS NULL"; // String to add 156 if (queryWhere) { 157 psStringAppend(&queryWhere, " AND %s", newWhere); 158 } else { 159 psStringAppend(&queryWhere, "\nWHERE %s", newWhere); 160 } 161 } 159 psStringAppend(&queryWhereStr, "\n%s magic_id IS NULL", queryWhereStr ? "AND" : "WHERE"); 160 } 161 162 162 // now add the user specified qualifiers 163 if (psListLength( where->list)) {164 psString whereClause = psDBGenerateWhereConditionSQL( where, NULL);165 psStringAppend(& queryWhere, "\n%s %s", queryWhere == NULL ? "WHERE" : "AND", whereClause);163 if (psListLength(diffWhere->list)) { 164 psString whereClause = psDBGenerateWhereConditionSQL(diffWhere, NULL); 165 psStringAppend(&diffWhereStr, "\nAND %s", whereClause); 166 166 psFree(whereClause); 167 167 } 168 psFree(where); 169 if (!queryWhere) { 170 psStringAppend(&queryWhere, " "); 171 } 172 173 if (!p_psDBRunQueryF(config->dbh, query, queryWhere)) { 168 if (psListLength(queryWhere->list)) { 169 psString whereClause = psDBGenerateWhereConditionSQL(queryWhere, NULL); 170 psStringAppend(&queryWhereStr, "\n%s %s", queryWhereStr ? "AND" : "WHERE", whereClause); 171 psFree(whereClause); 172 } 173 psFree(diffWhere); 174 psFree(queryWhere); 175 176 // Ensure the WHERE strings have something 177 if (!diffWhereStr) { 178 diffWhereStr = psStringCopy(""); 179 } 180 if (!queryWhereStr) { 181 queryWhereStr = psStringCopy(""); 182 } 183 184 if (!p_psDBRunQueryF(config->dbh, query, diffWhereStr, diffWhereStr, queryWhereStr)) { 174 185 psError(PS_ERR_UNKNOWN, false, "database error"); 175 psFree(queryWhere); 186 psFree(diffWhereStr); 187 psFree(queryWhereStr); 176 188 psFree(query); 177 189 return false; 178 190 } 179 psFree(queryWhere); 191 psFree(diffWhereStr); 192 psFree(queryWhereStr); 180 193 psFree(query); 181 194 } … … 201 214 } 202 215 216 217 if (pretend) { 218 // negative simple so the default is true 219 if (!ippdbPrintMetadatas(stdout, output, "diffRun", !simple)) { 220 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 221 psFree(output); 222 return false; 223 } 224 psFree(output); 225 return true; 226 } 227 228 203 229 // Parse the list of exposures ready to magic 204 205 230 if (!psDBTransaction(config->dbh)) { 206 231 psError(PS_ERR_UNKNOWN, false, "database error"); … … 215 240 psS64 exp_id = psMetadataLookupS64(NULL, row, "exp_id"); // Exposure identifier 216 241 psS64 diff_id = psMetadataLookupS64(NULL, row, "diff_id"); // difference identifier 242 bool inverse = psMetadataLookupU64(NULL, row, "inverse"); // Inverse subtraction? Note types! 217 243 218 244 // create a new magicRun for this group 219 magicRunRow *run = magicRunRowAlloc(0, exp_id, diff_id, "new", workdir, "dirty", label, dvodb, registered, 0); 245 magicRunRow *run = magicRunRowAlloc(0, exp_id, diff_id, inverse, "new", workdir, "dirty", label, 246 dvodb, registered, 0); 220 247 if (!run) { 221 248 psAbort("failed to alloc magicRun object"); … … 296 323 297 324 // optional 325 PXOPT_LOOKUP_BOOL(inverse, config->args, "-inverse", false); 298 326 PXOPT_LOOKUP_STR(label, config->args, "-label", false, false); 299 327 PXOPT_LOOKUP_STR(dvodb, config->args, "-dvodb", false, false); … … 305 333 exp_id, 306 334 diff_id ? diff_id : PS_MAX_S64, 335 inverse, 307 336 "reg", // state 308 337 workdir, … … 363 392 // required 364 393 PXOPT_LOOKUP_S64(magic_id, config->args, "-magic_id", true, false); 365 PXOPT_LOOKUP_S64(diff_id, config->args, "-diff_id", true, false);366 394 PXOPT_LOOKUP_STR(node, config->args, "-node", true, false); 367 395 … … 369 397 config->dbh, 370 398 magic_id, 371 diff_id,372 399 node 373 400 ); … … 457 484 psMetadata *where = psMetadataAlloc(); 458 485 PXOPT_COPY_S64(config->args, where, "-magic_id", "magicRun.magic_id", "=="); 459 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");486 pxAddLabelSearchArgs (config, where, "-label", "magicRun.label", "=="); 460 487 461 488 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 535 562 536 563 // default values 537 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);538 539 if ( code> 0) {564 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 565 566 if (fault > 0) { 540 567 char *query = "UPDATE magicRun SET fault = %d, state = 'full' WHERE magic_id = %" PRId64; 541 if (!p_psDBRunQueryF(config->dbh, query, code, magic_id)) {568 if (!p_psDBRunQueryF(config->dbh, query, fault, magic_id)) { 542 569 psError(PS_ERR_UNKNOWN, false, 543 570 "failed to set fault for magic_id %" PRId64, magic_id); … … 561 588 psMetadata *where = psMetadataAlloc(); 562 589 PXOPT_COPY_S64(config->args, where, "-magic_id", "magic_id", "=="); 563 PXOPT_COPY_S16(config->args, where, "- code", "fault", "==");564 565 psString query = psStringCopy("UPDATE magicRun SET fault = 0, state = ' run' WHERE fault != 0");590 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 591 592 psString query = psStringCopy("UPDATE magicRun SET fault = 0, state = 'new' WHERE fault != 0"); 566 593 567 594 if (psListLength(where->list)) { … … 584 611 PS_ASSERT_PTR_NON_NULL(config, false); 585 612 586 psMetadata *where = psMetadataAlloc(); 587 PXOPT_COPY_S64(config->args, where, "-magic_id", "magic_id", "=="); 588 PXOPT_COPY_STR(config->args, where, "-node", "node", "=="); 613 // Regrettably, there are multiple WHERE hooks which call the same things different names 614 psMetadata *templatesWhere = psMetadataAlloc(); // WHERE for selecting template 615 psMetadata *magicWhere = psMetadataAlloc(); // WHERE for selecting magic runs 616 617 PXOPT_COPY_S64(config->args, templatesWhere, "-magic_id", "magicRun.magic_id", "=="); 618 PXOPT_COPY_STR(config->args, templatesWhere, "-node", "diffInputSkyfile.skycell_id", "=="); 619 620 PXOPT_COPY_S64(config->args, magicWhere, "-magic_id", "magicRun.magic_id", "=="); 621 PXOPT_COPY_STR(config->args, magicWhere, "-node", "magicTree.node", "=="); 589 622 590 623 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 597 630 } 598 631 599 if (psListLength(where->list)) { 600 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 601 psStringAppend(&query, " AND %s", whereClause); 632 psString templatesWhereStr = psStringCopy(""); // WHERE for selecting template 633 psString magicWhereStr = psStringCopy(""); // WHERE for selecting magic runs 634 635 if (psListLength(templatesWhere->list)) { 636 psString whereClause = psDBGenerateWhereConditionSQL(templatesWhere, NULL); 637 psStringAppend(&templatesWhereStr, "\nAND %s", whereClause); 602 638 psFree(whereClause); 603 639 } 604 psFree(where); 640 psFree(templatesWhere); 641 642 if (psListLength(magicWhere->list)) { 643 psString whereClause = psDBGenerateWhereConditionSQL(magicWhere, NULL); 644 psStringAppend(&magicWhereStr, "\nWHERE %s", whereClause); 645 psFree(whereClause); 646 } 647 psFree(magicWhere); 605 648 606 649 // treat limit == 0 as "no limit" … … 611 654 } 612 655 613 if (!p_psDBRunQuery(config->dbh, query)) { 614 psError(PS_ERR_UNKNOWN, false, "database error"); 656 if (!p_psDBRunQueryF(config->dbh, query, 657 templatesWhereStr, templatesWhereStr, 658 magicWhereStr, magicWhereStr)) { 659 psError(PS_ERR_UNKNOWN, false, "database error"); 660 psFree(templatesWhereStr); 661 psFree(magicWhereStr); 615 662 psFree(query); 616 663 return false; 617 664 } 665 psFree(templatesWhereStr); 666 psFree(magicWhereStr); 618 667 psFree(query); 619 668 … … 704 753 705 754 bool status = false; 706 psS 32 done = psMetadataLookupS32(&status, data, "done");755 psS64 done = psMetadataLookupS64(&status, data, "done"); 707 756 if (!status) { 708 757 psAbort("failed to lookup value for done column"); 709 758 } 710 psS 16 bad = psMetadataLookupS16(&status, data, "bad");759 psS64 bad = psMetadataLookupS64(&status, data, "bad"); 711 760 if (!status) { 712 761 psAbort("failed to lookup value for bad column"); … … 738 787 739 788 psMetadata *where = psMetadataAlloc(); 740 PXOPT_COPY_S64(config->args, where, "-magic_id", "magic _id", "==");741 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");789 PXOPT_COPY_S64(config->args, where, "-magic_id", "magicRun.magic_id", "=="); 790 pxAddLabelSearchArgs (config, where, "-label", "magicRun.label", "=="); 742 791 743 792 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 793 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 744 794 745 795 // look for "inputs" that need to processed … … 750 800 } 751 801 752 psString where Clause= NULL;802 psString whereString = NULL; 753 803 if (psListLength(where->list)) { 754 whereClause = psDBGenerateWhereConditionSQL(where, NULL); 755 psStringAppend(&query, " AND %s", whereClause); 804 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 805 psStringAppend(&whereString, "\nAND %s", whereClause); 806 psFree(whereClause); 756 807 } 757 808 psFree(where); 758 809 759 if (!p_psDBRunQuery(config->dbh, query)) { 760 psError(PS_ERR_UNKNOWN, false, "database error"); 810 // treat limit == 0 as "no limit" 811 if (limit) { 812 psString limitString = psDBGenerateLimitSQL(limit); 813 psStringAppend(&query, " %s", limitString); 814 psFree(limitString); 815 } 816 817 if (!p_psDBRunQueryF(config->dbh, query, whereString, whereString)) { 818 psError(PS_ERR_UNKNOWN, false, "database error"); 819 psFree(whereString); 761 820 psFree(query); 762 821 return false; … … 782 841 } 783 842 843 if (limit) { 844 if (psArrayLength(output) >= limit) { 845 // we've found enough (note that limit was applied to the query so '> limit' won't happen) 846 // negative simple so the default is true 847 if (!ippdbPrintMetadatas(stdout, output, "magicMe", !simple)) { 848 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 849 psFree(output); 850 return false; 851 } 852 psFree(output); 853 return true; 854 } 855 } 856 784 857 // look for tree nodes that need to be processed 858 // XXX: This gets all nodes from all magicRuns that are in 'new'state 859 // That doens't seem particularly efficient 785 860 query = pxDataGet("magictool_toprocess_tree.sql"); 786 861 if (!query) { … … 789 864 } 790 865 791 if (whereClause) { 792 psString new = NULL; 793 psStringAppend(&new, "\n AND %s", whereClause); 794 psFree(whereClause); 795 whereClause = new; 796 } 797 if (!p_psDBRunQueryF(config->dbh, query, whereClause ? whereClause : "")) { 798 psError(PS_ERR_UNKNOWN, false, "database error"); 799 psFree(whereClause); 866 867 if (!p_psDBRunQueryF(config->dbh, query, whereString ? whereString : "")) { 868 psError(PS_ERR_UNKNOWN, false, "database error"); 869 psFree(whereString); 800 870 psFree(query); 801 871 return false; 802 872 } 803 psFree(where Clause);873 psFree(whereString); 804 874 psFree(query); 805 875 … … 828 898 while (index < psArrayLength(magicTree)) { 829 899 bool status; 900 if (limit && (psArrayLength(output) >= limit)) { 901 break; 902 } 830 903 psS64 current_magic_id = psMetadataLookupS64(&status, magicTree->data[index], "magic_id"); 831 904 if (!status) { … … 879 952 880 953 } 954 psFree(magicTree); 881 955 882 956 if (psArrayLength(output)) { 957 if (limit && (limit < psArrayLength(output))) { 958 // truncate the array 959 long arrayLength = psArrayLength(output); 960 for (long i = arrayLength - 1; i >= limit; i--) { 961 psArrayRemoveIndex(output, i); 962 } 963 } 883 964 // negative simple so the default is true 884 965 if (!ippdbPrintMetadatas(stdout, output, "magicMe", !simple)) { … … 889 970 } 890 971 891 psFree(magicTree);892 972 psFree(output); 893 973 … … 905 985 906 986 // optional 907 PXOPT_LOOKUP_STR( uri, config->args, "-uri", false, false);987 PXOPT_LOOKUP_STR(path_base, config->args, "-path_base", false, false); 908 988 909 989 // default values 910 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);990 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 911 991 912 992 if (!magicNodeResultInsert(config->dbh, 913 993 magic_id, 914 994 node, 915 uri,916 code995 path_base, 996 fault 917 997 )) { 918 998 psError(PS_ERR_UNKNOWN, false, "database error"); … … 930 1010 PXOPT_COPY_S64(config->args, where, "-magic_id", "magic_id", "=="); 931 1011 PXOPT_COPY_STR(config->args, where, "-node", "node", "=="); 932 PXOPT_COPY_S16(config->args, where, "-code", "fault", "=="); 933 934 psString query = psStringCopy("DELETE FROM magicNodeResult WHERE fault != 0"); 1012 PXOPT_COPY_STR(config->args, where, "-label", "label", "=="); 1013 PXOPT_COPY_S16(config->args, where, "-fault", "magicNodeResult.fault", "=="); 1014 1015 psString query = pxDataGet("magictool_revertnode.sql"); 1016 if (!query) { 1017 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1018 return false; 1019 } 935 1020 936 1021 if (psListLength(where->list)) { … … 938 1023 psStringAppend(&query, " AND %s", whereClause); 939 1024 psFree(whereClause); 1025 } else { 1026 psError(PS_ERR_UNKNOWN, false, "search parameters are required"); 1027 psFree(where); 1028 return false; 940 1029 } 941 1030 psFree(where); … … 945 1034 return false; 946 1035 } 1036 1037 psS32 numUpdated = psDBAffectedRows(config->dbh); 1038 psLogMsg("magictool", PS_LOG_INFO, "Updated %d magic nodes", numUpdated); 1039 947 1040 return true; 948 1041 } … … 1024 1117 1025 1118 // default values 1026 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);1119 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 1027 1120 1028 1121 if (!psDBTransaction(config->dbh)) { … … 1035 1128 uri, 1036 1129 streaks, 1037 code1130 fault 1038 1131 )) { 1039 1132 psError(PS_ERR_UNKNOWN, false, "database error"); … … 1081 1174 psMetadata *where = psMetadataAlloc(); 1082 1175 PXOPT_COPY_S64(config->args, where, "-magic_id", "magic_id", "=="); 1083 PXOPT_COPY_S16(config->args, where, "- code", "fault", "==");1176 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 1084 1177 1085 1178 if (!psDBTransaction(config->dbh)) { -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/magictoolConfig.c
r21099 r24244 53 53 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-dvodb", 0, "define dvodb", NULL); 54 54 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-registered", 0, "time detrend run was registered", now); 55 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-diff_id", 0, "search diff_id", 0); 55 56 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-exp_id", 0, "search exp_id", 0); 56 57 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-diff_label", 0, "select diff label", NULL); … … 58 59 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-rerun", 0, "generate new run even if existing?", false); 59 60 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 61 psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-pretend", 0, "list results but do not queue", false); 60 62 61 63 // -definerun … … 65 67 // following argument is for compatability 66 68 psMetadataAddS64(definerunArgs, PS_LIST_TAIL, "-diff_id", 0, "define diff_id", 0); 69 psMetadataAddBool(definerunArgs, PS_LIST_TAIL, "-inverse", 0, "use the inverse subtraction?", false); 67 70 psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-label", 0, "define label", NULL); 68 71 psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-dvodb", 0, "define dvodb", NULL); … … 78 81 psMetadata *addinputskyfileArgs = psMetadataAlloc(); 79 82 psMetadataAddS64(addinputskyfileArgs, PS_LIST_TAIL, "-magic_id", 0, "define magictool ID (required)", 0); 80 psMetadataAddS64(addinputskyfileArgs, PS_LIST_TAIL, "-diff_id", 0, "define difftool ID (required)", 0);81 83 psMetadataAddStr(addinputskyfileArgs, PS_LIST_TAIL, "-node", 0, "define symbolic node name (required)", NULL); 82 84 … … 93 95 psMetadataAddS64(totreeArgs, PS_LIST_TAIL, "-magic_id", 0, "search by magic ID", 0); 94 96 psMetadataAddU64(totreeArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 95 psMetadataAddStr(totreeArgs, PS_LIST_TAIL, "-label", 0, "define label", NULL);97 psMetadataAddStr(totreeArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "define label", NULL); 96 98 psMetadataAddBool(totreeArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 97 99 … … 100 102 psMetadataAddS64(inputtreeArgs, PS_LIST_TAIL, "-magic_id", 0, "define magictool ID (required)", 0); 101 103 psMetadataAddStr(inputtreeArgs, PS_LIST_TAIL, "-dep_file", 0, "order of operations dep. file", NULL); 102 psMetadataAddS16(inputtreeArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);104 psMetadataAddS16(inputtreeArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 103 105 104 106 // -reverttree 105 107 psMetadata *reverttreeArgs = psMetadataAlloc(); 106 108 psMetadataAddS64(reverttreeArgs, PS_LIST_TAIL, "-magic_id", 0, "search by magictool ID", 0); 107 psMetadataAddS16(reverttreeArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);109 psMetadataAddS16(reverttreeArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 108 110 109 111 // -inputs … … 118 120 psMetadataAddS64(toprocessArgs, PS_LIST_TAIL, "-magic_id", 0, "search by magic ID", 0); 119 121 psMetadataAddU64(toprocessArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 120 psMetadataAddStr(toprocessArgs, PS_LIST_TAIL, "-label", 0, "define label", NULL);122 psMetadataAddStr(toprocessArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "define label", NULL); 121 123 psMetadataAddBool(toprocessArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 122 124 … … 125 127 psMetadataAddS64(addresultArgs, PS_LIST_TAIL, "-magic_id", 0, "define magictool ID (required)", 0); 126 128 psMetadataAddStr(addresultArgs, PS_LIST_TAIL, "-node", 0, "define symbolic node name (required)", NULL); 127 psMetadataAddStr(addresultArgs, PS_LIST_TAIL, "- uri", 0, "define URI", NULL);128 psMetadataAddS16(addresultArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);129 psMetadataAddStr(addresultArgs, PS_LIST_TAIL, "-path_base", 0, "define path_base", NULL); 130 psMetadataAddS16(addresultArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 129 131 130 132 // -revertnode … … 132 134 psMetadataAddS64(revertnodeArgs, PS_LIST_TAIL, "-magic_id", 0, "search by magictool ID", 0); 133 135 psMetadataAddStr(revertnodeArgs, PS_LIST_TAIL, "-node", 0, "search by node name", NULL); 134 psMetadataAddS16(revertnodeArgs, PS_LIST_TAIL, "-code", 0, "search by fault code", 0); 136 psMetadataAddStr(revertnodeArgs, PS_LIST_TAIL, "-label",0, "search by label", NULL); 137 psMetadataAddS16(revertnodeArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 135 138 136 139 // -tomask … … 144 147 psMetadataAddStr(addmaskArgs, PS_LIST_TAIL, "-uri", 0, "define URI", NULL); 145 148 psMetadataAddS32(addmaskArgs, PS_LIST_TAIL, "-streaks", 0, "define number of streaks", 0); 146 psMetadataAddS16(addmaskArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);149 psMetadataAddS16(addmaskArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 147 150 148 151 // -revertmask 149 152 psMetadata *revertmaskArgs = psMetadataAlloc(); 150 153 psMetadataAddS64(revertmaskArgs, PS_LIST_TAIL, "-magic_id", 0, "search by magictool ID", 0); 151 psMetadataAddS16(revertmaskArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);154 psMetadataAddS16(revertmaskArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 152 155 153 156 // -mask -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/pxtools.c
r23352 r24244 29 29 { 30 30 PS_ASSERT_PTR_NON_NULL(state, false); 31 31 32 32 if (!strcmp(state, "new")) return true; 33 33 if (!strcmp(state, "reg")) return true; … … 50 50 // 'scrubbed' is a virtual state equivalent to cleaned, but allows files to be removed 51 51 // even if the config files is missing 52 53 54 // change the value for tableName.columName from 'full' to 'cleaned' if necessary 55 bool pxSetStateCleaned(const psString tableName, const psString columnName, psArray *rows) 56 { 57 for (long i = 0; i < psArrayLength(rows); i++) { 58 psMetadata *row = rows->data[i]; 59 psString state = psMetadataLookupStr(NULL, row, columnName); 60 if (!state) { 61 psError(PS_ERR_PROGRAMMING, false, "%s not found in row %ld of table %s", 62 columnName, i, tableName); 63 return false; 64 } 65 if (!strcmp("full", state)) { 66 // change full to cleaned 67 psMetadataAddStr(row, PS_LIST_TAIL, columnName, PS_META_REPLACE, "", "cleaned"); 68 } else if (strcmp("cleaned", state)) { 69 // if state isn't cleaned or full we can't set it to cleaned 70 psError(PS_ERR_PROGRAMMING, true, "%s with state %s may not be exported cleaned", 71 tableName, state); 72 return false; 73 } 74 } 75 return true; 76 } 77 78 // XXX verify data type? 79 bool pxAddLabelSearchArgs (pxConfig *config, psMetadata *where, char *name, char *field, char *op) { 80 81 psMetadataItem *item = psMetadataLookup(config->args, name); 82 if (!item) { 83 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for %s", name); 84 return false; 85 } 86 psAssert (item->type == PS_DATA_METADATA_MULTI, "%s should be a multi container", name); 87 psAssert (item->data.list->n, "%s should at least have a place-holder", name); 88 psMetadataItem *entry = (psMetadataItem *)item->data.list->head->data; 89 psAssert (entry, "%s should at least have a place-holder", name); 90 if (entry->data.str) { 91 psListIterator *iter = psListIteratorAlloc (item->data.list, PS_LIST_HEAD, true); 92 psMetadataItem *item = NULL; 93 while ((item = psListGetAndIncrement(iter))) { 94 // need to change the name and comment 95 psFree (item->name); 96 item->name = psStringCopy (field); 97 psFree (item->comment); 98 item->comment = psStringCopy (op); 99 if (!psMetadataAddItem(where, item, PS_LIST_TAIL, PS_META_DUPLICATE_OK)) { 100 psError(PS_ERR_UNKNOWN, false, "failed to add item %s", field); 101 psFree(where); 102 return false; 103 } 104 } 105 psFree (iter); 106 } 107 return true; 108 } -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/pxtools.h
r23594 r24244 50 50 51 51 bool pxIsValidState(const char *state); 52 bool pxSetStateCleaned(const psString tableName, const psString columnName, psArray *rows); 53 bool pxAddLabelSearchArgs (pxConfig *config, psMetadata *where, char *field, char *name, char *op); 52 54 53 55 bool pxSetFaultCode(psDB *dbh, const char *tableName, psMetadata *where, psS16 code); … … 478 480 } 479 481 482 483 /// Add a primary item to the mirror database 484 /// 485 /// ITEM: Item to add (if it is of the correct type) 486 /// NAME: Name for table, to match item name 487 /// ROWTYPE: Type of the row (type returned by PARSEFUNC) 488 /// PARSEFUNC: Function to parse ITEM and return a ROWTYPE 489 /// IDENTIFIERS: Vector (of type U64) to store identifiers 490 /// IDNAME: Element of the row with U64 identifier 491 /// INSERTFUNC: Function to insert a row into the database 492 /// DATABASE: Database handle 493 /// CLEANUP: Operation(s) to perform to cleanup in case of an error 494 #define PXMIRROR_PRIMARY(ITEM, NAME, ROWTYPE, PARSEFUNC, IDENTIFIERS, IDNAME, INSERTFUNC, DATABASE, CLEANUP) \ 495 if (strcmp((ITEM)->name, NAME) == 0) { \ 496 if ((ITEM)->type != PS_DATA_METADATA) { \ 497 psError(PS_ERR_BAD_PARAMETER_TYPE, true, "Entry %s is not of type METADATA", (ITEM)->name); \ 498 CLEANUP; \ 499 return false; \ 500 } \ 501 ROWTYPE *row = PARSEFUNC((ITEM)->data.md); /* Row to insert */ \ 502 if (!row) { \ 503 psError(PS_ERR_UNEXPECTED_NULL, false, "Unable to generate %s row from metadata", (ITEM)->name); \ 504 CLEANUP; \ 505 return false; \ 506 } \ 507 if (!INSERTFUNC(DATABASE, row)) { \ 508 psError(PS_ERR_UNKNOWN, false, "Unable to add %s %" PRIu64, (ITEM)->name, row->IDNAME); \ 509 psFree(row); \ 510 CLEANUP; \ 511 return false; \ 512 } \ 513 psVectorAppend((IDENTIFIERS), row->IDNAME); \ 514 psFree(row); \ 515 } 516 517 /// Add a dependent item to the mirror database 518 /// 519 /// ITEM: Item to add (if it is of the correct type) 520 /// NAME: Name for table, to match item name 521 /// ROWTYPE: Type of the row (type returned by PARSEFUNC) 522 /// PARSEFUNC: Function to parse ITEM and return a ROWTYPE 523 /// IDENTIFIERS: Vector (of type U64) to check identifiers 524 /// IDNAME: Element of the row with U64 identifier 525 /// INSERTFUNC: Function to insert a row into the database 526 /// DATABASE: Database handle 527 /// CLEANUP: Operation(s) to perform to cleanup in case of an error 528 #define PXMIRROR_OTHER(ITEM, NAME, ROWTYPE, PARSEFUNC, IDENTIFIERS, IDNAME, INSERTFUNC, DATABASE, CLEANUP) \ 529 if (strcmp((ITEM)->name, NAME) == 0) { \ 530 if ((ITEM)->type != PS_DATA_METADATA) { \ 531 psError(PS_ERR_BAD_PARAMETER_TYPE, true, "Entry %s is not of type METADATA", (ITEM)->name); \ 532 CLEANUP; \ 533 return false; \ 534 } \ 535 ROWTYPE *row = PARSEFUNC(item->data.md); /* Row to insert */ \ 536 if (!row) { \ 537 psError(PS_ERR_UNEXPECTED_NULL, false, "Unable to generate %s row from metadata", (ITEM)->name); \ 538 CLEANUP; \ 539 return false; \ 540 } \ 541 bool found = false; /* Found the identifier? */ \ 542 for (int i = 0; i < (IDENTIFIERS)->n && !found; i++) { \ 543 if (row->IDNAME == (IDENTIFIERS)->data.U64[i]) { \ 544 found = true; \ 545 break; \ 546 } \ 547 } \ 548 if (!found) { \ 549 psError(PS_ERR_BAD_PARAMETER_VALUE, true, "Identifier not found for %s %" PRIu64, \ 550 (ITEM)->name, row->IDNAME); \ 551 psFree(row); \ 552 CLEANUP; \ 553 return false; \ 554 } \ 555 if (!INSERTFUNC(DATABASE, row)) { \ 556 psError(PS_ERR_UNKNOWN, false, "Unable to add %s %" PRIu64, (ITEM)->name, row->IDNAME); \ 557 psFree(row); \ 558 CLEANUP; \ 559 return false; \ 560 } \ 561 psFree(row); \ 562 } 563 480 564 #endif // PXTOOLS_H -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/pxtoolsErrorCodes.dat
r11268 r24244 2 2 # This file is used to generate pxtoolsErrorCodes.h 3 3 # 4 BASE = 1100 First value we use; lower values belong to psLib5 UNKNOWN Unknown PMerror code4 BASE = 9000 First value we use; lower values belong to psLib 5 UNKNOWN Unknown ippTools error code 6 6 ARGUMENTS Incorrect arguments 7 7 SYS System error -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/pxtoolsErrorCodes.h.in
r11037 r24244 9 9 */ 10 10 typedef enum { 11 PXTOOLS_ERR_BASE = 512,11 PXTOOLS_ERR_BASE = 9000, 12 12 PXTOOLS_ERR_${ErrorCode}, 13 13 PXTOOLS_ERR_NERROR -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/pxwarp.c
r23594 r24244 28 28 #include "pxtools.h" 29 29 #include "pxwarp.h" 30 31 bool pxwarpSetSearchArgs (psMetadata *md) {32 psMetadataAddS64(md, PS_LIST_TAIL, "-fake_id", 0, "search by fake_id", 0);33 psMetadataAddS64(md, PS_LIST_TAIL, "-cam_id", 0, "search by cam_id", 0);34 psMetadataAddS64(md, PS_LIST_TAIL, "-chip_id", 0, "search by chip_id", 0);35 psMetadataAddS64(md, PS_LIST_TAIL, "-exp_id", 0, "search by exp_id", 0);36 psMetadataAddStr(md, PS_LIST_TAIL, "-exp_name", 0, "search by exp_name", NULL);37 psMetadataAddStr(md, PS_LIST_TAIL, "-inst", 0, "search for camera", NULL);38 psMetadataAddStr(md, PS_LIST_TAIL, "-telescope", 0, "search for telescope", NULL);39 psMetadataAddTime(md, PS_LIST_TAIL, "-dateobs_begin", 0, "search for exposures by time (>=)", NULL);40 psMetadataAddTime(md, PS_LIST_TAIL, "-dateobs_end", 0, "search for exposures by time (<)", NULL);41 psMetadataAddStr(md, PS_LIST_TAIL, "-exp_tag", 0, "search by exp_tag", NULL);42 psMetadataAddStr(md, PS_LIST_TAIL, "-exp_type", 0, "search by exp_type", NULL);43 psMetadataAddStr(md, PS_LIST_TAIL, "-filelevel", 0, "search by filelevel", NULL);44 psMetadataAddStr(md, PS_LIST_TAIL, "-filter", 0, "search for filter", NULL);45 psMetadataAddF64(md, PS_LIST_TAIL, "-airmass_min", 0, "search by min airmass", NAN);46 psMetadataAddF64(md, PS_LIST_TAIL, "-airmass_max", 0, "search by max airmass", NAN);47 psMetadataAddF64(md, PS_LIST_TAIL, "-ra_min", 0, "search by min", NAN);48 psMetadataAddF64(md, PS_LIST_TAIL, "-ra_max", 0, "search by max", NAN);49 psMetadataAddF64(md, PS_LIST_TAIL, "-decl_min", 0, "search by min", NAN);50 psMetadataAddF64(md, PS_LIST_TAIL, "-decl_max", 0, "search by max", NAN);51 psMetadataAddF32(md, PS_LIST_TAIL, "-exp_time_min", 0, "search by min", NAN);52 psMetadataAddF32(md, PS_LIST_TAIL, "-exp_time_max", 0, "search by max", NAN);53 psMetadataAddF32(md, PS_LIST_TAIL, "-sat_pixel_frac_min", 0, "search by max fraction of saturated pixels", NAN);54 psMetadataAddF32(md, PS_LIST_TAIL, "-sat_pixel_frac_max", 0, "search by min fraction of saturated pixels", NAN);55 psMetadataAddF64(md, PS_LIST_TAIL, "-bg_min", 0, "search by max", NAN);56 psMetadataAddF64(md, PS_LIST_TAIL, "-bg_max", 0, "search by max", NAN);57 psMetadataAddF64(md, PS_LIST_TAIL, "-bg_stdev_min", 0, "search by max", NAN);58 psMetadataAddF64(md, PS_LIST_TAIL, "-bg_stdev_max", 0, "search by max", NAN);59 psMetadataAddF64(md, PS_LIST_TAIL, "-bg_mean_stdev_min", 0, "search by max", NAN);60 psMetadataAddF64(md, PS_LIST_TAIL, "-bg_mean_stdev_max", 0, "search by max", NAN);61 psMetadataAddF64(md, PS_LIST_TAIL, "-alt_min", 0, "search by min", NAN);62 psMetadataAddF64(md, PS_LIST_TAIL, "-alt_max", 0, "search by max", NAN);63 psMetadataAddF64(md, PS_LIST_TAIL, "-az_min", 0, "search by min", NAN);64 psMetadataAddF64(md, PS_LIST_TAIL, "-az_max", 0, "search by max", NAN);65 psMetadataAddF32(md, PS_LIST_TAIL, "-ccd_temp_min", 0, "search by min ccd tempature", NAN);66 psMetadataAddF32(md, PS_LIST_TAIL, "-ccd_temp_max", 0, "search by max ccd tempature", NAN);67 psMetadataAddF64(md, PS_LIST_TAIL, "-posang_min", 0, "search by min rotator position angle", NAN);68 psMetadataAddF64(md, PS_LIST_TAIL, "-posang_max", 0, "search by max rotator position angle", NAN);69 psMetadataAddStr(md, PS_LIST_TAIL, "-object", 0, "search by exposure object", NULL);70 psMetadataAddF32(md, PS_LIST_TAIL, "-solang_min", 0, "search by min solar angle", NAN);71 psMetadataAddF32(md, PS_LIST_TAIL, "-solang_max", 0, "search by max solar angle", NAN);72 return true;73 }74 75 bool pxwarpGetSearchArgs (pxConfig *config, psMetadata *where) {76 PXOPT_COPY_S64(config->args, where, "-fake_id", "fakeRun.fake_id", "==");77 PXOPT_COPY_S64(config->args, where, "-cam_id", "camRun.cam_id", "==");78 PXOPT_COPY_S64(config->args, where, "-chip_id", "chipRun.chip_id", "==");79 PXOPT_COPY_S64(config->args, where, "-exp_id", "newExp.exp_id", "==");80 PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "==");81 PXOPT_COPY_STR(config->args, where, "-inst", "rawExp.camera", "==");82 PXOPT_COPY_STR(config->args, where, "-telescope", "rawExp.telescope", "==");83 PXOPT_COPY_TIME(config->args, where, "-dateobs_begin", "rawExp.dateobs", ">=");84 PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "rawExp.dateobs", "<=");85 PXOPT_COPY_STR(config->args, where, "-exp_tag", "rawExp.exp_tag", "==");86 PXOPT_COPY_STR(config->args, where, "-exp_type", "rawExp.exp_type", "==");87 PXOPT_COPY_STR(config->args, where, "-filelevel", "rawExp.filelevel", "==");88 PXOPT_COPY_STR(config->args, where, "-filter", "rawExp.filter", "==");89 PXOPT_COPY_F64(config->args, where, "-airmass_min", "rawExp.airmass", ">=");90 PXOPT_COPY_F64(config->args, where, "-airmass_max", "rawExp.airmass", "<");91 PXOPT_COPY_F64(config->args, where, "-ra_min", "rawExp.ra", ">=");92 PXOPT_COPY_F64(config->args, where, "-ra_max", "rawExp.ra", "<");93 PXOPT_COPY_F64(config->args, where, "-decl_min", "rawExp.decl", ">=");94 PXOPT_COPY_F64(config->args, where, "-decl_max", "rawExp.decl", "<");95 PXOPT_COPY_F32(config->args, where, "-exp_time_min", "rawExp.exp_time", ">=");96 PXOPT_COPY_F32(config->args, where, "-exp_time_max", "rawExp.exp_time", "<");97 PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_min", "rawExp.sat_pixel_frac", ">=");98 PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_max", "rawExp.sat_pixel_frac", "<");99 PXOPT_COPY_F64(config->args, where, "-bg_min", "rawExp.bg", ">=");100 PXOPT_COPY_F64(config->args, where, "-bg_max", "rawExp.bg", "<");101 PXOPT_COPY_F64(config->args, where, "-bg_stdev_min", "rawExp.bg_stdev", ">=");102 PXOPT_COPY_F64(config->args, where, "-bg_stdev_max", "rawExp.bg_stdev", "<");103 PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_min", "rawExp.bg_mean_stdev", ">=");104 PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_max", "rawExp.bg_mean_stdev", "<");105 PXOPT_COPY_F64(config->args, where, "-alt_min", "rawExp.alt", ">=");106 PXOPT_COPY_F64(config->args, where, "-alt_max", "rawExp.alt", "<");107 PXOPT_COPY_F64(config->args, where, "-az_min", "rawExp.az", ">=");108 PXOPT_COPY_F64(config->args, where, "-az_max", "rawExp.az", "<");109 PXOPT_COPY_F32(config->args, where, "-ccd_temp_min", "rawExp.ccd_temp", ">=");110 PXOPT_COPY_F32(config->args, where, "-ccd_temp_max", "rawExp.ccd_temp", "<");111 PXOPT_COPY_F64(config->args, where, "-posang_min", "rawExp.posang", ">=");112 PXOPT_COPY_F64(config->args, where, "-posang_max", "rawExp.posang", "<");113 PXOPT_COPY_STR(config->args, where, "-object", "rawExp.object", "==");114 PXOPT_COPY_F32(config->args, where, "-solang_min", "rawExp.solang", ">=");115 PXOPT_COPY_F32(config->args, where, "-solang_max", "rawExp.solang", "<");116 return true;117 }118 30 119 31 bool pxwarpRunSetState(pxConfig *config, psS64 warp_id, const char *state) -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/pxwarp.h
r23594 r24244 25 25 #include "pxtools.h" 26 26 27 bool pxwarpGetSearchArgs (pxConfig *config, psMetadata *where);28 bool pxwarpSetSearchArgs (psMetadata *md);29 30 27 bool pxwarpRunSetState(pxConfig *config, psS64 warp_id, const char *state); 31 28 bool pxwarpRunSetStateByQuery(pxConfig *config, psMetadata *where, const char *state); -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/pztool.c
r23594 r24244 338 338 // a lot simplier than a complicated scheme (tried that) to attempt to 339 339 // request on the right number of rows for each camera 340 340 341 341 // treat limit == 0 as "no limit" 342 342 if (limit) { … … 403 403 404 404 // default values 405 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);405 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 406 406 407 407 // start a transaction early so it will contain any row level locks … … 410 410 return false; 411 411 } 412 412 413 413 // query to get an excluse lock on this exposure in 414 414 // pzDownloadExp … … 421 421 PXOPT_COPY_STR(config->args, where, "-inst", "camera", "=="); 422 422 PXOPT_COPY_STR(config->args, where, "-telescope", "telescope", "=="); 423 423 424 424 if (psListLength(where->list)) { 425 425 psString whereClause = psDBGenerateWhereSQL(where, NULL); … … 455 455 class_id, 456 456 uri, 457 code,457 fault, 458 458 NULL, // epoch 459 459 hostname … … 605 605 psError(PS_ERR_UNKNOWN, false, "database error"); 606 606 return false; 607 } 607 } 608 608 609 609 // sanity check: we should have inserted at least one row … … 675 675 // init 676 676 long counter = 0, // the total number of elements zipped so far 677 i = 0, // which array in the set 677 i = 0, // which array in the set 678 678 index = 0; // the depth into each array 679 679 // test … … 782 782 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 783 783 784 PXOPT_LOOKUP_S16( code, config->args, "-code", true, false);785 786 if (!pxSetFaultCode(config->dbh, "pzDownloadImfile", where, code)) {784 PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false); 785 786 if (!pxSetFaultCode(config->dbh, "pzDownloadImfile", where, fault)) { 787 787 psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag"); 788 psFree (where);789 return false;788 psFree (where); 789 return false; 790 790 } 791 791 psFree(where); -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/pztoolConfig.c
r23594 r24244 45 45 // -adddatastore 46 46 psMetadata *adddatastoreArgs = psMetadataAlloc(); 47 psMetadataAddStr(adddatastoreArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID", NULL); 48 psMetadataAddStr(adddatastoreArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID", NULL); 47 psMetadataAddStr(adddatastoreArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID", NULL); 48 psMetadataAddStr(adddatastoreArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID", NULL); 49 49 psMetadataAddStr(adddatastoreArgs, PS_LIST_TAIL, "-uri", 0, "define storage uri", NULL); 50 50 51 51 // -datastore 52 52 psMetadata *datastoreArgs = psMetadataAlloc(); … … 55 55 // -seen 56 56 psMetadata *seenArgs = psMetadataAlloc(); 57 psMetadataAddStr(seenArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID", NULL); 58 psMetadataAddStr(seenArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID", NULL); 59 psMetadataAddStr(seenArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID", NULL); 60 psMetadataAddStr(seenArgs, PS_LIST_TAIL, "-exp_type", 0, "define exposure type", NULL); 57 psMetadataAddStr(seenArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID", NULL); 58 psMetadataAddStr(seenArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID", NULL); 59 psMetadataAddStr(seenArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID", NULL); 60 psMetadataAddStr(seenArgs, PS_LIST_TAIL, "-exp_type", 0, "define exposure type", NULL); 61 61 psMetadataAddBool(seenArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 62 62 63 63 // -pendingexp 64 64 psMetadata *pendingexpArgs = psMetadataAlloc(); 65 psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID", NULL); 66 psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID", NULL); 67 psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID", NULL); 68 psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-exp_type", 0, "define exposure type", NULL); 65 psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID", NULL); 66 psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID", NULL); 67 psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID", NULL); 68 psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-exp_type", 0, "define exposure type", NULL); 69 69 psMetadataAddBool(pendingexpArgs, PS_LIST_TAIL, "-desc", 0, "sort ouput in descending format", false); 70 70 psMetadataAddU64(pendingexpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 73 73 // -pendingimfile 74 74 psMetadata *pendingimfileArgs = psMetadataAlloc(); 75 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID", NULL); 76 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID", NULL); 77 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID", NULL); 78 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-exp_type", 0, "define exposure type", NULL); 75 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID", NULL); 76 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID", NULL); 77 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID", NULL); 78 psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-exp_type", 0, "define exposure type", NULL); 79 79 psMetadataAddBool(pendingimfileArgs, PS_LIST_TAIL, "-desc", 0, "sort ouput in descending format", false); 80 80 psMetadataAddU64(pendingimfileArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 83 83 // -copydone 84 84 psMetadata *copydoneArgs = psMetadataAlloc(); 85 psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID (required)", NULL); 86 psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID (required)", NULL); 87 psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID (required)", NULL); 85 psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID (required)", NULL); 86 psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID (required)", NULL); 87 psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID (required)", NULL); 88 88 psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-class", 0, "define class", NULL); 89 89 psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-class_id", 0, "define class_id", NULL); … … 95 95 psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-label", 0, "define the label for the chip stage", NULL); 96 96 psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-hostname", 0, "define the host that copied the image", NULL); 97 psMetadataAddS16(copydoneArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);97 psMetadataAddS16(copydoneArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 98 98 psMetadataAddBool(copydoneArgs, PS_LIST_TAIL, "-row_lock", 0, "lock pzDownImfile rows while advancing an exposure", false); 99 99 // XXX: remove this once advance is fixed … … 102 102 // -copied 103 103 psMetadata *copiedArgs = psMetadataAlloc(); 104 psMetadataAddStr(copiedArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID", NULL); 105 psMetadataAddStr(copiedArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID", NULL); 106 psMetadataAddStr(copiedArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID", NULL); 104 psMetadataAddStr(copiedArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID", NULL); 105 psMetadataAddStr(copiedArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID", NULL); 106 psMetadataAddStr(copiedArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID", NULL); 107 107 psMetadataAddStr(copiedArgs, PS_LIST_TAIL, "-class", 0, "define class", NULL); 108 108 psMetadataAddStr(copiedArgs, PS_LIST_TAIL, "-class_id", 0, "define class_id", NULL); … … 113 113 // -updatecopied 114 114 psMetadata *updatecopiedArgs = psMetadataAlloc(); 115 psMetadataAddStr(updatecopiedArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID (required)", NULL); 116 psMetadataAddStr(updatecopiedArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID (required)", NULL); 117 psMetadataAddStr(updatecopiedArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID (required)", NULL); 115 psMetadataAddStr(updatecopiedArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID (required)", NULL); 116 psMetadataAddStr(updatecopiedArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID (required)", NULL); 117 psMetadataAddStr(updatecopiedArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID (required)", NULL); 118 118 psMetadataAddStr(updatecopiedArgs, PS_LIST_TAIL, "-class", 0, "define class", NULL); 119 119 psMetadataAddStr(updatecopiedArgs, PS_LIST_TAIL, "-class_id", 0, "define class_id", NULL); 120 psMetadataAddS16(updatecopiedArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);120 psMetadataAddS16(updatecopiedArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 121 121 122 122 // -revertcopied 123 123 psMetadata *revertcopiedArgs = psMetadataAlloc(); 124 psMetadataAddStr(revertcopiedArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID (required)", NULL); 125 psMetadataAddStr(revertcopiedArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID (required)", NULL); 126 psMetadataAddStr(revertcopiedArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID (required)", NULL); 124 psMetadataAddStr(revertcopiedArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID (required)", NULL); 125 psMetadataAddStr(revertcopiedArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID (required)", NULL); 126 psMetadataAddStr(revertcopiedArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID (required)", NULL); 127 127 psMetadataAddStr(revertcopiedArgs, PS_LIST_TAIL, "-class", 0, "define class", NULL); 128 128 psMetadataAddStr(revertcopiedArgs, PS_LIST_TAIL, "-class_id", 0, "define class_id", NULL); 129 psMetadataAddS16(revertcopiedArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);129 psMetadataAddS16(revertcopiedArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 130 130 131 131 // -clearcommonfaults … … 134 134 // -toadvance 135 135 psMetadata *toadvanceArgs = psMetadataAlloc(); 136 psMetadataAddStr(toadvanceArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID", NULL); 137 psMetadataAddStr(toadvanceArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID", NULL); 138 psMetadataAddStr(toadvanceArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID", NULL); 136 psMetadataAddStr(toadvanceArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID", NULL); 137 psMetadataAddStr(toadvanceArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID", NULL); 138 psMetadataAddStr(toadvanceArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID", NULL); 139 139 psMetadataAddStr(toadvanceArgs, PS_LIST_TAIL, "-label", 0, "define the label for the chip stage", NULL); 140 140 psMetadataAddBool(toadvanceArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); … … 143 143 // -advance 144 144 psMetadata *advanceArgs = psMetadataAlloc(); 145 psMetadataAddStr(advanceArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID (required)", NULL); 146 psMetadataAddStr(advanceArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID (required)", NULL); 147 psMetadataAddStr(advanceArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID (required)", NULL); 145 psMetadataAddStr(advanceArgs, PS_LIST_TAIL, "-exp_name", 0, "define exposure ID (required)", NULL); 146 psMetadataAddStr(advanceArgs, PS_LIST_TAIL, "-inst", 0, "define camera ID (required)", NULL); 147 psMetadataAddStr(advanceArgs, PS_LIST_TAIL, "-telescope", 0, "define telescope ID (required)", NULL); 148 148 psMetadataAddStr(advanceArgs, PS_LIST_TAIL, "-workdir", 0, "define the \"default\" workdir for this exposure (required)", NULL); 149 149 psMetadataAddStr(advanceArgs, PS_LIST_TAIL, "-dvodb", 0, "define the dvodb for the next processing step", NULL); -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/regtool.c
r23594 r24244 78 78 MODECASE(REGTOOL_MODE_UPDATEPROCESSEDEXP, updateprocessedexpMode); 79 79 MODECASE(REGTOOL_MODE_CLEARDUPEXP, cleardupexpMode); 80 MODECASE( CHIPTOOL_MODE_EXPORTRUN,exportrunMode);81 MODECASE( CHIPTOOL_MODE_IMPORTRUN,importrunMode);80 MODECASE(REGTOOL_MODE_EXPORTRUN, exportrunMode); 81 MODECASE(REGTOOL_MODE_IMPORTRUN, importrunMode); 82 82 default: 83 83 psAbort("invalid option (this should not happen)"); … … 238 238 PXOPT_LOOKUP_TIME(dateobs, config->args, "-dateobs", false, false); 239 239 PXOPT_LOOKUP_STR(hostname, config->args, "-hostname", false, false); 240 PXOPT_LOOKUP_S16(code, config->args, "-code", false, false); 240 241 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 242 PXOPT_LOOKUP_S16(quality, config->args, "-quality", false, false); 241 243 242 244 if (!rawImfileInsert( … … 302 304 ignored, 303 305 hostname, 304 code, 306 fault, 307 quality, 305 308 NULL, 306 309 0 … … 408 411 PXOPT_COPY_STR(config->args, where, "-tmp_class_id", "tmp_class_id", "=="); 409 412 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 410 PXOPT_COPY_S16(config->args, where, "- code", "fault", "==");413 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 411 414 PXOPT_COPY_S64(config->args, where, "-exp_id_begin", "exp_id", ">="); 412 415 PXOPT_COPY_S64(config->args, where, "-exp_id_end", "exp_id", "<="); … … 452 455 PXOPT_LOOKUP_STR(class_id, config->args, "-class_id", true, false); 453 456 454 PXOPT_LOOKUP_S16( code, config->args, "-code",false, false);457 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 455 458 PXOPT_LOOKUP_F64(user_1, config->args, "-user_1", false, false); 456 459 457 if (( code== INT16_MAX) && !isfinite(user_1)) {458 psError(PS_ERR_UNKNOWN, false, "one of - codeor -user_1 must be selected");459 return false; 460 } 461 if (( code!= INT16_MAX) && isfinite(user_1)) {462 psError(PS_ERR_UNKNOWN, false, "only one of - codeor -user_1 must be selected");460 if ((fault == INT16_MAX) && !isfinite(user_1)) { 461 psError(PS_ERR_UNKNOWN, false, "one of -fault or -user_1 must be selected"); 462 return false; 463 } 464 if ((fault != INT16_MAX) && isfinite(user_1)) { 465 psError(PS_ERR_UNKNOWN, false, "only one of -fault or -user_1 must be selected"); 463 466 return false; 464 467 } … … 468 471 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 469 472 470 if ( code!= INT16_MAX) {473 if (fault != INT16_MAX) { 471 474 // this is fairly dangerous : can set all if the where is not set... 472 if (!pxSetFaultCode(config->dbh, "rawImfile", where, code)) {475 if (!pxSetFaultCode(config->dbh, "rawImfile", where, fault)) { 473 476 psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag"); 474 477 psFree (where); … … 644 647 645 648 // default 646 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);649 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 647 650 648 651 psString query = pxDataGet("regtool_pendingexp.sql"); … … 801 804 moon_phase, 802 805 hostname, 803 code,806 fault, 804 807 NULL, 805 808 0 … … 995 998 psMetadata *where = psMetadataAlloc(); 996 999 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 997 PXOPT_COPY_S16(config->args, where, "- code", "fault", "==");1000 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 998 1001 PXOPT_COPY_S64(config->args, where, "-exp_id_begin", "exp_id", ">="); 999 1002 PXOPT_COPY_S64(config->args, where, "-exp_id_end", "exp_id", "<="); … … 1039 1042 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 1040 1043 1041 PXOPT_LOOKUP_S16( code, config->args, "-code", true, false);1042 1043 if (!pxSetFaultCode(config->dbh, "rawExp", where, code)) {1044 PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false); 1045 1046 if (!pxSetFaultCode(config->dbh, "rawExp", where, fault)) { 1044 1047 psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag"); 1045 1048 psFree(where); … … 1161 1164 char sqlFilename[80]; 1162 1165 } ExportTable; 1163 1166 1164 1167 int numExportTables = 2; 1165 1168 … … 1180 1183 1181 1184 ExportTable tables [] = { 1182 {"rawExp", "regtool_export_ raw__exp.sql"},1183 {"rawImfile", "regtool_export_ raw_imfile.sql"},1185 {"rawExp", "regtool_export_exp.sql"}, 1186 {"rawImfile", "regtool_export_imfile.sql"}, 1184 1187 }; 1185 1188 … … 1241 1244 1242 1245 PS_ASSERT_PTR_NON_NULL(config, NULL); 1243 1246 1244 1247 PXOPT_LOOKUP_STR(infile, config->args, "-infile", true, false); 1245 1248 … … 1252 1255 psAssert (item, "entry not in input?"); 1253 1256 psAssert (item->type == PS_DATA_METADATA_MULTI, "entry not multi?"); 1254 1257 1255 1258 psMetadataItem *entry = psListGet (item->data.list, 0); 1256 1259 assert (entry); -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/regtoolConfig.c
r23594 r24244 122 122 ADD_OPT(Time, addprocessedimfileArgs, "-dateobs", "define observation time", NULL); 123 123 ADD_OPT(Str, addprocessedimfileArgs, "-hostname", "define host name", NULL); 124 ADD_OPT(S16, addprocessedimfileArgs, "-code", "set fault code", 0); 124 ADD_OPT(S16, addprocessedimfileArgs, "-fault", "set fault code", 0); 125 ADD_OPT(S16, addprocessedimfileArgs, "-quality", "set quality flag", 0); 125 126 126 127 // -processedimfile … … 140 141 ADD_OPT(Str, revertprocessedimfileArgs, "-tmp_class_id", "searcy by temp. class ID", NULL); 141 142 ADD_OPT(Str, revertprocessedimfileArgs, "-class_id", "search by class ID", NULL); 142 ADD_OPT(S16, revertprocessedimfileArgs, "- code", "search by fault code", 0);143 ADD_OPT(S16, revertprocessedimfileArgs, "-fault", "search by fault code", 0); 143 144 ADD_OPT(S64, revertprocessedimfileArgs, "-exp_id_begin", "search by exposure ID", 0); 144 145 ADD_OPT(S64, revertprocessedimfileArgs, "-exp_id_end", "search by exposure ID", 0); … … 149 150 ADD_OPT(Str, updateprocessedimfileArgs, "-class_id", "search by class ID", NULL); 150 151 ADD_OPT(F64, updateprocessedimfileArgs, "-user_1", "set user stat (1)", NAN); 151 ADD_OPT(S16, updateprocessedimfileArgs, "- code", "set fault code", INT16_MAX);152 ADD_OPT(S16, updateprocessedimfileArgs, "-fault", "set fault code", INT16_MAX); 152 153 153 154 // -pendingexp … … 226 227 ADD_OPT(Str, addprocessedexpArgs, "-label", "define label for chip stage (non-detrend data only)", NULL); 227 228 ADD_OPT(Str, addprocessedexpArgs, "-hostname", "define host name", NULL); 228 ADD_OPT(S16, addprocessedexpArgs, "- code", "set fault code", 0);229 ADD_OPT(S16, addprocessedexpArgs, "-fault", "set fault code", 0); 229 230 230 231 // -processedexp … … 276 277 psMetadata *revertprocessedexpArgs = psMetadataAlloc(); 277 278 psMetadataAddS64(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure ID", 0); 278 psMetadataAddS16(revertprocessedexpArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);279 psMetadataAddS16(revertprocessedexpArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 279 280 psMetadataAddS64(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_id_begin", 0, "search by exposure ID", 0); 280 281 psMetadataAddS64(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_id_end", 0, "search by exposure ID", 0); … … 283 284 psMetadata *updatedprocessedexpArgs = psMetadataAlloc(); 284 285 psMetadataAddS64(updatedprocessedexpArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure ID", 0); 285 psMetadataAddS16(updatedprocessedexpArgs, PS_LIST_TAIL, "- code", 0, "set fault code (required)", INT16_MAX);286 psMetadataAddS16(updatedprocessedexpArgs, PS_LIST_TAIL, "-fault", 0, "set fault code (required)", INT16_MAX); 286 287 287 288 // -exportrun -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/stacktool.c
r23352 r24244 617 617 PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "=="); 618 618 PXOPT_COPY_S64(config->args, where, "-stack_id", "stack_id", "=="); 619 PXOPT_COPY_STR(config->args, where, "-label", "stackRun.label", "==");619 pxAddLabelSearchArgs (config, where, "-label", "stackRun.label", "=="); 620 620 621 621 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 718 718 719 719 // default values 720 PXOPT_LOOKUP_S16(code, config->args, "-code", false, false); 720 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 721 PXOPT_LOOKUP_S16(quality, config->args, "-quality", false, false); 721 722 722 723 if (!psDBTransaction(config->dbh)) { … … 754 755 hostname, 755 756 good_frac, 756 code 757 fault, 758 quality 757 759 )) { 758 760 if (!psDBRollback(config->dbh)) { … … 862 864 PXOPT_COPY_S64(config->args, where, "-stack_id", "stackSumSkyfile.stack_id", "=="); 863 865 PXOPT_COPY_STR(config->args, where, "-label", "stackRun.label", "=="); 864 PXOPT_COPY_S16(config->args, where, "- code", "stackSumSkyfile.fault", "==");866 PXOPT_COPY_S16(config->args, where, "-fault", "stackSumSkyfile.fault", "=="); 865 867 866 868 if (!psDBTransaction(config->dbh)) { … … 989 991 990 992 psMetadata *where = psMetadataAlloc(); 991 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");993 pxAddLabelSearchArgs (config, where, "-label", "stackRun.label", "=="); 992 994 993 995 psString query = pxDataGet("stacktool_pendingcleanuprun.sql"); … … 1053 1055 PXOPT_COPY_S64(config->args, where, "-stack_id", "stack_id", "=="); 1054 1056 } 1055 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");1057 pxAddLabelSearchArgs (config, where, "-label", "stackRun.label", "=="); 1056 1058 1057 1059 psString query = pxDataGet("stacktool_pendingcleanupskyfile.sql"); … … 1169 1171 PS_ASSERT_PTR_NON_NULL(config, false); 1170 1172 1171 PXOPT_LOOKUP_S16( code, config->args, "-code", true, false);1173 PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false); 1172 1174 1173 1175 psMetadata *where = psMetadataAlloc(); 1174 1176 PXOPT_COPY_S64(config->args, where, "-stack_id", "stack_id", "=="); 1175 1177 1176 if (!pxSetFaultCode(config->dbh, "stackSumSkyfile", where, code)) {1178 if (!pxSetFaultCode(config->dbh, "stackSumSkyfile", where, fault)) { 1177 1179 psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag"); 1178 1180 psFree (where); … … 1192 1194 1193 1195 int numExportTables = 3; 1194 1196 1195 1197 PS_ASSERT_PTR_NON_NULL(config, NULL); 1196 1198 1197 1199 PXOPT_LOOKUP_S64(det_id, config->args, "-stack_id", true, false); 1198 1200 PXOPT_LOOKUP_STR(outfile, config->args, "-outfile", true, false); 1201 PXOPT_LOOKUP_BOOL(clean, config->args, "-clean", false); 1199 1202 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1200 1203 … … 1247 1250 } 1248 1251 if (!psArrayLength(output)) { 1249 ps Trace("regtool", PS_LOG_INFO, "no rows found");1252 psError(PS_ERR_UNKNOWN, true, "no rows found"); 1250 1253 psFree(output); 1251 return true; 1252 } 1254 return false; 1255 } 1256 1257 if (clean) { 1258 if (!strcmp(tables[i].tableName, "stackRun")) { 1259 if (!pxSetStateCleaned("stackRun", "state", output)) { 1260 psFree(output); 1261 psError(PS_ERR_UNKNOWN, false, "pxSetStateClean failed for table %s", tables[i].tableName); 1262 return false; 1263 } 1264 } 1265 } 1266 1267 // we must write the export table in non-simple (true) format 1268 if (!ippdbPrintMetadatas(f, output, tables[i].tableName, true)) { 1269 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1270 psFree(output); 1271 return false; 1272 } 1273 1253 1274 psFree(output); 1254 1275 } … … 1262 1283 { 1263 1284 unsigned int nFail; 1264 1285 1265 1286 int numImportTables = 2; 1266 1287 1267 1288 char tables[2] [80] = {"stackInputSkyfile", "stackSumSkyfile"}; 1268 1289 1269 1290 PS_ASSERT_PTR_NON_NULL(config, NULL); 1270 1291 1271 1292 PXOPT_LOOKUP_STR(infile, config->args, "-infile", true, false); 1272 1293 … … 1293 1314 psAssert (item, "entry not in input?"); 1294 1315 psAssert (item->type == PS_DATA_METADATA_MULTI, "entry not multi?"); 1295 1316 1296 1317 switch (i) { 1297 1318 case 0: … … 1307 1328 } 1308 1329 break; 1309 1330 1310 1331 case 1: 1311 1332 for (int i = 0; i < item->data.list->n; i++) { … … 1322 1343 } 1323 1344 } 1324 1345 1325 1346 return true; 1326 1347 } -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/stacktoolConfig.c
r23352 r24244 114 114 psMetadata *tosumArgs = psMetadataAlloc(); 115 115 psMetadataAddS64(tosumArgs, PS_LIST_TAIL, "-stack_id", 0, "search by stack ID", 0); 116 psMetadataAddStr(tosumArgs, PS_LIST_TAIL, "-label", 0, "search by label", NULL);116 psMetadataAddStr(tosumArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label", NULL); 117 117 psMetadataAddS64(tosumArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warp ID", 0); 118 118 psMetadataAddU64(tosumArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 147 147 psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-hostname", 0, "define hostname", 0); 148 148 psMetadataAddF32(addsumskyfileArgs, PS_LIST_TAIL, "-good_frac", 0, "define %% of good pixels", NAN); 149 psMetadataAddS16(addsumskyfileArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 149 psMetadataAddS16(addsumskyfileArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 150 psMetadataAddS16(addsumskyfileArgs, PS_LIST_TAIL, "-quality", 0, "set quality", 0); 150 151 151 152 // -sumskyfile … … 162 163 psMetadataAddS64(revertsumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0, "search by stack ID", 0); 163 164 psMetadataAddStr(revertsumskyfileArgs, PS_LIST_TAIL, "-label", 0, "search by label", 0); 164 psMetadataAddS16(revertsumskyfileArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);165 psMetadataAddS16(revertsumskyfileArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 165 166 166 167 // -pendingcleanuprun 167 168 psMetadata *pendingcleanuprunArgs = psMetadataAlloc(); 168 psMetadataAddStr(pendingcleanuprunArgs, PS_LIST_TAIL, "-label", 0,"list blocks for specified label", NULL);169 psMetadataAddStr(pendingcleanuprunArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "list blocks for specified label", NULL); 169 170 psMetadataAddBool(pendingcleanuprunArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 170 171 psMetadataAddU64(pendingcleanuprunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 172 173 // -pendingcleanupskyfile 173 174 psMetadata *pendingcleanupskyfileArgs = psMetadataAlloc(); 174 psMetadataAddStr(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-label", 0,"list blocks for specified label", NULL);175 psMetadataAddStr(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "list blocks for specified label", NULL); 175 176 psMetadataAddS64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-stack_id", 0, "search by stack ID", 0); 176 177 psMetadataAddBool(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); … … 185 186 psMetadata *updatesumskyfileArgs = psMetadataAlloc(); 186 187 psMetadataAddS64(updatesumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0, "define stack ID (required)", 0); 187 psMetadataAddS16(updatesumskyfileArgs, PS_LIST_TAIL, "- code", 0, "set fault code (required)", 0);188 psMetadataAddS16(updatesumskyfileArgs, PS_LIST_TAIL, "-fault", 0, "set fault code (required)", 0); 188 189 189 190 // -exportrun … … 192 193 psMetadataAddStr(exportrunArgs, PS_LIST_TAIL, "-outfile", 0, "export to this file (required)", NULL); 193 194 psMetadataAddU64(exportrunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 195 psMetadataAddBool(exportrunArgs, PS_LIST_TAIL, "-clean", 0, "mark tables as cleaned", false); 194 196 195 197 // -importrun -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/warptool.c
r23594 r24244 30 30 #include "pxtools.h" 31 31 #include "warptool.h" 32 #include "pxwarp.h"33 32 34 33 static psS64 definerunMode(pxConfig *config); … … 42 41 static bool towarpedMode(pxConfig *config); 43 42 static bool addwarpedMode(pxConfig *config); 43 static bool advancerunMode(pxConfig *config); 44 44 static bool warpedMode(pxConfig *config); 45 45 static bool revertwarpedMode(pxConfig *config); … … 89 89 MODECASE(WARPTOOL_MODE_TOWARPED, towarpedMode); 90 90 MODECASE(WARPTOOL_MODE_ADDWARPED, addwarpedMode); 91 MODECASE(WARPTOOL_MODE_ADVANCERUN, advancerunMode); 91 92 MODECASE(WARPTOOL_MODE_WARPED, warpedMode); 92 93 MODECASE(WARPTOOL_MODE_REVERTWARPED, revertwarpedMode); … … 135 136 PXOPT_LOOKUP_STR(label, config->args, "-label", false, false); 136 137 PXOPT_LOOKUP_STR(dvodb, config->args, "-dvodb", false, false); 137 PXOPT_LOOKUP_STR(tess_id, config->args, "-tess_id", false, false);138 PXOPT_LOOKUP_STR(tess_id, config->args, "-tess_id", true, false); // required (no default TESS) 138 139 PXOPT_LOOKUP_STR(end_stage, config->args, "-end_stage", false, false); 139 140 PXOPT_LOOKUP_TIME(registered, config->args, "-registered", false, false); … … 191 192 192 193 psMetadata *where = psMetadataAlloc(); 193 pxwarpGetSearchArgs (config, where); 194 PXOPT_COPY_STR(config->args, where, "-reduction", "fakeRun.reduction", "=="); 195 PXOPT_COPY_STR(config->args, where, "-label", "fakeRun.label", "=="); 194 PXOPT_COPY_S64(config->args, where, "-fake_id", "fakeRun.fake_id", "=="); 195 PXOPT_COPY_S64(config->args, where, "-cam_id", "camRun.cam_id", "=="); 196 PXOPT_COPY_S64(config->args, where, "-chip_id", "chipRun.chip_id", "=="); 197 PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "=="); 198 PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "=="); 199 PXOPT_COPY_STR(config->args, where, "-inst", "rawExp.camera", "=="); 200 PXOPT_COPY_STR(config->args, where, "-telescope", "rawExp.telescope", "=="); 201 PXOPT_COPY_TIME(config->args, where, "-dateobs_begin", "rawExp.dateobs", ">="); 202 PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "rawExp.dateobs", "<="); 203 PXOPT_COPY_STR(config->args, where, "-exp_tag", "rawExp.exp_tag", "=="); 204 PXOPT_COPY_STR(config->args, where, "-exp_type", "rawExp.exp_type", "=="); 205 PXOPT_COPY_STR(config->args, where, "-filelevel", "rawExp.filelevel", "=="); 206 PXOPT_COPY_STR(config->args, where, "-filter", "rawExp.filter", "=="); 207 PXOPT_COPY_F64(config->args, where, "-airmass_min", "rawExp.airmass", ">="); 208 PXOPT_COPY_F64(config->args, where, "-airmass_max", "rawExp.airmass", "<"); 209 PXOPT_COPY_F64(config->args, where, "-ra_min", "rawExp.ra", ">="); 210 PXOPT_COPY_F64(config->args, where, "-ra_max", "rawExp.ra", "<"); 211 PXOPT_COPY_F64(config->args, where, "-decl_min", "rawExp.decl", ">="); 212 PXOPT_COPY_F64(config->args, where, "-decl_max", "rawExp.decl", "<"); 213 PXOPT_COPY_F32(config->args, where, "-exp_time_min", "rawExp.exp_time", ">="); 214 PXOPT_COPY_F32(config->args, where, "-exp_time_max", "rawExp.exp_time", "<"); 215 PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_min", "rawExp.sat_pixel_frac", ">="); 216 PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_max", "rawExp.sat_pixel_frac", "<"); 217 PXOPT_COPY_F64(config->args, where, "-bg_min", "rawExp.bg", ">="); 218 PXOPT_COPY_F64(config->args, where, "-bg_max", "rawExp.bg", "<"); 219 PXOPT_COPY_F64(config->args, where, "-bg_stdev_min", "rawExp.bg_stdev", ">="); 220 PXOPT_COPY_F64(config->args, where, "-bg_stdev_max", "rawExp.bg_stdev", "<"); 221 PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_min", "rawExp.bg_mean_stdev", ">="); 222 PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_max", "rawExp.bg_mean_stdev", "<"); 223 PXOPT_COPY_F64(config->args, where, "-alt_min", "rawExp.alt", ">="); 224 PXOPT_COPY_F64(config->args, where, "-alt_max", "rawExp.alt", "<"); 225 PXOPT_COPY_F64(config->args, where, "-az_min", "rawExp.az", ">="); 226 PXOPT_COPY_F64(config->args, where, "-az_max", "rawExp.az", "<"); 227 PXOPT_COPY_F32(config->args, where, "-ccd_temp_min", "rawExp.ccd_temp", ">="); 228 PXOPT_COPY_F32(config->args, where, "-ccd_temp_max", "rawExp.ccd_temp", "<"); 229 PXOPT_COPY_F64(config->args, where, "-posang_min", "rawExp.posang", ">="); 230 PXOPT_COPY_F64(config->args, where, "-posang_max", "rawExp.posang", "<"); 231 PXOPT_COPY_STR(config->args, where, "-object", "rawExp.object", "=="); 232 PXOPT_COPY_F32(config->args, where, "-solang_min", "rawExp.solang", ">="); 233 PXOPT_COPY_F32(config->args, where, "-solang_max", "rawExp.solang", "<"); 234 PXOPT_COPY_STR(config->args, where, "-reduction", "fakeRun.reduction", "=="); 235 pxAddLabelSearchArgs (config, where, "-label", "fakeRun.label", "=="); 196 236 197 237 if (!psListLength(where->list) && … … 227 267 228 268 // use psDBGenerateWhereSQL because the SQL yields an intermediate table 229 if ( where &&psListLength(where->list)) {230 psString whereClause = psDBGenerateWhere SQL(where, NULL);231 psStringAppend(&query, " %s", whereClause);269 if (psListLength(where->list)) { 270 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 271 psStringAppend(&query, "AND %s", whereClause); 232 272 psFree(whereClause); 233 273 } … … 256 296 // data out so we have the option of changing these values or leaving the 257 297 // old values in place (i.e., passing the values through). 298 299 // loop over our list of fakeRun rows to check the supplied and selected tess_id values: 300 for (long i = 0; i < psArrayLength(output); i++) { 301 psMetadata *md = output->data[i]; 302 303 fakeRunRow *row = fakeRunObjectFromMetadata(md); 304 if (!row) { 305 psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into fakeRun"); 306 psFree(output); 307 return false; 308 } 309 310 if (!tess_id && !row->tess_id) { 311 psError(PS_ERR_UNKNOWN, false, "cannot queue warp run without a defined tess id: label: %s, fake_id %" PRId64, row->label, row->fake_id); 312 psFree(output); 313 return false; 314 } 315 316 psFree(row); 317 } 318 psFree(output); 258 319 259 320 // loop over our list of fakeRun rows … … 299 360 300 361 psMetadata *where = psMetadataAlloc(); 301 pxwarpGetSearchArgs (config, where);302 362 PXOPT_COPY_S64(config->args, where, "-warp_id", "warpRun.warp_id", "=="); 303 363 PXOPT_COPY_STR(config->args, where, "-reduction", "warpRun.reduction", "=="); 304 PXOPT_COPY_STR(config->args, where, "-label", "warpRun.label", "==");305 PXOPT_COPY_STR(config->args, where, "-state", "warpRun.state", "==");364 PXOPT_COPY_STR(config->args, where, "-label", "warpRun.label", "=="); 365 PXOPT_COPY_STR(config->args, where, "-state", "warpRun.state", "=="); 306 366 307 367 if (!psListLength(where->list) … … 498 558 psMetadata *where = psMetadataAlloc(); 499 559 PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "=="); 500 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");560 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 501 561 502 562 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 572 632 PXOPT_LOOKUP_STR(mapfile, config->args, "-mapfile", false, false); 573 633 PXOPT_LOOKUP_S64(warp_id, config->args, "-warp_id", false, false); 574 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);634 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 575 635 576 636 if (!psDBTransaction(config->dbh)) { … … 579 639 } 580 640 581 if ( code== 0) {641 if (fault == 0) { 582 642 if (!parseAndInsertSkyCellMap(config, mapfile)) { 583 643 psError(PS_ERR_UNKNOWN, false, "failed to inject mapfile: %s into the database", mapfile); … … 594 654 NULL, // tess_id 595 655 NULL, // class_id 596 code// fault656 fault // fault 597 657 ); 598 658 } … … 770 830 psMetadata *where = psMetadataAlloc(); 771 831 PXOPT_COPY_S64(config->args, where, "-warp_id", "warpSkyCellMap.warp_id", "=="); 772 PXOPT_COPY_STR(config->args, where, "-label", "warpRun.label", "==");832 pxAddLabelSearchArgs (config, where, "-label", "warpRun.label", "=="); 773 833 774 834 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 859 919 PXOPT_LOOKUP_STR(hostname, config->args, "-hostname", false, false); 860 920 PXOPT_LOOKUP_F32(good_frac, config->args, "-good_frac", false, false); 861 PXOPT_LOOKUP_BOOL(accept, config->args, "-accept", false);862 921 PXOPT_LOOKUP_BOOL(magicked, config->args, "-magicked", false); 863 922 864 923 // default values 865 PXOPT_LOOKUP_S16(code, config->args, "-code", false, false); 924 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 925 PXOPT_LOOKUP_S16(quality, config->args, "-quality", false, false); 866 926 867 927 // we don't want to insert the last skyfile in a run but then not mark the … … 890 950 ymin, 891 951 ymax, 892 !accept,893 code,952 fault, 953 quality, 894 954 magicked 895 955 )) { … … 901 961 } 902 962 903 if (!warpCompletedRuns(config)) {904 if (!psDBRollback(config->dbh)) {905 psError(PS_ERR_UNKNOWN, false, "database error");906 }907 psError(PS_ERR_UNKNOWN, false, "database error");908 return false;909 }910 911 963 // point of no return 912 964 if (!psDBCommit(config->dbh)) { … … 914 966 return false; 915 967 } 968 969 return true; 970 } 971 972 static bool advancerunMode(pxConfig *config) 973 { 974 PS_ASSERT_PTR_NON_NULL(config, false); 975 976 psMetadata *where = psMetadataAlloc(); 977 PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "=="); 978 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 979 980 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 981 982 psString query = pxDataGet("warptool_finished_run_select.sql"); 983 if (!query) { 984 psError(PXTOOLS_ERR_DATA, false, "failed to retrieve SQL statement"); 985 return false; 986 } 987 988 if (psListLength(where->list)) { 989 psString whereClause = psDBGenerateWhereSQL(where, NULL); 990 psStringAppend(&query, " %s", whereClause); 991 psFree(whereClause); 992 } 993 psFree(where); 994 995 if (!p_psDBRunQuery(config->dbh, query)) { 996 psError(PS_ERR_UNKNOWN, false, "database error"); 997 psFree(query); 998 return false; 999 } 1000 psFree(query); 1001 1002 psArray *output = p_psDBFetchResult(config->dbh); 1003 if (!output) { 1004 psError(PS_ERR_UNKNOWN, false, "database error"); 1005 return false; 1006 } 1007 if (!psArrayLength(output)) { 1008 psTrace("warptool", PS_LOG_INFO, "no rows found"); 1009 psFree(output); 1010 return true; 1011 } 1012 1013 query = pxDataGet("warptool_finish_run.sql"); 1014 for (long i = 0; i < psArrayLength(output); i++) { 1015 psMetadata *row = output->data[i]; 1016 1017 bool status; 1018 psS64 warp_id = psMetadataLookupS64(&status, row, "warp_id"); 1019 if (!status) { 1020 psError(PS_ERR_UNKNOWN, false, "failed to look up value for warp_id"); 1021 psFree(output); 1022 psFree(query); 1023 return false; 1024 } 1025 psS32 magicked = psMetadataLookupS64(&status, row, "magicked"); 1026 if (!status) { 1027 psError(PS_ERR_UNKNOWN, false, "failed to look up value for magicked"); 1028 psFree(output); 1029 psFree(query); 1030 return false; 1031 } 1032 if (!p_psDBRunQueryF(config->dbh, query, magicked, warp_id)) { 1033 psError(PS_ERR_UNKNOWN, false, "database error"); 1034 psFree(output); 1035 psFree(query); 1036 return false; 1037 } 1038 1039 psS64 numUpdated = psDBAffectedRows(config->dbh); 1040 1041 if (numUpdated != 1) { 1042 psError(PS_ERR_UNKNOWN, false, "should have affected 1 row"); 1043 psFree(query); 1044 psFree(output); 1045 return false; 1046 } 1047 } 1048 psFree(output); 1049 psFree(query); 916 1050 917 1051 return true; … … 1070 1204 1071 1205 psMetadata *where = psMetadataAlloc(); 1072 pxwarpGetSearchArgs (config, where);1073 1206 PXOPT_COPY_S64(config->args, where, "-warp_id", "warpSkyfile.warp_id", "=="); 1074 1207 PXOPT_COPY_STR(config->args, where, "-skycell_id", "warpSkyfile.skycell_id", "=="); … … 1076 1209 PXOPT_COPY_STR(config->args, where, "-reduction", "rawExp.reduction", "=="); 1077 1210 PXOPT_COPY_STR(config->args, where, "-label", "warpRun.label", "=="); 1078 PXOPT_COPY_S16(config->args, where, "- code", "warpSkyfile.fault", "==");1211 PXOPT_COPY_S16(config->args, where, "-fault", "warpSkyfile.fault", "=="); 1079 1212 1080 1213 if (!psListLength(where->list) … … 1092 1225 1093 1226 1227 #ifdef notdef 1228 int numUpdated = 0; // Number updated 1229 { 1094 1230 // Update state to 'new' 1095 int numUpdated; // Number updated1096 {1097 1231 // This query is no longer necessary because we do not set warpRun's to full statte 1098 1232 // if they have faulted skyfiles. … … 1140 1274 psLogMsg("warptool", PS_LOG_INFO, "Updated %d warp runs", numUpdated); 1141 1275 1276 #endif // notdef 1277 1142 1278 // Delete product 1143 1279 int numDeleted; // Number deleted … … 1261 1397 1262 1398 psMetadata *where = psMetadataAlloc(); 1263 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");1399 pxAddLabelSearchArgs (config, where, "-label", "warpRun.label", "=="); 1264 1400 1265 1401 psString query = pxDataGet("warptool_pendingcleanuprun.sql"); … … 1324 1460 psMetadata *where = psMetadataAlloc(); 1325 1461 PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "=="); 1326 PXOPT_COPY_STR(config->args, where, "-label", "label", "==");1462 pxAddLabelSearchArgs (config, where, "-label", "warpRun.label", "=="); 1327 1463 1328 1464 psString query = pxDataGet("warptool_pendingcleanupskyfile.sql"); … … 1524 1660 PS_ASSERT_PTR_NON_NULL(config, false); 1525 1661 1526 // warp_id, skycell_id, codeare required1662 // warp_id, skycell_id, fault are required 1527 1663 PXOPT_LOOKUP_S64(warp_id, config->args, "-warp_id", true, false); 1528 1664 PXOPT_LOOKUP_STR(skycell_id, config->args, "-skycell_id", true, false); 1529 PXOPT_LOOKUP_S16( code, config->args, "-code", false, false);1665 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 1530 1666 1531 1667 psString query = pxDataGet("warptool_updateskyfile.sql"); 1532 1668 1533 if (!p_psDBRunQueryF(config->dbh, query, code, warp_id, skycell_id)) {1669 if (!p_psDBRunQueryF(config->dbh, query, fault, warp_id, skycell_id)) { 1534 1670 psError(PS_ERR_UNKNOWN, false, "database error"); 1535 1671 return false; … … 1549 1685 PS_ASSERT_PTR_NON_NULL(config, NULL); 1550 1686 1551 PXOPT_LOOKUP_S64(det_id, config->args, "-warp_id", true, false);1687 PXOPT_LOOKUP_S64(det_id, config->args, "-warp_id", true, false); 1552 1688 PXOPT_LOOKUP_STR(outfile, config->args, "-outfile", true, false); 1553 1689 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1690 PXOPT_LOOKUP_BOOL(clean, config->args, "-clean", false); 1554 1691 1555 1692 FILE *f = fopen (outfile, "w"); … … 1566 1703 {"warpImfile", "warptool_export_imfile.sql"}, 1567 1704 {"warpSkyfile", "warptool_export_skyfile.sql"}, 1568 {"warpSkyCellMap", "warptool_export_sky _cell_map.sql"},1705 {"warpSkyCellMap", "warptool_export_skycell_map.sql"}, 1569 1706 }; 1570 1707 1571 1572 for (int i=0; i < sizeof(tables); i++) { 1708 int numTables = sizeof(tables)/sizeof(tables[0]); 1709 1710 for (int i=0; i < numTables; i++) { 1573 1711 psString query = pxDataGet(tables[i].sqlFilename); 1574 1712 if (!query) { … … 1603 1741 } 1604 1742 if (!psArrayLength(output)) { 1605 ps Trace("regtool", PS_LOG_INFO, "no rows found");1743 psError(PS_ERR_UNKNOWN, true, "no rows found"); 1606 1744 psFree(output); 1607 return true;1745 return false; 1608 1746 } 1747 1748 if (clean) { 1749 bool success = true; 1750 if (!strcmp(tables[i].tableName, "warpRun")) { 1751 success = pxSetStateCleaned("warpRun", "state", output); 1752 } else if (!strcmp(tables[i].tableName, "warpSkyfile")) { 1753 success = pxSetStateCleaned("warpSkyfile", "data_state", output); 1754 } 1755 if (!success) { 1756 psFree(output); 1757 psError(PS_ERR_UNKNOWN, false, "pxSetStateClean failed for table %s", tables[i].tableName); 1758 return false; 1759 } 1760 } 1609 1761 1610 1762 // we must write the export table in non-simple (true) format … … 1627 1779 1628 1780 int numImportTables = 3; 1629 1781 1630 1782 char tables[3] [80] = {"warpImfile", "warpSkyfile", "warpSkyCellMap"}; 1631 1783 1632 1784 PS_ASSERT_PTR_NON_NULL(config, NULL); 1633 1785 1634 1786 PXOPT_LOOKUP_STR(infile, config->args, "-infile", true, false); 1635 1787 … … 1642 1794 psAssert (item, "entry not in input?"); 1643 1795 psAssert (item->type == PS_DATA_METADATA_MULTI, "entry not multi?"); 1644 1796 1645 1797 psMetadataItem *entry = psListGet (item->data.list, 0); 1646 1798 assert (entry); … … 1656 1808 psAssert (item, "entry not in input?"); 1657 1809 psAssert (item->type == PS_DATA_METADATA_MULTI, "entry not multi?"); 1658 1810 1659 1811 switch (i) { 1660 case 0: 1812 case 0: 1661 1813 for (int i = 0; i < item->data.list->n; i++) { 1662 1814 entry = psListGet (item->data.list, i); … … 1670 1822 } 1671 1823 break; 1672 1673 case 1: 1824 1825 case 1: 1674 1826 for (int i = 0; i < item->data.list->n; i++) { 1675 1827 entry = psListGet (item->data.list, i); … … 1683 1835 } 1684 1836 break; 1685 1686 case 2: 1837 1838 case 2: 1687 1839 for (int i = 0; i < item->data.list->n; i++) { 1688 1840 entry = psListGet (item->data.list, i); -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/warptool.h
r23352 r24244 37 37 WARPTOOL_MODE_TOWARPED, 38 38 WARPTOOL_MODE_ADDWARPED, 39 WARPTOOL_MODE_ADVANCERUN, 39 40 WARPTOOL_MODE_WARPED, 40 41 WARPTOOL_MODE_REVERTWARPED, -
branches/cnb_branches/cnb_branch_20090301/ippTools/src/warptoolConfig.c
r23594 r24244 51 51 // XXX need to allow multiple exp_ids 52 52 psMetadata *definebyqueryArgs = psMetadataAlloc(); 53 pxwarpSetSearchArgs (definebyqueryArgs); 53 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-fake_id", 0, "search by fake_id", 0); 54 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-cam_id", 0, "search by cam_id", 0); 55 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip_id", 0); 56 psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exp_id", 0); 57 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-exp_name", 0, "search by exp_name", NULL); 58 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-inst", 0, "search for camera", NULL); 59 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-telescope", 0, "search for telescope", NULL); 60 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-dateobs_begin", 0, "search for exposures by time (>=)", NULL); 61 psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-dateobs_end", 0, "search for exposures by time (<)", NULL); 62 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-exp_tag", 0, "search by exp_tag", NULL); 63 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-exp_type", 0, "search by exp_type", NULL); 64 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-filelevel", 0, "search by filelevel", NULL); 65 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-filter", 0, "search for filter", NULL); 66 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-airmass_min", 0, "search by min airmass", NAN); 67 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-airmass_max", 0, "search by max airmass", NAN); 68 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-ra_min", 0, "search by min", NAN); 69 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-ra_max", 0, "search by max", NAN); 70 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-decl_min", 0, "search by min", NAN); 71 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-decl_max", 0, "search by max", NAN); 72 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-exp_time_min", 0, "search by min", NAN); 73 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-exp_time_max", 0, "search by max", NAN); 74 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-sat_pixel_frac_min", 0, "search by max fraction of saturated pixels", NAN); 75 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-sat_pixel_frac_max", 0, "search by min fraction of saturated pixels", NAN); 76 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-bg_min", 0, "search by max", NAN); 77 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-bg_max", 0, "search by max", NAN); 78 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-bg_stdev_min", 0, "search by max", NAN); 79 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-bg_stdev_max", 0, "search by max", NAN); 80 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-bg_mean_stdev_min", 0, "search by max", NAN); 81 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-bg_mean_stdev_max", 0, "search by max", NAN); 82 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-alt_min", 0, "search by min", NAN); 83 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-alt_max", 0, "search by max", NAN); 84 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-az_min", 0, "search by min", NAN); 85 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-az_max", 0, "search by max", NAN); 86 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-ccd_temp_min", 0, "search by min ccd tempature", NAN); 87 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-ccd_temp_max", 0, "search by max ccd tempature", NAN); 88 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-posang_min", 0, "search by min rotator position angle", NAN); 89 psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-posang_max", 0, "search by max rotator position angle", NAN); 90 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-object", 0, "search by exposure object", NULL); 91 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-solang_min", 0, "search by min solar angle", NAN); 92 psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-solang_max", 0, "search by max solar angle", NAN); 54 93 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-reduction", 0, "search by fakeRun reduction class", NULL); 55 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-label", 0, "search on fakeRun label", NULL);94 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search on fakeRun label", NULL); 56 95 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_mode", 0, "define mode (warp, diff, stack, magic)", NULL); 57 96 psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_workdir", 0, "define workdir", NULL); … … 83 122 // XXX need to allow multiple exp_ids 84 123 psMetadata *updaterunArgs = psMetadataAlloc(); 85 pxwarpSetSearchArgs (updaterunArgs);86 124 psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warptool ID", 0); 87 125 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-reduction", 0, "search by warpRun reduction class", NULL); … … 109 147 psMetadata *tooverlapArgs = psMetadataAlloc(); 110 148 psMetadataAddS64(tooverlapArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warp ID", 0); 111 psMetadataAddStr(tooverlapArgs, PS_LIST_TAIL, "-label", 0, "search by label", NULL);149 psMetadataAddStr(tooverlapArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label", NULL); 112 150 psMetadataAddU64(tooverlapArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 113 151 psMetadataAddBool(tooverlapArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); … … 117 155 psMetadataAddStr(addoverlapArgs, PS_LIST_TAIL, "-mapfile", 0, "path to skycell <-> imfile mapping file", NULL); 118 156 psMetadataAddS64(addoverlapArgs, PS_LIST_TAIL, "-warp_id", 0, "set warp ID", 0); 119 psMetadataAddS16(addoverlapArgs, PS_LIST_TAIL, "- code", 0, "set fault code", 0);157 psMetadataAddS16(addoverlapArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 120 158 121 159 // -scmap … … 131 169 psMetadata *towarpedArgs = psMetadataAlloc(); 132 170 psMetadataAddS64(towarpedArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warptool ID", 0); 133 psMetadataAddStr(towarpedArgs, PS_LIST_TAIL, "-label", 0, "search by label", NULL);171 psMetadataAddStr(towarpedArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label", NULL); 134 172 psMetadataAddU64(towarpedArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 135 173 psMetadataAddBool(towarpedArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); … … 152 190 psMetadataAddStr(addwarpedArgs, PS_LIST_TAIL, "-hostname", 0, "define hostname", 0); 153 191 psMetadataAddF32(addwarpedArgs, PS_LIST_TAIL, "-good_frac", 0, "define %% of good pixels", NAN); 154 psMetadataAddBool(addwarpedArgs, PS_LIST_TAIL, "-accept", 0, "define if this skycell should be accepted", false);155 192 psMetadataAddBool(addwarpedArgs, PS_LIST_TAIL, "-magicked", 0, "define if this skycell has been magicked", false); 156 psMetadataAddS16(addwarpedArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 193 psMetadataAddS16(addwarpedArgs, PS_LIST_TAIL, "-fault", 0, "set fault code", 0); 194 psMetadataAddS16(addwarpedArgs, PS_LIST_TAIL, "-quality", 0, "set quality", 0); 157 195 158 196 // -warped … … 173 211 // XXX need to allow multiple exp_ids 174 212 psMetadata *revertwarpedArgs = psMetadataAlloc(); 175 pxwarpSetSearchArgs(revertwarpedArgs); // XXX does this work here?176 213 psMetadataAddS64(revertwarpedArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warptool ID", 0); 177 214 psMetadataAddStr(revertwarpedArgs, PS_LIST_TAIL, "-skycell_id", 0, "search by skycell ID", NULL); … … 179 216 psMetadataAddStr(revertwarpedArgs, PS_LIST_TAIL, "-reduction", 0, "search by warpRun reduction class", NULL); 180 217 psMetadataAddStr(revertwarpedArgs, PS_LIST_TAIL, "-label", 0, "search by warpRun label", NULL); 181 psMetadataAddS16(revertwarpedArgs, PS_LIST_TAIL, "- code", 0, "search by fault code", 0);218 psMetadataAddS16(revertwarpedArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 182 219 psMetadataAddBool(revertwarpedArgs, PS_LIST_TAIL, "-all", 0, "allow everything to be queued without search terms", false); 220 221 // -advancerun 222 psMetadata *advancerunArgs = psMetadataAlloc(); 223 psMetadataAddS64(advancerunArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warp ID", 0); 224 psMetadataAddStr(advancerunArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label ", NULL); 225 psMetadataAddU64(advancerunArgs, PS_LIST_TAIL, "-limit", 0, "limit exposures to advance to N items", 0); 183 226 184 227 // -block … … 196 239 // -pendingcleanuprun 197 240 psMetadata *pendingcleanuprunArgs = psMetadataAlloc(); 198 psMetadataAddStr(pendingcleanuprunArgs, PS_LIST_TAIL, "-label", 0,"list blocks for specified label", NULL);241 psMetadataAddStr(pendingcleanuprunArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "list blocks for specified label", NULL); 199 242 psMetadataAddBool(pendingcleanuprunArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 200 243 psMetadataAddU64(pendingcleanuprunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); … … 202 245 // -pendingcleanupskyfile 203 246 psMetadata *pendingcleanupskyfileArgs = psMetadataAlloc(); 204 psMetadataAddStr(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-label", 0,"list blocks for specified label", NULL);247 psMetadataAddStr(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "list blocks for specified label", NULL); 205 248 psMetadataAddS64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warp ID (required)", 0); 206 249 psMetadataAddBool(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); … … 232 275 psMetadataAddS64(updateskyfileArgs, PS_LIST_TAIL, "-warp_id", 0, "warptool ID to update", 0); 233 276 psMetadataAddStr(updateskyfileArgs, PS_LIST_TAIL, "-skycell_id", 0, "skycell ID to update", NULL); 234 psMetadataAddS16(updateskyfileArgs, PS_LIST_TAIL, "- code", 0, "new fault code", 0);277 psMetadataAddS16(updateskyfileArgs, PS_LIST_TAIL, "-fault", 0, "new fault code", 0); 235 278 236 279 // -exportrun … … 239 282 psMetadataAddStr(exportrunArgs, PS_LIST_TAIL, "-outfile", 0, "export to this file (required)", NULL); 240 283 psMetadataAddU64(exportrunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 284 psMetadataAddBool(exportrunArgs, PS_LIST_TAIL, "-clean", 0, "export run in cleaned state", false); 241 285 242 286 // -importrun … … 259 303 PXOPT_ADD_MODE("-towarped", "", WARPTOOL_MODE_TOWARPED, towarpedArgs); 260 304 PXOPT_ADD_MODE("-addwarped", "", WARPTOOL_MODE_ADDWARPED, addwarpedArgs); 305 PXOPT_ADD_MODE("-advancerun", "", WARPTOOL_MODE_ADVANCERUN, advancerunArgs); 261 306 PXOPT_ADD_MODE("-warped", "", WARPTOOL_MODE_WARPED, warpedArgs); 262 307 PXOPT_ADD_MODE("-revertwarped", "", WARPTOOL_MODE_REVERTWARPED, revertwarpedArgs);
Note:
See TracChangeset
for help on using the changeset viewer.
